Commit d4de6dcc authored by Heraut Louis's avatar Heraut Louis
Browse files

Plot aes

parent 0c2bf2d8
No related merge requests found
Showing with 73 additions and 32 deletions
+73 -32
......@@ -7,6 +7,7 @@ library(gridtext)
library(dplyr)
library(grid)
library(ggh4x)
library(RColorBrewer)
# Time panel
......@@ -79,9 +80,17 @@ panel = function (df_data, df_meta, layout_matrix, figdir='', filedir_opt='', fi
if (!(file.exists(outdirTmp))) {
dir.create(outdirTmp)
}
# Get all different stations code
Code = levels(factor(df_meta$code))
nCode = length(Code)
# minTrend = min(list_df2plot$trend$p, na.rm=TRUE)
# maxTrend = max(list_df2plot$trend$p, na.rm=TRUE)
# get_color(value, minTrend, maxTrend, nCode, "RdYlBu")
for (code in Code) {
......@@ -99,9 +108,12 @@ panel = function (df_data, df_meta, layout_matrix, figdir='', filedir_opt='', fi
}
if (!is.null(time_header)) {
Htime = time_panel(code, time_header, df_trend=NULL,
time_header_code = time_header[time_header$code == code,]
Htime = time_panel(time_header_code, df_trend_code=NULL,
period=period, missRect=TRUE,
unit2day=365.25, type='Q')
P[[2]] = Htime
}
......@@ -115,12 +127,14 @@ panel = function (df_data, df_meta, layout_matrix, figdir='', filedir_opt='', fi
missRect = list_df2plot[[i]]$missRect
type = list_df2plot[[i]]$type
p = time_panel(code, df_data, df_trend, missRect,
p_threshold, unit2day, type,
last=(i > nbp-nbcol))
df_data_code = df_data[df_data$code == code,]
df_trend_code = df_trend[df_trend$code == code,]
P[[i+nbh]] = p
p = time_panel(df_data_code, df_trend_code, type=type,
p_threshold=p_threshold, missRect=missRect,
unit2day=unit2day, last=(i > nbp-nbcol))
P[[i+nbh]] = p
}
layout_matrix = as.matrix(layout_matrix)
......@@ -174,38 +188,56 @@ panel = function (df_data, df_meta, layout_matrix, figdir='', filedir_opt='', fi
time_panel = function (code, df_data, df_trend, missRect, p_threshold, unit2day, type, period=NULL, norm=TRUE, last=FALSE) {
df_data_code = df_data[df_data$code == code,]
time_panel = function (df_data_code, df_trend_code, type, p_threshold=0.1, missRect=FALSE, unit2day=365.25, period=NULL, norm=TRUE, last=FALSE) {
if (type == 'sqrt(Q)') {
df_data_code$Qm3s = sqrt(df_data_code$Qm3s)
}
maxQ = max(df_data_code$Qm3s, na.rm=TRUE)
power = nchar(as.character(as.integer(maxQ))) - 1
if (maxQ > 1) {
power = nchar(as.character(as.integer(maxQ))) - 1
} else {
dec = gsub('0.', '', as.character(maxQ), fixed=TRUE)
ndec = nchar(dec)
nnum = nchar(as.character(as.numeric(dec)))
power = -(ndec - nnum + 1)
}
dbrk = 10^power
### /!\ PROBLME entre 11 et 10 ###
if (norm) {
df_data_code$Qm3s = df_data_code$Qm3s / dbrk
if (!is.null(df_trend_code)) {
df_trend_code$p = df_trend_code$p / dbrk
df_trend_code$intercept = df_trend_code$intercept / dbrk
}
maxQ = max(df_data_code$Qm3s, na.rm=TRUE)
if (maxQ >= 5) {
dbrk = 1.0
accuracy = 0.1
} else if (maxQ < 5 & maxQ >= 3) {
dbrk = 0.5
accuracy = 0.1
} else if (maxQ < 3 & maxQ >= 2) {
dbrk = 0.4
accuracy = 0.1
} else if (maxQ < 2 & maxQ >= 1) {
dbrk = 0.3
} else if (maxQ < 1) {
dbrk = 0.2
accuracy = 0.1
} else if (maxQ < 1) {
dbrk = 0.1
accuracy = 0.1
}
}
dDate = as.numeric(df_data_code$Date[length(df_data_code$Date)] -
df_data_code$Date[1]) / unit2day
df_data_code$Date[1]) / unit2day
# datebreak = round(as.numeric(dDate) / unit2day / 11 , 0)
......@@ -224,7 +256,7 @@ time_panel = function (code, df_data, df_trend, missRect, p_threshold, unit2day,
# theme_bw() +
ggtitle(bquote(.(type)~'['*m^{3}*'.'*s^{-1}*'] x'~10^{.(as.character(power))})) +
ggtitle(bquote(.(type)~' ['*m^{3}*'.'*s^{-1}*'] x'~10^{.(as.character(power))})) +
theme(panel.background=element_rect(fill='white'),
text=element_text(family='sans'),
......@@ -242,8 +274,8 @@ time_panel = function (code, df_data, df_trend, missRect, p_threshold, unit2day,
ggh4x.axis.ticks.length.minor=rel(0.5),
axis.ticks.length=unit(1.5, 'mm'),
plot.title=element_text(size=10, vjust=-4,
hjust=0, color='grey20'),
plot.title=element_text(size=9, vjust=-3,
hjust=-1E-3, color='grey20'),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
# axis.title.y=element_text(size=8, color='grey20'),
......@@ -263,11 +295,12 @@ time_panel = function (code, df_data, df_trend, missRect, p_threshold, unit2day,
if (type == 'sqrt(Q)' | type == 'Q') {
p = p +
geom_line(aes(x=df_data_code$Date, y=df_data_code$Qm3s),
color='grey20')
color='grey20',
size=0.3)
} else {
p = p +
geom_line(aes(x=df_data_code$Date, y=df_data_code$Qm3s),
color='grey65') +
# geom_line(aes(x=df_data_code$Date, y=df_data_code$Qm3s),
# color='grey70') +
geom_point(aes(x=df_data_code$Date, y=df_data_code$Qm3s),
shape=1, color='grey20', size=1)
}
......@@ -302,16 +335,16 @@ time_panel = function (code, df_data, df_trend, missRect, p_threshold, unit2day,
linetype=0, fill='grey85', alpha=0.3)
}
if (!is.null(df_trend)) {
if (df_trend[df_trend$code == code,]$p < p_threshold) {
if (!is.null(df_trend_code)) {
if (df_trend_code$p < p_threshold) {
abs = c(df_data_code$Date[1],
df_data_code$Date[length(df_data_code$Date)])
abs_num = as.numeric(abs)/unit2day
abs_num = as.numeric(abs) / unit2day
ord = abs_num * df_trend$trend[df_trend$code == code] +
df_trend$intercept[df_trend$code == code]
ord = abs_num * df_trend_code$trend +
df_trend_code$intercept
p = p +
geom_line(aes(x=abs, y=ord),
......@@ -342,7 +375,8 @@ time_panel = function (code, df_data, df_trend, missRect, p_threshold, unit2day,
scale_y_continuous(breaks=seq(0, maxQ*10, dbrk),
limits=c(0, maxQ*1.1),
expand=c(0, 0))
expand=c(0, 0),
labels=label_number(accuracy=accuracy))
return(p)
}
......@@ -368,6 +402,15 @@ text_panel = function(code, df_meta) {
}
get_color = function (value, min, max, ncolor, palette_name="RdYlBu") {
palette = colorRampPalette(brewer.pal(11, palette_name))(ncolor)
idNorm = (value - min) / (max - min)
id = as.integer(idNorm*ncolor)
color = palette[id]
return(color)
}
void = ggplot() + geom_blank(aes(1,1)) +
theme(
plot.background = element_blank(),
......
......@@ -23,7 +23,7 @@ BHfiledir =
# Name of the file that will be analysed from the BH directory
BHfilename =
# ""
c("H5920011_HYDRO_QJM.txt", "K4470010_HYDRO_QJM.txt")
c("S2235610_HYDRO_QJM.txt", "P1712910_HYDRO_QJM.txt")
# "all"
## Or list selection ##
......
......@@ -12,9 +12,7 @@ install.packages("gridtext")
install.packages("lubridate")
install.packages('ggh4x')
install.packages('extrafont')
install.packages("RColorBrewer")
library(devtools)
install_github("https://github.com/benRenard/BFunk") #type '1'
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment