From ab3270ac62e7305c5486c3dda24deb13a7878dd0 Mon Sep 17 00:00:00 2001 From: gmillot <gael.millot@pasteur.fr> Date: Thu, 27 Aug 2020 18:52:15 +0200 Subject: [PATCH] fun_gg_boxplot(): (1) examples completed, (2) binpositions = "all" added for tidy dots --- boxplot_examples.R | 348 ++++++++++++++++++++------------------ boxplot_examples2.R | 196 --------------------- cute_little_R_functions.R | 225 ++++++++++++------------ fun_gg_boxplot.docx | Bin 114594 -> 114753 bytes 4 files changed, 298 insertions(+), 471 deletions(-) delete mode 100644 boxplot_examples2.R diff --git a/boxplot_examples.R b/boxplot_examples.R index dbeca21..6ec58e5 100644 --- a/boxplot_examples.R +++ b/boxplot_examples.R @@ -1,171 +1,187 @@ # EXAMPLES -### nice representation (1) -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), categ.class.order = list(NULL, c("B", "A")), box.legend.name = "LEGEND", categ.color = NULL, box.width = 0.3, box.whisker.width = 0.8, dot.color = "same", dot.jitter = 0.5, dot.size = 3.5, dot.border.size = 0.2, dot.alpha = 0.5, y.lim = c(10, 25), y.include.zero = TRUE, stat.disp = "above", stat.size = 4, x.lab = "GROUP", y.lab = "VALUE", text.size = 12, title = "GRAPH1", title.text.size = 8, text.angle = 0, article = TRUE, grid = TRUE) -### nice representation (2) -set.seed(1) -obs1 <- data.frame(Time = c(rnorm(24, 0), rnorm(24, -10), rnorm(24, 10), rnorm(24, 20)), Group1 = rep(c("CAT", "DOG"), times = 48), Group2 = rep(c("A", "B", "C", "D"), each = 24)) -set.seed(NULL) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), categ.class.order = list(NULL, c("B", "A", "D", "C")), box.legend.name = "LEGEND", categ.color = NULL, box.width = 0.8, dot.color = "same", dot.tidy = TRUE, dot.tidy.bin.nb = 60, dot.size = 3.5, dot.border.size = 0.2, dot.alpha = 0.5, y.lim= c(-20, 30), stat.disp = "above", stat.size = 4, stat.dist = 1, x.lab = "GROUP", y.lab = "VALUE", vertical = FALSE, text.size = 12, title = "GRAPH1", title.text.size = 8, text.angle = 45, article = FALSE) -### separate boxes. Simple example -set.seed(1) -obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10)) -set.seed(NULL) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1") -### separate boxes. Changing the order of the boxes -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", categ.class.order = list(c("H", "G"))) -### separate boxs. Example (1) of modification of box color using a single value -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", categ.color = "white") -### separate boxs. Example (2) of modification of box color using one value par class of categ2 -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", categ.color = c("coral", "lightblue")) -### separate boxs. Example (3) of modification of box color using the box.color data frame column, with respect of the correspondence between categ2 and box.color columns -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), box.color = rep(c("coral", "lightblue"), time = 10)) -obs1 -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", categ.color = obs1$box.color) -### separate boxs. Example (1) of modification of dot color, using the same dot color as the corresponding box -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", dot.color = "same") -### separate boxs. Example (2) of modification of dot color, using a single color for all the dots -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", dot.color = "green") -### separate boxs. Example (3) of modification of dot color, using one value par class of categ2 -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", dot.color = c("green", "brown")) -### separate boxs. Example (4) of modification of dot color, using different colors for each dot -obs1 <- data.frame(Time = 1:10, Group1 = rep(c("G", "H"), times = 5)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", dot.color = hsv(h = (1:nrow(obs1)) / nrow(obs1))) -### grouped boxs. Simple example + +### Data set set.seed(1) -obs1 <- data.frame(Time = c(rnorm(20), rnorm(20) + 2), Group1 = rep(c("G", "H"), each = 10), Group2 = rep(c("A", "B"), time = 10)) +obs1 <- data.frame( + Time = c(rnorm(20, 100, 10), rnorm(20, 200, 50), rnorm(20, 500, 60), rnorm(20, 100, 50)), + Categ1 = rep(c("CAT", "DOG"), times = 40), + Categ2 = rep(c("A", "B", "C", "D"), each = 20), + Color1 = rep(c("coral", "lightblue"), times = 40), + Color2 = rep(c("#9F2108", "#306100", "#007479", "#8500C0"), each = 20) +) set.seed(NULL) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2")) -### grouped boxs. More grouped boxs -obs1 <- data.frame(Time = 1:24, Group1 = rep(c("G", "H"), times = 12), Group2 = rep(c("A", "B", "C", "D"), each = 6)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2")) -### grouped boxs. Example (1) of modification of box color, using a single value -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), categ.color = "white") -### grouped boxs. Example (2) of modification of box color, using one value par class of categ2 -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), categ.color = c("coral", "lightblue")) -### grouped boxs. Example (3) of modification of box color, using one value per line of obs1, with respect of the correspondence between categ2 and box.color columns -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10), box.color = rep(c("coral", "lightblue"), each = 10)) -obs1 -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), categ.color = obs1$box.color) -### grouped boxs. Example (1) of modification of dot color, using the same dot color as the corresponding box -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "same") -### grouped boxs. Example (2) of modification of dot color, using a single color for all the dots -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "green") -### grouped boxs. Example (3) of modification of dot color, using one value par class of categ2 -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = c("green", "brown")) -### grouped boxs. Example (4) of modification of dot color, using different colors for each dot -obs1 <- data.frame(Time = 1:10, Group1 = rep(c("G", "H"), times = 5), Group2 = rep(c("A", "B"), each = 5)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = hsv(h = (1:nrow(obs1)) / nrow(obs1))) -### no dots (y.include.zero set to TRUE to see the lowest box): -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = NULL, y.include.zero = TRUE) -### box width. Example (1) with box.width = 0.25 -> three times more space between single boxs than the box width (y.include.zero set to TRUE to see the lowest box) -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), each = 500)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", dot.color = NULL, y.include.zero = TRUE, box.width = 0.25) -### box width. Example (2) with box.width = 1, no space between single boxs -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), each = 500)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", dot.color = NULL, y.include.zero = TRUE, box.width = 1) -### box width. Example (3) with box.width = 0.25 -> three times more space between sets of grouped boxs than the set width -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = NULL, y.include.zero = TRUE, box.width = 0.25) -### box width. Example (4) with box.width = 0 -> no space between sets of grouped boxs -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = NULL, y.include.zero = TRUE, box.width = 1) -### whisker width. Example (1) with box.whisker.width = 1 -> whiskers have the width of the corresponding box -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = NULL, box.whisker.width = 1) -### whisker width. Example (2) error boxs with no whiskers -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = NULL, box.whisker.width = 0) -### tidy dot distribution. Example (1) -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "same", dot.tidy = TRUE, dot.tidy.bin.nb = 100) -### tidy dot distribution. Example (2) reducing the dot size with dot.tidy.bin.nb -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "same", dot.tidy = TRUE, dot.tidy.bin.nb = 150) -### dot jitter. Example (1) -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "same", dot.tidy = FALSE, dot.jitter = 1, dot.size = 2) -### dot jitter. Example (2) with dot.jitter = 1 -> dispersion around the corresponding box width -obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "grey", dot.size = 3, dot.alpha = 1, dot.jitter = 1) -### dot jitter. Example (3) with no dispersion -obs1 <- data.frame(Time = 1:100, Group1 = rep(c("G", "H"), times = 50), Group2 = rep(LETTERS[1:5], each = 20)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "grey", dot.size = 3, dot.alpha = 1, dot.jitter = 0) -### dot size, dot border size and dot transparency -obs1 <- data.frame(Time = 1:100, Group1 = rep(c("G", "H"), times = 50), Group2 = rep(LETTERS[1:5], each = 20)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "grey", dot.size = 4, dot.border.size = 0, dot.alpha = 0.6) -### y-axis limits. Example (1) -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.lim = c(-1, 25)) -### y-axis limits. Example (2) showing that order matters in y.lim argument -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.lim = c(25, -1)) -### log scale. Example (1). BEWARE: y column must be log, otherwise incoherent scale (see below warning message with the return argument) -obs1 <- data.frame(Time = c((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.log = "log10") -### log scale. Example (2). BEWARE: values of the y.lim must be in the corresponding log -obs1 <- data.frame(Time = c((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.log = "log10", y.lim = c(100,1000)) -### tick number. Example (1) -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.tick.nb = 10) -### tick number. Example (2) using a log2 scale -obs1 <- data.frame(Time = log2((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.log = "log2", y.tick.nb = 10, y.lim = c(1, 16)) -### tick number. Example (3) using a log10 scale -obs1 <- data.frame(Time = log10((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.log = "log10", y.tick.nb = 10) -### tick number. Example (4) using a log10 scale: the reverse y-axis correctly deal with log10 scale -obs1 <- data.frame(Time = log10((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.log = "log10", y.tick.nb = 10, y.lim = c(4, 1)) -### secondary tick number. Example (1) -obs1 <- data.frame(Time = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.second.tick.nb = 2) -### secondary ticks. Example (2) not for log2 and log10 scales (see below warning message with the return argument) -obs1 <- data.frame(Time = log10((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.log = "log10", y.second.tick.nb = 2) -### include zero in the y-axis -obs1 <- data.frame(Time = (1:20), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.include.zero = TRUE) -### extra margins. To avoid dot cuts -obs1 <- data.frame(Time = (1:20), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.top.extra.margin = 0.25, y.bottom.extra.margin = 0.25) -### mean diplay. Example (1) at the top of the plot region -obs1 <- data.frame(Time = (1:20), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.top.extra.margin = 0.1, stat.disp = "top", stat.size = 4, stat.dist = 2) -### mean diplay. Example (2) above boxs -obs1 <- data.frame(Time = (1:20), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.top.extra.margin = 0.1, stat.disp = "above", stat.size = 4, stat.dist = 2) -### box orientation. Example (1) without log scale, showing that the other arguments are still operational -obs1 <- data.frame(Time = (1:20), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.tick.nb = 10, y.second.tick.nb = 2, y.include.zero = TRUE, vertical = FALSE) -### box orientation. Example (2) with log scale. Horizontal orientation is blocked with log2 and log10 scales because of a bug in ggplot2 (https://github.com/tidyverse/ggplot2/issues/881) -obs1 <- data.frame(Time = log10((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.log = "log10", vertical = FALSE) -### classic representation (use grid = TRUE to display the background lines of the y axis ticks) -obs1 <- data.frame(Time = (1:20), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), article = TRUE, grid = FALSE) -### graphic info. Example (1) -obs1 <- data.frame(Time = log10((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), return = TRUE) -### graphic info. Example (2) of assignation and warning message display -obs1 <- data.frame(Time = log10((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -warn <- fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), y.log = "log10", return = TRUE) -cat(warn$warnings) -### add ggplot2 functions -obs1 <- data.frame(Time = log10((1:20) * 100), Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), add = "+ggplot2::theme_classic()") -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Group1", article = FALSE, add = "+ggplot2::facet_wrap(facets = 'Group2', labeller = 'label_both') + ggplot2::theme(strip.background = ggplot2::element_rect(color = 'grey', size = 0.5), strip.text = ggplot2::element_text(size = 10, face = 'bold'), panel.spacing = ggplot2::unit(0.5, 'lines'))") # or ggplot2::vars(Group2) instead of 'Group2'. See https://ggplot2.tidyverse.org/reference/labeller.html +fun_info(obs1) + +## Mandatory arguments +### separate boxes +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1") +### grouped boxes +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2")) +# Order matters +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ2", "Categ1")) +### single class +fun_gg_boxplot(data1 = obs1[1:20, ], y = "Time", categ = "Categ2") +fun_gg_boxplot(data1 = obs1[1:20, ], y = "Time", categ = c("Categ1", "Categ2")) + +### Changing the order of the boxes +# separate boxes +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.class.order = list(c("DOG", "CAT"))) +# grouped boxes +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.class.order = list(c("DOG", "CAT"), c("D", "C", "B", "A"))) + +### Box color +# Using a single color value +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = "coral") +# Using one color value par class of Categ1 +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = c("coral", "lightblue")) +# Using a vector of color values (e.g., data frame column), with respect of the correspondence between Categ1 and box.color columns +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = obs1$Color1) +# Using integers instead of color strings +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = 1) +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = 1:2) +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = as.numeric(obs1$Color1)) +# With grouped boxes, we generate the same effects but for the second category +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.color = "coral") +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.color = 1:4) +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.color = obs1$Color2) + +### Other parameters of boxes +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +box.legend.name = "ANIMALS", +box.fill = TRUE, +box.width = 0.6, # separate boxes: between 0 (no box width <-> max boxes separation) and 1 (max box width <-> no boxes separation). Grouped boxes: between 0 (no group width <-> max group separation) and 1 (max group width <-> no group separation) +box.space = 0, # between 0 (no separation) and 1 (max separation) but only to separate boxes inside groups of boxes +box.line.size = 0.75, +box.notch = TRUE, +box.alpha = 1, +box.mean = FALSE, +box.whisker.kind = "max", +box.whisker.width = 0.5 # between 0 (no whisker extremities) and 1 (whisker extremities the width of the boxes) +) + +### Dot colors +# Dot removal +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = NULL) +# Same color as the boxes +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = "same") +# Single color sting +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = "green") # a single integer also works +# Same number of Categ1 classes +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = c("green", "brown")) # test also 1:2 (result is idem as "same") +# Using a vector of color values of the same length as the number of rows in data1 (e.g., data frame column). No correspondence with Categ1 classes is required +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = 1:nrow(obs1)) +# With grouped boxes, we generate the same effects but for the second category +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = NULL) +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "same") +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "green") # a single integer also works +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = c("green", "brown", "red", "blue")) # test also 1:2 (result is idem as "same") +fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = 1:nrow(obs1)) + +### Legend for dots +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +dot.color = c("green", "brown", "red", "blue"), # single color or same number of dot.categ classes in that case ("same" authorized if dot.categ is the last element of categ) +dot.categ = "Categ2", +dot.categ.class.order = c("D", "A", "C", "B"), +dot.legend.name = "ANIMAL GROUP" +) + +### Tidy or random dot spreading +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +dot.tidy = TRUE, +dot.tidy.bin.nb = 50, # from 0 to Inf. Only if dot.tidy = TRUE +dot.jitter = 0.5 # from 0 to 1. Only if dot.tidy = FALSE +) + +### Other parameters of dots +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +dot.categ = "Categ2", # to see the dot legend +dot.color = c("green", "brown", "red", "blue"), +dot.size = 5, # ignored if dot.tidy = TRUE +dot.alpha = 0.3, +dot.border.size = 2, +dot.border.color = "green", +) + +### X-axis parameter +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +x.lab = "ANIMALS" +) + +### Y-axis parameter +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +y.lab = "SIZE", +y.lim = c(1000, 0.1), # order matters +y.log = "log10", # try "no" +y.tick.nb = 10, # approximate number +y.second.tick.nb = 2, +y.include.zero = FALSE, +y.top.extra.margin = 0, +y.bottom.extra.margin = 0, +) + +### Stat numbers above boxes +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +stat.disp = "above", # try "top" +stat.disp.mean = FALSE, +stat.size = 4, +stat.dist = 2 +) + +### Plot orientation +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +vertical = FALSE # with log2 and log10 scales, horizontal orientation is blocked because of a bug in ggplot2 (https://github.com/tidyverse/ggplot2/issues/881) +) + + +### Text management +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +text.size = 20, +text.angle = 90 +) + +### Title +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +title = "FIRST EXPERIMENT", +title.text.size = 20 +) + +### Management of the legend area +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +legend.show = FALSE, # remove the legend, not the area of the legend +legend.width = 1 # between 0 (no area for the legend) to 1 (half the device width for the legend area). Use NULL for default management +) + +### Appearance +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +article = FALSE, +grid = TRUE +) + +### the add argument +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +add = "+ggplot2::theme_classic()" +) +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +add = "+ggplot2::facet_wrap(facets = 'Categ2', labeller = 'label_both') + ggplot2::theme(strip.background = ggplot2::element_rect(color = 'grey', size = 0.5), strip.text = ggplot2::element_text(size = 10, face = 'bold'), panel.spacing = ggplot2::unit(0.5, 'lines'))" # or ggplot2::vars(Categ2) instead of 'Categ2'. See https://ggplot2.tidyverse.org/reference/labeller.html +) + + +### Other parameters +fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", +return = TRUE, +return.ggplot = TRUE, +plot = FALSE, +warn.print = FALSE, +lib.path = NULL +) + + + + + + + + + diff --git a/boxplot_examples2.R b/boxplot_examples2.R deleted file mode 100644 index 985fed2..0000000 --- a/boxplot_examples2.R +++ /dev/null @@ -1,196 +0,0 @@ -# EXAMPLES - - -set.seed(1) -obs1 <- data.frame( - Time = c(rnorm(20, 100, 10), rnorm(20, 200, 50), rnorm(20, 500, 60), rnorm(20, 100, 50)), - Categ1 = rep(c("CAT", "DOG"), times = 40), - Categ2 = rep(c("A", "B", "C", "D"), each = 20), - Color1 = rep(c("coral", "lightblue"), times = 40), - Color2 = rep(c("#9F2108", "#306100", "#007479", "#8500C0"), each = 20) -) -set.seed(NULL) -fun_info(obs1) -### nice representation (1) -# fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.class.order = list(NULL, c("B", "A", "D", "C")), box.legend.name = "LEGEND", categ.color = NULL, box.width = 0.8, dot.color = "same", dot.tidy = TRUE, dot.tidy.bin.nb = 60, dot.size = 3.5, dot.border.size = 0.2, dot.alpha = 0.5, y.lim= c(-20, 30), stat.disp = "above", stat.size = 4, stat.dist = 1, x.lab = "GROUP", y.lab = "VALUE", vertical = FALSE, text.size = 12, title = "GRAPH1", title.text.size = 8, text.angle = 45, article = FALSE) - -## Mandatory arguments -### separate boxes -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1") -### grouped boxes -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2")) -# Order matters -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ2", "Categ1")) -### single class -fun_gg_boxplot(data1 = obs1[1:20, ], y = "Time", categ = "Categ2") -fun_gg_boxplot(data1 = obs1[1:20, ], y = "Time", categ = c("Categ1", "Categ2")) - -### Changing the order of the classes -# separate boxes -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.class.order = list(c("DOG", "CAT"))) -# grouped boxes -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.class.order = list(c("DOG", "CAT"), c("D", "C", "B", "A"))) - -### Box color -# Using a single value -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = "coral") -# Using one value par class of Categ1 -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = c("coral", "lightblue")) -# Using a data frame column, with respect of the correspondence between Categ1 and box.color columns -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", categ.color = obs1$Color1) - - - - - -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = "same") -### separate boxs. Example (2) of modification of dot color, using a single color for all the dots -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = "green") -### separate boxs. Example (3) of modification of dot color, using one value par class of categ2 -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = c("green", "brown")) -### separate boxs. Example (4) of modification of dot color, using different colors for each dot -obs1 <- data.frame(Time = 1:10, Categ1 = rep(c("G", "H"), times = 5)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = hsv(h = (1:nrow(obs1)) / nrow(obs1))) - - - - - - - -### grouped boxs. Simple example -set.seed(1) -obs1 <- data.frame(Time = c(rnorm(20), rnorm(20) + 2), Categ1 = rep(c("G", "H"), each = 10), Categ2 = rep(c("A", "B"), time = 10)) -set.seed(NULL) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2")) -### grouped boxs. More grouped boxs -obs1 <- data.frame(Time = 1:24, Categ1 = rep(c("G", "H"), times = 12), Categ2 = rep(c("A", "B", "C", "D"), each = 6)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2")) -### grouped boxs. Example (1) of modification of box color, using a single value -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.color = "white") -### grouped boxs. Example (2) of modification of box color, using one value par class of categ2 -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.color = c("coral", "lightblue")) -### grouped boxs. Example (3) of modification of box color, using one value per line of obs1, with respect of the correspondence between categ2 and box.color columns -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10), box.color = rep(c("coral", "lightblue"), each = 10)) -obs1 -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), categ.color = obs1$box.color) -### grouped boxs. Example (1) of modification of dot color, using the same dot color as the corresponding box -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "same") -### grouped boxs. Example (2) of modification of dot color, using a single color for all the dots -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "green") -### grouped boxs. Example (3) of modification of dot color, using one value par class of categ2 -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = c("green", "brown")) -### grouped boxs. Example (4) of modification of dot color, using different colors for each dot -obs1 <- data.frame(Time = 1:10, Categ1 = rep(c("G", "H"), times = 5), Categ2 = rep(c("A", "B"), each = 5)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = hsv(h = (1:nrow(obs1)) / nrow(obs1))) -### no dots (y.include.zero set to TRUE to see the lowest box): -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = NULL, y.include.zero = TRUE) -### box width. Example (1) with box.width = 0.25 -> three times more space between single boxs than the box width (y.include.zero set to TRUE to see the lowest box) -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), each = 500)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = NULL, y.include.zero = TRUE, box.width = 0.25) -### box width. Example (2) with box.width = 1, no space between single boxs -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), each = 500)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", dot.color = NULL, y.include.zero = TRUE, box.width = 1) -### box width. Example (3) with box.width = 0.25 -> three times more space between sets of grouped boxs than the set width -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), times = 500), Categ2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = NULL, y.include.zero = TRUE, box.width = 0.25) -### box width. Example (4) with box.width = 0 -> no space between sets of grouped boxs -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), times = 500), Categ2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = NULL, y.include.zero = TRUE, box.width = 1) -### whisker width. Example (1) with box.whisker.width = 1 -> whiskers have the width of the corresponding box -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), times = 500), Categ2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = NULL, box.whisker.width = 1) -### whisker width. Example (2) error boxs with no whiskers -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), times = 500), Categ2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = NULL, box.whisker.width = 0) -### tidy dot distribution. Example (1) -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), times = 500), Categ2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "same", dot.tidy = TRUE, dot.tidy.bin.nb = 100) -### tidy dot distribution. Example (2) reducing the dot size with dot.tidy.bin.nb -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), times = 500), Categ2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "same", dot.tidy = TRUE, dot.tidy.bin.nb = 150) -### dot jitter. Example (1) -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), times = 500), Categ2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "same", dot.tidy = FALSE, dot.jitter = 1, dot.size = 2) -### dot jitter. Example (2) with dot.jitter = 1 -> dispersion around the corresponding box width -obs1 <- data.frame(Time = 1:1000, Categ1 = rep(c("G", "H"), times = 500), Categ2 = rep(LETTERS[1:5], each = 200)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "grey", dot.size = 3, dot.alpha = 1, dot.jitter = 1) -### dot jitter. Example (3) with no dispersion -obs1 <- data.frame(Time = 1:100, Categ1 = rep(c("G", "H"), times = 50), Categ2 = rep(LETTERS[1:5], each = 20)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "grey", dot.size = 3, dot.alpha = 1, dot.jitter = 0) -### dot size, dot border size and dot transparency -obs1 <- data.frame(Time = 1:100, Categ1 = rep(c("G", "H"), times = 50), Categ2 = rep(LETTERS[1:5], each = 20)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), dot.color = "grey", dot.size = 4, dot.border.size = 0, dot.alpha = 0.6) -### y-axis limits. Example (1) -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.lim = c(-1, 25)) -### y-axis limits. Example (2) showing that order matters in y.lim argument -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.lim = c(25, -1)) -### log scale. Example (1). BEWARE: y column must be log, otherwise incoherent scale (see below warning message with the return argument) -obs1 <- data.frame(Time = c((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.log = "log10") -### log scale. Example (2). BEWARE: values of the y.lim must be in the corresponding log -obs1 <- data.frame(Time = c((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.log = "log10", y.lim = c(100,1000)) -### tick number. Example (1) -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.tick.nb = 10) -### tick number. Example (2) using a log2 scale -obs1 <- data.frame(Time = log2((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.log = "log2", y.tick.nb = 10, y.lim = c(1, 16)) -### tick number. Example (3) using a log10 scale -obs1 <- data.frame(Time = log10((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.log = "log10", y.tick.nb = 10) -### tick number. Example (4) using a log10 scale: the reverse y-axis correctly deal with log10 scale -obs1 <- data.frame(Time = log10((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.log = "log10", y.tick.nb = 10, y.lim = c(4, 1)) -### secondary tick number. Example (1) -obs1 <- data.frame(Time = 1:20, Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.second.tick.nb = 2) -### secondary ticks. Example (2) not for log2 and log10 scales (see below warning message with the return argument) -obs1 <- data.frame(Time = log10((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.log = "log10", y.second.tick.nb = 2) -### include zero in the y-axis -obs1 <- data.frame(Time = (1:20), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.include.zero = TRUE) -### extra margins. To avoid dot cuts -obs1 <- data.frame(Time = (1:20), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.top.extra.margin = 0.25, y.bottom.extra.margin = 0.25) -### mean diplay. Example (1) at the top of the plot region -obs1 <- data.frame(Time = (1:20), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.top.extra.margin = 0.1, stat.disp = "top", stat.size = 4, stat.dist = 2) -### mean diplay. Example (2) above boxs -obs1 <- data.frame(Time = (1:20), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.top.extra.margin = 0.1, stat.disp = "above", stat.size = 4, stat.dist = 2) -### box orientation. Example (1) without log scale, showing that the other arguments are still operational -obs1 <- data.frame(Time = (1:20), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.tick.nb = 10, y.second.tick.nb = 2, y.include.zero = TRUE, vertical = FALSE) -### box orientation. Example (2) with log scale. Horizontal orientation is blocked with log2 and log10 scales because of a bug in ggplot2 (https://github.com/tidyverse/ggplot2/issues/881) -obs1 <- data.frame(Time = log10((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.log = "log10", vertical = FALSE) -### classic representation (use grid = TRUE to display the background lines of the y axis ticks) -obs1 <- data.frame(Time = (1:20), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), article = TRUE, grid = FALSE) -### graphic info. Example (1) -obs1 <- data.frame(Time = log10((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), return = TRUE) -### graphic info. Example (2) of assignation and warning message display -obs1 <- data.frame(Time = log10((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -warn <- fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), y.log = "log10", return = TRUE) -cat(warn$warnings) -### add ggplot2 functions -obs1 <- data.frame(Time = log10((1:20) * 100), Categ1 = rep(c("G", "H"), times = 10), Categ2 = rep(c("A", "B"), each = 10)) -fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Categ1", "Categ2"), add = "+ggplot2::theme_classic()") -fun_gg_boxplot(data1 = obs1, y = "Time", categ = "Categ1", article = FALSE, add = "+ggplot2::facet_wrap(facets = 'Categ2', labeller = 'label_both') + ggplot2::theme(strip.background = ggplot2::element_rect(color = 'grey', size = 0.5), strip.text = ggplot2::element_text(size = 10, face = 'bold'), panel.spacing = ggplot2::unit(0.5, 'lines'))") # or ggplot2::vars(Categ2) instead of 'Categ2'. See https://ggplot2.tidyverse.org/reference/labeller.html - - diff --git a/cute_little_R_functions.R b/cute_little_R_functions.R index 5586459..edca463 100644 --- a/cute_little_R_functions.R +++ b/cute_little_R_functions.R @@ -7763,8 +7763,6 @@ return(output) # do not use cat() because the idea is to reuse the message -# http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/76-add-p-values-and-significance-levels-to-ggplots/ -# kind of double plotting -> solve it. It must be in the different layers -> plot twice fun_gg_boxplot <- function( @@ -7777,13 +7775,13 @@ box.legend.name = NULL, box.fill = FALSE, box.width = 0.5, box.space = 0.1, -box.line.size = 0.5, +box.line.size = 0.75, box.notch = FALSE, box.alpha = 1, box.mean = TRUE, box.whisker.kind = "std", box.whisker.width = 0, -dot.color = "black", +dot.color = grey(0.25), dot.categ = NULL, dot.categ.class.order = NULL, dot.legend.name = NULL, @@ -7799,7 +7797,7 @@ y.lab = NULL, y.lim = NULL, y.log = "no", y.tick.nb = NULL, -y.second.tick.nb = NULL, +y.second.tick.nb = 1, y.include.zero = FALSE, y.top.extra.margin = 0.05, y.bottom.extra.margin = 0.05, @@ -7820,81 +7818,86 @@ return = FALSE, return.ggplot = FALSE, plot = TRUE, add = NULL, -warn.print = FALSE, +warn.print = TRUE, lib.path = NULL ){ # AIM -# ggplot2 boxplot with the possibility to add background or foreground dots +# plot ggplot2 boxplots + dots + means # for ggplot2 specifications, see: https://ggplot2.tidyverse.org/articles/ggplot2-specs.html # WARNINGS # Rows containing NA in data1[, c(y, categ)] will be removed before processing, with a warning (see below) -# Hinges are not computed like in the classical boxplot() function of R. But -# To have a single box, create a factor column with a single class and specify the name of this column in the categ argument. For a single set of grouped boxs, create a factor column with a single class and specify this column in categ argument as first element (i.e., as categ1, knowing that categ2 must also be specified in this situation). See categ below -# With separated boxs (categ argument with only one element), box.width argument defines each box width. The box.width argument also defines the space between boxs by using (1 - box.width). In addition, xmin and xmax of the fun_gg_boxplot() output report the box boundaries (around x-axis unit 1, 2, 3, etc., for each box) -# With grouped boxs (categ argument with two elements), box.width argument defines each set of grouped box width. The box.width argument also defines the space between set of grouped boxs by using (1 - box.width). In addition, xmin and xmax of the fun_gg_boxplot() output report the box boundaries (around x-axis unit 1, 2, 3, etc., for each set of grouped box) +# Hinges are not computed like in the classical boxplot() function of R. See https://ggplot2.tidyverse.org/reference/geom_boxplot.html +# To have a single box, please create a factor column with a single class and specify the name of this column in the categ argument. For a single set of grouped boxes, create a factor column with a single class and specify this column in categ argument as first element (i.e., as categ1, knowing that categ2 must also be specified in this situation). See categ argument below # The dot.alpha argument can alter the display of the color boxes when using pdf output # Size arguments (box.line.size, dot.size, dot.border.size, stat.size, text.size and title.text.size) are in mm. See Hadley comment in https://stackoverflow.com/questions/17311917/ggplot2-the-unit-of-size. See also http://sape.inf.usi.ch/quick-reference/ggplot2/size). Unit object are not accepted, but conversion can be used (e.g., grid::convertUnit(grid::unit(0.2, "inches"), "mm", valueOnly = TRUE)) -# The function uses options(warning.length = 8170) which increases the length of warning messages +# The function uses options(warning.length = 8170) which increases the length of warning messages. Use options(warning.length = 1000) after using fun_gg_boxplot() to go back to the default value +# Display seems to be done twice on Windows devices (like a blink). However, no double plots on pdf devices. Thus, the blink remains mysterious # ARGUMENTS -# data1: dataframe containing one column of values (see y argument below) and one or two columns of categories (see categ argument below). Duplicated column names are not allowed -# y: character string of the data1 column name for y-axis (column containing numeric values). Numeric values will be split according to the classes of the column names indicated in the categ argument to generate the boxs and will also be used to plot the dots -# categ: vector of character strings of the data1 column name for categories (column of characters or factor). Must be either one or two column names. If a single column name (further refered to as categ1), then one box per class of categ1. If two column names (further refered to as categ1 and categ2), then one box per class of categ2, which form a group of boxs in each class of categ1. BEWARE: no empty classes allowed. To have a single box, create a factor column with a single class and specify the name of this column in the categ argument (here, no categ2 in categ argument). For a single set of grouped boxs, create a factor column with a single class and specify this column in categ argument as first element (i.e., as categ1, knowing that categ2 must also be specified in this situation) -# categ.class.order: list indicating the order of the classes of categ1 and categ2 represented on the boxplot (the first compartment for categ1 and and the second for categ2). If categ.class.order == NULL, classes are represented according to the alphabetical order. Some compartment can be NULL and other not -# categ.color: vector of color character string for box frame -#If categ.color == NULL, default colors of ggplot2, whatever categ1 and categ2 -# If categ.color is non null and only categ1 in categ argument, categ.color can be either: (1) a single color string (all the boxs will have this color, whatever the number of classes of categ1), (2) a vector of string colors, one for each class of categ1 (each color will be associated according to categ.class.order of categ1), (3) a vector or factor of string colors, like if it was one of the column of data1 data frame (beware: a single color per class of categ1 and a single class of categ1 per color must be respected). Integers are also accepted instead of character strings, as long as above rules about length are respected. Integers will be processed by fun_gg_palette() using the max integer value among all the integers in categ.color -# If categ.color is non null and categ1 and categ2 specified, all the rules described above will apply to categ2 instead of categ1 (colors will be determined for boxs inside a group of boxs) -# box.legend.name: character string of the legend title for categ2. If box.legend.name == NULL, then box.legend.name <- categ1 if only categ1 is present, and box.legend.name <- categ2 if categ1 and categ2 are present. Write "" if no legend required -# box.fill: logical. Fill the box? If TRUE, the categ.color argument will be used to generate filled boxplot (the box frames being black) as well as filled outlier dots (the dot border being controled by the dot.border.color argument) and if all the dots are plotted (argument dot.color other than NULL), they will be over the boxes. If FALSE, the categ.color argument will be used to color the box frames and the outlier dot borders, and if all the dots are plotted, they will be beneath the boxes -# box.width: numeric value (from 0 to 1) of the box or set of grouped box width (see warnings above) -# box.space: numeric value (from 0 to 1) indicating the box separation in grouped boxes. 0 means no space and 1 means boxes shrinked to a vertical line. Ignored if no grouped boxes -# box.line.size: numeric value of line width of boxes and whiskers in mm -# box.notch: logical. Notched boxplot? It TRUE, display notched boxplot, the notches corresponding approximately to the 95% confidence interval of the median (the notch interval is exactly 1.58 x Inter Quartile Range (IQR) / sqrt(n), with n the number of values that made the box). If notch intervals between two boxes do not overlap, it can be interpreted as significant median differences -# box.alpha: numeric value (from 0 to 1) of box transparency (full transparent to full opaque, respectively). BEWARE: work only for the fill of boxplots, not for the frame. See https://github.com/tidyverse/ggplot2/issues/252 -# box.mean: logical. Add mean value? It TRUE, a losange dot, additional to the solid median bar and corresponding to the mean value, is incorporated into each boxplot +# data1: data frame containing one column of quantitative values (see the y argument below) and one or two columns of categories (see the categ argument below). Duplicated column names are not allowed +# y: character string of the data1 column name for y-axis (column containing numeric values). Numeric values will be split according to the classes of the column names indicated in the categ argument to generate the boxes and will also be used to plot the dots +# categ: vector of character strings of the data1 column name for categories (column of characters or factors). Must be either one or two column names. If a single column name (further referred to as categ1), then one box per class of categ1. If two column names (further referred to as categ1 and categ2), then one box per class of categ2, which form a group of boxes in each class of categ1. WARNING: no empty classes allowed. To have a single box, create a factor column with a single class and specify the name of this column in the categ argument (here, no categ2 in categ argument). For a single set of grouped boxes, create a factor column with a single class and specify this column in categ argument as first element (i.e., as categ1), in addition to the already used category (as categ2 in this situation) +# categ.class.order: list indicating the order of the classes of categ1 and categ2 represented on the boxplot (the first compartment for categ1 and and the second for categ2). If categ.class.order == NULL, classes are represented according to the alphabetical order. Some compartments can be NULL and others not. See the categ argument for categ1 and categ2 description +# categ.color: vector of color character string for box frames (see the categ argument for categ1 and categ2 description) +# If categ.color == NULL, default colors of ggplot2, whatever categ1 and categ2 +# If categ.color is non-null and only categ1 in categ argument, categ.color can be either: +# (1) a single color string. All the boxes will have this color, whatever the number of classes of categ1 +# (2) a vector of string colors, one for each class of categ1. Each color will be associated according to categ.class.order of categ1 +# (3) a vector or factor of string colors, like if it was one of the column of data1 data frame. WARNING: a single color per class of categ1 and a single class of categ1 per color must be respected +# Integers are also accepted instead of character strings, as long as above rules about length are respected. Integers will be processed by fun_gg_palette() using the maximal integer value among all the integers in categ.color (see fun_gg_palette()) +# If categ.color is non-null and categ1 and categ2 are specified, all the rules described above will apply to categ2 instead of categ1 (colors will be determined for boxes inside a group of boxes) +# box.legend.name: character string of the legend title. If box.legend.name is NULL, then box.legend.name <- categ1 if only categ1 is present, and box.legend.name <- categ2 if categ1 and categ2 are present in the categ argument. Write "" if no legend required. See the categ argument for categ1 and categ2 description +# box.fill: logical. Fill the box? If TRUE, the categ.color argument will be used to generate filled boxplots (the box frames being black) as well as filled outlier dots (the dot border being controlled by the dot.border.color argument). If all the dots are plotted (argument dot.color other than NULL), they will be over the boxes. If FALSE, the categ.color argument will be used to color the box frames and the outlier dot borders. If all the dots are plotted, they will be beneath the boxes +# box.width: single numeric value (from 0 to 1) of width of either boxes or group of boxes +# When categ argument has a single categ1 element (i.e., separate boxes. See the categ argument for categ1 and categ2 description), then each class of categ1 is represented by a single box. In that case, box.width argument defines each box width, from 0 (no box width) to 1 (max box width), but also the space between boxes (the code uses 1 - box.width for the box spaces). Of note, xmin and xmax of the fun_gg_boxplot() output report the box boundaries (around x-axis unit 1, 2, 3, etc., for each box) +# When categ argument has a two categ1 and categ2 elements (i.e., grouped boxes), box.width argument defines the width allocated for each set of grouped boxes, from 0 (no group width) to 1 (max group width), but also the space between grouped boxes (the code uses 1 - box.width for the spaces). Of note, xmin and xmax of the fun_gg_boxplot() output report the box boundaries (around x-axis unit 1, 2, 3, etc., for each set of grouped box) +# box.space: single numeric value (from 0 to 1) indicating the box separation inside grouped boxes, when categ argument has a two categ1 and categ2 elements. 0 means no space and 1 means boxes shrunk to a vertical line. Ignored if categ argument has a single categ1 element +# box.line.size: single numeric value of line width of boxes and whiskers in mm +# box.notch: logical. Notched boxplot? It TRUE, display notched boxplot, notches corresponding approximately to the 95% confidence interval of the median (the notch interval is exactly 1.58 x Inter Quartile Range (IQR) / sqrt(n), with n the number of values that made the box). If notch intervals between two boxes do not overlap, it can be interpreted as significant median differences +# box.alpha: single numeric value (from 0 to 1) of box transparency (full transparent to full opaque, respectively). WARNING: work only for the filling of boxes, not for the frame. See https://github.com/tidyverse/ggplot2/issues/252 +# box.mean: logical. Add mean value? If TRUE, a diamond-shaped dot, with the horizontal diagonal corresponding to the mean value, is displayed over each boxplot # box.whisker.kind: range of the whiskers. Either "no" (no whiskers), or "std" (length of each whisker equal to 1.5 x Inter Quartile Range (IQR)), or "max" (length of the whiskers up or down to the most distant dot) -# box.whisker.width: numeric value (from 0 to 1) of the whisker width, with 0 meaning no whiskers and 1 meaning a width equal to the corresponding boxplot width -# dot.color: vector of color character string for color of dots. +# box.whisker.width: single numeric value (from 0 to 1) of the whisker width, with 0 meaning no whiskers and 1 meaning a width equal to the box width +# dot.color: vector of color character string ruling the dot colors and the dot display. See the example section below for easier understanding of the rules described here # If NULL, no dots plotted # If "same", the dots will have the same colors as the respective boxplots -# Otherwise, colors will depend on the dot.categ argument. If dot.categ is NULL, then colors will be applied to each class of the last column name specified in categ. If dot.categ is non NULL, colors will be applied to each class of the column name specified in dot.categ. Color strings can be (1), (2) or (3) of categ.color argument, except that in the possibility (3), the rule "a single color per class of categ and a single class of categ per color", does not have to be respected (for instance, each dot can have a different color). See examples Put in example or leave here? -> Example: with categ = "Group1", dot.color = "red" and dot.categ = NULL, all the dots will be red, whatever the classes in Group1 column of data1, and no legend will be display for dots. With categ = c("Group1", "Group2"), dot.color = c("red", "blue") and dot.categ = NULL, the dots will be red for first class of Group2 and blue for the 2nd class of Group2, and no legend will be display for dots. With categ = c("Group1", "Group2"), dot.color = c("red", "blue") and dot.categ = "Group1", the dots will be red for first class of Group1 and blue for the 2nd class of Group1, and a legend will be display for dots -# dot.categ: optional single character string of a data1 column name (further refered to as categ3), which is associated to the dot.color argument to generate a legend for dots. If non NULL, then a legend will be created for the dots, in addition to the legend for the boxes. If NULL, no legend created and the colors of dot will depend on dot.color and categ arguments (see the explanation in dot.color) -# dot.categ.class.order: optional vector of character strings indicating the order of the classes of categ3. If dot.categ is non NULL and dot.categ.class.order is NULL, classes are displayed in the legend according to the alphabetical order. Ignored if dot.categ is NULL -# dot.legend.name: optional character string of the legend title for categ3. If dot.legend.name == NULL, categ3 value is used (name of the column in data1). Write "" if no legend required. Ignored if dot.categ is NULL -# dot.tidy: logical. Nice dot spreading? If TRUE, use the geom_dotplot() function for a nice representation. BEWARE: change the true coordinates of dots that are aligned. Thus the gain in aestheticism is associated with a loss in precision that can be very important. If FALSE, dots are randomly spread, using the dot.jitter argument (see below) keeping the true dot coordinates -# dot.tidy.bin.nb: positive integer indicating the number of bins (i.e., nb of separations) of the y.lim range. Each dot will then be put in one of the bin, with the size the width of the bin. In other words, increase the number to have smaller dots. Not considered if dot.tidy is FALSE -# dot.jitter: numeric value (from 0 to 1) of random dot horizontal dispersion, with 0 meaning no dispersion and 1 meaning a dispersion in the corresponding box width interval. Not considered if dot.tidy is TRUE +# Otherwise, as in the rule (1), (2) or (3) described in the categ.color argument, except that in the possibility (3), the rule "a single color per class of categ and a single class of categ per color", does not have to be respected (for instance, each dot can have a different color). Colors will also depend on the dot.categ argument. If dot.categ is NULL, then colors will be applied to each class of the last column name specified in categ. If dot.categ is non-NULL, colors will be applied to each class of the column name specified in dot.categ. See examples +# dot.categ: optional single character string of a column name (further referred to as categ3) of the data1 argument. This column of data1 will be used to generate a legend for dots, in addition to the legend for boxes. See the dot.color argument for details about the way the legend is built using the two dot.categ and dot.color arguments. If NULL, no legend created and the colors of dots will depend on dot.color and categ arguments (as explained in the dot.color argument) +# dot.categ.class.order: optional vector of character strings indicating the order of the classes of categ3 (see the dot.categ argument). If dot.categ is non-NULL and dot.categ.class.order is NULL, classes are displayed in the legend according to the alphabetical order. Ignored if dot.categ is NULL +# dot.legend.name: optional character string of the legend title for categ3 (see the dot.categ argument). If dot.legend.name == NULL, dot.categ value is used (name of the column in data1). Write "" if no legend required. Ignored if dot.categ is NULL +# dot.tidy: logical. Nice dot spreading? If TRUE, use the geom_dotplot() function for a nice representation. WARNING: change the true quantitative coordinates of dots (i.e., y-axis values for vertical display) because of binning. Thus, the gain in aestheticism is associated with a loss in precision that can be very important. If FALSE, dots are randomly spread on the qualitative axis, using the dot.jitter argument (see below) keeping the true quantitative coordinates +# dot.tidy.bin.nb: positive integer indicating the number of bins (i.e., nb of separations) of the y.lim range. Each dot will then be put in one of the bin, with a diameter of the width of the bin. In other words, increase the number of bins to have smaller dots. Not considered if dot.tidy is FALSE +# dot.jitter: numeric value (from 0 to 1) of random dot horizontal dispersion (for vertical display), with 0 meaning no dispersion and 1 meaning dispersion in the corresponding box width interval. Not considered if dot.tidy is TRUE # dot.size: numeric value of dot diameter in mm. Not considered if dot.tidy is TRUE # dot.alpha: numeric value (from 0 to 1) of dot transparency (full transparent to full opaque, respectively) # dot.border.size: numeric value of border dot width in mm. Write zero for no dot border. If dot.tidy is TRUE, value 0 remove the border and other values leave the border without size control (geom_doplot() feature) # dot.border.color: single character color string defining the color of the dot border (same color for all the dots, whatever their categories). If dot.border.color == NULL, the border color will be the same as the dot color. A single integer is also accepted instead of a character string, that will be processed by fun_gg_palette() -# x.lab: a character string or expression for x-axis legend. If NULL, character string of categ1 +# x.lab: a character string or expression for x-axis legend. If NULL, character string of categ1 (see the categ argument for categ1 and categ2 description) # y.lab: a character string or expression for y-axis legend. If NULL, character string of the y argument -# y.lim: 2 numeric values indicating the range of the y-axis -# y.log: either "no", "log2" (values in the y argument column of the data1 data frame will be log2 transformed and y-axis will be log2 scaled) or "log10" (values in the y argument column of the data1 data frame will be log10 transformed and y-axis will be log10 scaled). BEWARE: not possible to have horizontal boxs with a log axis, due to a bug in ggplot2 (see https://github.com/tidyverse/ggplot2/issues/881) -# y.tick.nb: approximate number of desired label values (i.e., main ticks) on the y-axis (n argument of the the cute::fun_scale() function). BEWARE: provide this number even if y.log is "log2" or "log10", which can be difficult to read (e.g., ..., 2^2, 2^2.5, 2^3, ...). If NULL and if y.log is "no", then the number of label values is set by ggplot2. If NULL and if y.log is "log2" or "log10", then the number of label values correspond to integer units between y.lim (e.g., ..., 2^1, 2^2, 2^3, ...) +# y.lim: 2 numeric values indicating the range of the y-axis. Order matters (for inverted axis). If NULL, the range of the x column name of data1 will be used. +# y.log: either "no", "log2" (values in the y argument column of the data1 data frame will be log2 transformed and y-axis will be log2 scaled) or "log10" (values in the y argument column of the data1 data frame will be log10 transformed and y-axis will be log10 scaled). WARNING: not possible to have horizontal boxes with a log axis, due to a bug in ggplot2 (see https://github.com/tidyverse/ggplot2/issues/881) +# y.tick.nb: approximate number of desired values labeling the y-axis (i.e., main ticks, see the n argument of the the cute::fun_scale() function). If NULL and if y.log is "no", then the number of labeling values is set by ggplot2. If NULL and if y.log is "log2" or "log10", then the number of labeling values corresponds to all the exposant integers in the y.lim range (e.g., 10^1, 10^2 and 10^3, meaning 3 main ticks for y.lim = c(9, 1200)). WARNING: if non-NULL and if y.log is "log2" or "log10", labeling can be difficult to read (e.g., ..., 10^2, 10^2.5, 10^3, ...) # y.second.tick.nb: number of desired secondary ticks between main ticks. Ignored if y.log is other than "no" (log scale plotted). Use argument return = TRUE and see $plot$y.second.tick.values to have the values associated to secondary ticks. IF NULL, no secondary ticks # y.include.zero: logical. Does y.lim range include 0? Ignored if y.log is "log2" or "log10" -# y.top.extra.margin: single proportion (between 0 and 1) indicating if extra margins must be added to y.lim. If different from 0, add the range of the axis * y.top.extra.margin (e.g., abs(y.lim[2] - y.lim[1]) * y.top.extra.margin) to the top of y-axis +# y.top.extra.margin: single proportion (between 0 and 1) indicating if extra margins must be added to y.lim. If different from 0, add the range of the axis multiplied by y.top.extra.margin (e.g., abs(y.lim[2] - y.lim[1]) * y.top.extra.margin) to the top of y-axis # y.bottom.extra.margin: idem as y.top.extra.margin but to the bottom of y-axis -# stat.disp: add the median number above the corresponding box. Either NULL (no number shown), "top" (at the top of the figure region) or "above" (above each box) -# stat.disp.mean: logical. Diplay means instead of medians ? -# stat.size: numeric value of the stat font size in mm -# stat.dist: numeric value of the stat distance. Increase the value to increase the distance from the box plot -# vertical: logical. Vertical boxs? BEWARE: will be automatically set to TRUE if y.log argument is other than "no". Indeed, not possible to have horizontal boxs with a log axis, due to a bug in ggplot2 (see https://github.com/tidyverse/ggplot2/issues/881) -# text.size: numeric value of the font size of the (1) axis numbers and axis legends, (2) texts in the graphic legend, (3) stats above boxs (in mm) -# text.angle: integer value of the text angle for the x-axis labels. Positive values for counterclockwise rotation: 0 for horizontal, 90 for vertical, 180 for upside down etc. Negative values for clockwise rotation: 0 for horizontal, -90 for vertical, -180 for upside down etc. +# stat.disp: add the median number above the corresponding box. Either NULL (no number shown), "top" (at the top of the plot region) or "above" (above each box) +# stat.disp.mean: logical. Display mean numbers instead of median numbers? Ignored if stat.disp is NULL +# stat.size: numeric value of the stat font size in mm. Ignored if stat.disp is NULL +# stat.dist: numeric value of the stat distance (in the unit of the hjust and vjust arguments of ggplot2::annotate() function). Increase the value to increase the distance from the box plot. Ignored if stat.disp is NULL or "top" +# vertical: logical. Vertical boxes? WARNING: will be automatically set to TRUE if y.log argument is other than "no". Indeed, not possible to have horizontal boxes with a log axis, due to a bug in ggplot2 (see https://github.com/tidyverse/ggplot2/issues/881) +# text.size: numeric value of the font size of the (1) axis numbers, (2) axis labels and (3) texts in the graphic legend (in mm) +# text.angle: integer value of the text angle for the x-axis numbers, using the same rules as in ggplot2. Positive values for counterclockwise rotation: 0 for horizontal, 90 for vertical, 180 for upside down etc. Negative values for clockwise rotation: 0 for horizontal, -90 for vertical, -180 for upside down etc. # title: character string of the graph title # title.text.size: numeric value of the title font size in mm -# legend.show: logical. Show legend? Not considered if categ argument is NULL, because this already generate no legend, excepted if legend.width argument is non NULL. In that specific case (categ is NULL, legend.show is TRUE and legend.width is non NULL), an empty legend space is created. This can be useful when desiring graphs of exactly the same width, whatever they have legends or not -# legend.width: single proportion (between 0 and 1) indicating the relative width of the legend sector (on the right of the plot) relative to the width of the plot. Value 1 means that the window device width is split in 2, half for the plot and half for the legend. Value 0 means no room for the legend which will overlay the plot region. Write NULL to inactivate the legend sector. In such case, ggplot2 will manage the room required for the legend display, meaning that the width of the plotting region can vary between graphs, depending on the text in the legend -# article: logical. If TRUE, use a article theme (article like). If FALSE, use a classic related ggplot theme. Use the add argument (add = "+ggplot2::theme_classic()" for the exact classic ggplot theme -# grid: logical. Draw horizontal lines in the background to better read the box values? Not considered if article == FALSE +# legend.show: logical. Show legend? Not considered if categ argument is NULL, because this already generate no legend, excepted if legend.width argument is non-NULL. In that specific case (categ is NULL, legend.show is TRUE and legend.width is non-NULL), an empty legend space is created. This can be useful when desiring graphs of exactly the same width, whatever they have legends or not +# legend.width: single proportion (between 0 and 1) indicating the relative width of the legend sector (on the right of the plot) relative to the width of the plot. Value 1 means that the window device width is split in 2, half for the plot and half for the legend. Value 0 means no room for the legend, which will overlay the plot region. Write NULL to inactivate the legend sector. In such case, ggplot2 will manage the room required for the legend display, meaning that the width of the plotting region can vary between graphs, depending on the text in the legend +# article: logical. If TRUE, use an article theme (article like). If FALSE, use a classic related ggplot theme. Use the add argument (e.g., add = "+ggplot2::theme_classic()" for the exact classic ggplot theme +# grid: logical. Draw lines in the background to better read the box values? Not considered if article == FALSE (grid systematically present) # return: logical. Return the graph parameters? # return.ggplot: logical. Return the ggplot object in the output list? Ignored if return argument is FALSE. WARNING: always assign the fun_gg_boxplot() function (e.g., a <- fun_gg_boxplot()) if return.ggplot argument is TRUE, otherwise, double plotting is performed. See $ggplot in the RETURN section below for more details # plot: logical. Plot the graphic? If FALSE and return argument is TRUE, graphical parameters and associated warnings are provided without plotting # add: character string allowing to add more ggplot2 features (dots, lines, themes, facet, etc.). Ignored if NULL -# BEWARE: (1) the string must start with "+", (2) the string must finish with ")" and (3) each function must be preceded by "ggplot2::". Example: "+ ggplot2::coord_flip() + ggplot2::theme_bw()" +# WARNING: (1) the string must start with "+", (2) the string must finish with ")" and (3) each function must be preceded by "ggplot2::". Example: "+ ggplot2::coord_flip() + ggplot2::theme_bw()" # If the character string contains the "ggplot2::theme" string, then the article argument of fun_gg_boxplot() (see above) is ignored with a warning # Handle the add argument with caution since added functions can create conflicts with the preexisting internal ggplot2 functions # warn.print: logical. Print warnings at the end of the execution? ? If FALSE, warning messages are never printed, but can still be recovered in the returned list. Some of the warning messages (those delivered by the internal ggplot2 functions) are not apparent when using the argument plot = FALSE @@ -7902,7 +7905,7 @@ lib.path = NULL # REQUIRED PACKAGES # ggplot2 # scales -# REQUIRED FUNCTIONS FROM CUTE_LITTLE_R_FUNCTION +# REQUIRED FUNCTIONS FROM THE cute PACKAGE # fun_check() # fun_comp_1d() # fun_comp_2d() @@ -7928,21 +7931,20 @@ lib.path = NULL # $inf.whisker: coordinates of bottom whiskers (y for base and y.end for extremities) # $sup.whisker.edge: coordinates of top whisker edges (x and xend) # $inf.whisker.edge: coordinates of bottom whisker edges(x and xend) -# $mean: diamon mean coordinates (only if box.mean argument is TRUE) +# $mean: diamond mean coordinates (only if box.mean argument is TRUE) # $stat.display.positive: coordinates of stat numbers when positive (only if stat.disp argument is TRUE) # $stat.display.negative: coordinates of stat numbers when negative (only if stat.disp argument is TRUE) -# y.second.tick.positions: coordinates of secondary ticks (only if y.second.tick.nb argument is non NULL or if y.log argument is different from "no") -# y.second.tick.values: values of secondary ticks. NULL except if y.second.tick.nb argument is non NULL or if y.log argument is different from "no") -# $panel: the variable names used for the panels (NULL if no panels). BEWARE: NA can be present according to ggplot2 upgrade to v3.3.0 +# y.second.tick.positions: coordinates of secondary ticks (only if y.second.tick.nb argument is non-NULL or if y.log argument is different from "no") +# y.second.tick.values: values of secondary ticks. NULL except if y.second.tick.nb argument is non-NULL or if y.log argument is different from "no") +# $panel: the variable names used for the panels (NULL if no panels). WARNING: NA can be present according to ggplot2 upgrade to v3.3.0 # $axes: the x-axis and y-axis info -# $warn: the warning messages. Use cat() for proper display. NULL if no warning. BEWARE: some of the warning messages (those delivered by the internal ggplot2 functions) are not apparent when using the argument plot = FALSE -# $ggplot: ggplot object that can be used for reprint (use print($ggplot) or update (use $ggplot + ggplot2::...). NULL if return.ggplot argument is FALSE. Of note, a non NULL $ggplot in the output list is sometimes annoying as the manipulation of this list prints the plot +# $warn: the warning messages. Use cat() for proper display. NULL if no warning. WARNING: warning messages delivered by the internal ggplot2 functions are not apparent when using the argument plot = FALSE +# $ggplot: ggplot object that can be used for reprint (use print(...$ggplot) or update (use ...$ggplot + ggplot2::...). NULL if return.ggplot argument is FALSE. Of note, a non-NULL $ggplot in the output list is sometimes annoying as the manipulation of this list prints the plot # EXAMPLE -# obs1 <- data.frame(x = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) ; fun_gg_boxplot(data1 = obs1, y = "x", categ = c("Group1", "Group2"), categ.class.order = list(NULL, c("B", "A")), box.legend.name = "", categ.color = c("red", "blue"),box.fill = FALSE, box.width = 0.5, box.space = 0.1, box.line.size = 0.5, box.notch = FALSE, box.alpha = 1, box.mean = TRUE, box.whisker.kind = "std", box.whisker.width = 0, dot.color = "black", dot.categ = NULL, dot.categ.class.order = NULL, dot.legend.name = NULL, dot.tidy = TRUE, dot.tidy.bin.nb = 50, dot.jitter = 0.5, dot.size = 3, dot.alpha = 0.5, dot.border.size = 0.5, dot.border.color = NULL, x.lab = NULL, y.lab = NULL, y.lim = NULL, y.log = "no", y.tick.nb = NULL, y.second.tick.nb = NULL, y.include.zero = FALSE, y.top.extra.margin = 0.05, y.bottom.extra.margin = 0.05, stat.disp = NULL, stat.disp.mean = FALSE, stat.size = 4, stat.dist = 2, vertical = TRUE, text.size = 12, text.angle = 0, title = "", title.text.size = 8, legend.width = 0.5, article = TRUE, grid = FALSE, return = FALSE, return.ggplot = FALSE, plot = TRUE, add = NULL, warn.print = TRUE, lib.path = NULL) # DEBUGGING -# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10)) ; set.seed(NULL) ; obs1$Time[1:10] <- NA ; data1 = obs1 ; y = "Time" ; categ = c("Group1") ; categ.class.order = NULL ; box.legend.name = NULL ; categ.color = c("green") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = FALSE ; box.line.size = 0.5 ; box.alpha = 0.5 ; box.mean = TRUE ; box.whisker.kind = "std" ; box.whisker.width = 0.5 ; dot.color = "black" ; dot.categ = "Group1"; dot.categ.class.order = c("G", "H") ; dot.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 50 ; dot.jitter = 0.25 ; dot.size = 3 ; dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "no" ; y.tick.nb = NULL ; y.second.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = TRUE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL -# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10), Group2 = rep(c("A", "B"), time = 10), Group3 = rep(c("I", "J"), time = 10)) ; set.seed(NULL) ; obs1$Time[1:10] <- NA ; data1 = obs1 ; y = "Time" ; categ = c("Group1", "Group2") ; categ.class.order = list(c("G", "H"), c("A", "B")); box.legend.name = NULL ; categ.color = c("green", "blue") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = FALSE ; box.line.size = 0.5 ; box.alpha = 0.5 ; box.mean = TRUE ; box.whisker.kind = "std" ; box.whisker.width = 0.5 ; dot.color = "black" ; dot.categ = "Group1" ; dot.categ.class.order = NULL ; dot.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 30 ; dot.jitter = 0.25 ; dot.size = 3 ; dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "no" ; y.tick.nb = NULL ; y.second.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = FALSE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL -# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10), Group2 = rep(c("A", "B"), time = 10)) ; set.seed(NULL) ; data1 = obs1 ; y = "Time" ; categ = c("Group1") ; categ.class.order = list(c("H", "G")); box.legend.name = NULL ; categ.color = c("blue") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = TRUE ; box.line.size = 1 ; box.alpha = 1 ; box.mean = FALSE ; box.whisker.kind = "max" ; box.whisker.width = 0 ; dot.color = "black" ; dot.categ = "Group1" ; dot.categ.class.order = NULL ; dot.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 30 ; dot.jitter = 0.25 ; dot.size = 3 ; dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "log10" ; y.tick.nb = NULL ; y.second.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = FALSE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL +# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10)) ; set.seed(NULL) ; obs1$Time[1:10] <- NA ; data1 = obs1 ; y = "Time" ; categ = c("Group1") ; categ.class.order = NULL ; box.legend.name = NULL ; categ.color = c("green") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = FALSE ; box.line.size = 0.5 ; box.alpha = 0.5 ; box.mean = TRUE ; box.whisker.kind = "std" ; box.whisker.width = 0.5 ; dot.color = "black" ; dot.categ = "Group1"; dot.categ.class.order = c("G", "H") ; dot.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 50 ; dot.jitter = 0.25 ; dot.size = 3 ; dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "no" ; y.tick.nb = NULL ; y.second.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = TRUE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL +# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10), Group2 = rep(c("A", "B"), time = 10), Group3 = rep(c("I", "J"), time = 10)) ; set.seed(NULL) ; obs1$Time[1:10] <- NA ; data1 = obs1 ; y = "Time" ; categ = c("Group1", "Group2") ; categ.class.order = list(c("G", "H"), c("A", "B")); box.legend.name = NULL ; categ.color = c("green", "blue") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = FALSE ; box.line.size = 0.5 ; box.alpha = 0.5 ; box.mean = TRUE ; box.whisker.kind = "std" ; box.whisker.width = 0.5 ; dot.color = "black" ; dot.categ = "Group1" ; dot.categ.class.order = NULL ; dot.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 30 ; dot.jitter = 0.25 ; dot.size = 3 ; dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "no" ; y.tick.nb = NULL ; y.second.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = FALSE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL +# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10), Group2 = rep(c("A", "B"), time = 10)) ; set.seed(NULL) ; data1 = obs1 ; y = "Time" ; categ = c("Group1") ; categ.class.order = list(c("H", "G")); box.legend.name = NULL ; categ.color = c("blue") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = TRUE ; box.line.size = 1 ; box.alpha = 1 ; box.mean = FALSE ; box.whisker.kind = "max" ; box.whisker.width = 0 ; dot.color = "black" ; dot.categ = "Group1" ; dot.categ.class.order = NULL ; dot.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 30 ; dot.jitter = 0.25 ; dot.size = 3 ; dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "log10" ; y.tick.nb = NULL ; y.second.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = FALSE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL # function name function.name <- paste0(as.list(match.call(expand.dots=FALSE))[[1]], "()") arg.user.setting <- as.list(match.call(expand.dots=FALSE))[-1] # list of the argument settings (excluding default values not provided by the user) @@ -8238,14 +8240,14 @@ warn.count <- warn.count + 1 tempo.warn <- paste0("(", warn.count,") IN y ARGUMENT (COLUMN NAMES OF data1 ARGUMENT),\n", tempo.output$ini[i2], " HAS BEEN REPLACED BY ", tempo.output$post[i2], "\nBECAUSE RISK OF BUG AS SOME NAMES IN y ARGUMENT ARE RESERVED WORD USED BY THE ", function.name, " FUNCTION") warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn))) } -# BEWARE: names of y argument potentially replaced +# WARNING: names of y argument potentially replaced if(any(categ == tempo.output$ini[i2])){ categ[categ == tempo.output$ini[i2]] <- tempo.output$post[i2] warn.count <- warn.count + 1 tempo.warn <- paste0("(", warn.count,") IN categ ARGUMENT (COLUMN NAMES OF data1 ARGUMENT),\n", tempo.output$ini[i2], " HAS BEEN REPLACED BY ", tempo.output$post[i2], "\nBECAUSE RISK OF BUG AS SOME NAMES IN categ ARGUMENT ARE RESERVED WORD USED BY THE ", function.name, " FUNCTION") warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn))) } -# BEWARE: names of categ argument potentially replaced +# WARNING: names of categ argument potentially replaced if( ! is.null(dot.categ)){ if(any(dot.categ == tempo.output$ini[i2])){ dot.categ[dot.categ == tempo.output$ini[i2]] <- tempo.output$post[i2] @@ -8254,7 +8256,7 @@ tempo.warn <- paste0("(", warn.count,") IN dot.categ ARGUMENT (COLUMN NAMES OF d warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn))) } } -# BEWARE: names of dot.categ argument potentially replaced +# WARNING: names of dot.categ argument potentially replaced } warn.count <- warn.count + 1 tempo.warn <- paste0("(", warn.count,") REGARDING COLUMN NAMES REPLACEMENT, THE NAMES\n", paste(tempo.output$ini, collapse = " "), "\nHAVE BEEN REPLACED BY\n", paste(tempo.output$post, collapse = " ")) @@ -8275,7 +8277,7 @@ stop(tempo.cat, call. = FALSE) }else if( ! grepl(pattern = "(ggplot2|lemon)\\s*::", add)){ # tempo.cat <- paste0("ERROR IN ", function.name, ": FOR EASIER FUNCTION DETECTION, add ARGUMENT MUST CONTAIN \"ggplot2::\" OR \"lemon::\" IN FRONT OF EACH GGPLOT2 FUNCTION: ", paste(unique(add), collapse = " ")) stop(tempo.cat, call. = FALSE) -}else if( ! grepl(pattern = ")\\s*$", add)){ # check that the add string finished by ) +}else if( ! grepl(pattern = ")\\s*$", add)){ # check that the add string finished by ) tempo.cat <- paste0("ERROR IN ", function.name, ": add ARGUMENT MUST FINISH BY \")\": ", paste(unique(add), collapse = " ")) stop(tempo.cat, call. = FALSE) } @@ -8300,7 +8302,7 @@ facet.categ <- c(names(tempo1$params$rows), names(tempo1$params$cols)) tempo.text <- "facet_grid OR facet_rep_grid" facet.check <- FALSE } -if(facet.check == FALSE & ! all(facet.categ %in% names(data1))){ # BEWARE: all(facet.categ %in% names(data1)) is TRUE when facet.categ is NULL +if(facet.check == FALSE & ! all(facet.categ %in% names(data1))){ # WARNING: all(facet.categ %in% names(data1)) is TRUE when facet.categ is NULL tempo.cat <- paste0("ERROR IN ", function.name, "\nDETECTION OF \"", tempo.text, "\" STRING IN THE add ARGUMENT BUT PROBLEM OF VARIABLE DETECTION (COLUMN NAMES OF data1)\nTHE DETECTED VARIABLES ARE:\n", paste(facet.categ, collapse = " "), "\nTHE data1 COLUMN NAMES ARE:\n", paste(names(data1), collapse = " "), "\nPLEASE REWRITE THE add STRING AND RERUN") stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE) } @@ -8462,7 +8464,7 @@ names(data1)[names(data1) == "dot.categ"] <- dot.categ # paste0(dot.categ, "_DOT # stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE) } tempo1 <- fun_check(data = data1[, dot.categ], data.name = paste0(dot.categ, " COLUMN OF data1"), class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name) -tempo2 <- fun_check(data = data1[, dot.categ], data.name = paste0(dot.categ, " COLUMN OF data1"), class = "factor", na.contain = TRUE, fun.name = function.name) +tempo2 <- fun_check(data = data1[, dot.categ], data.name = paste0(dot.categ, " COLUMN OF data1"), class = "factor", na.contain = TRUE, fun.name = function.name) if(tempo1$problem == TRUE & tempo2$problem == TRUE){ tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ COLUMN MUST BE A FACTOR OR CHARACTER VECTOR") # stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE) @@ -8663,7 +8665,7 @@ y.include.zero <- FALSE if(y.log != "no" & vertical == FALSE){ vertical <- TRUE warn.count <- warn.count + 1 -tempo.warn <- paste0("(", warn.count,") BECAUSE OF A BUG IN ggplot2, CANNOT FLIP BOXS HORIZONTALLY WITH A Y.LOG SCALE -> vertical ARGUMENT RESET TO TRUE") +tempo.warn <- paste0("(", warn.count,") BECAUSE OF A BUG IN ggplot2, CANNOT FLIP BOXES HORIZONTALLY WITH A Y.LOG SCALE -> vertical ARGUMENT RESET TO TRUE") warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn))) } # end management of log scale @@ -8715,7 +8717,7 @@ data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), lev } if( ! is.null(dot.color) & ! is.null(dot.categ)){ # reminder : dot.categ cannot be a column name of categ anymore (because in that case dot.categ name is changed into "..._DOT" if(column.check[i2] == ini.dot.categ){ -dot.categ.class.order <- levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(data1[, column.check[i2]])] # remove the absent color in the character vector +dot.categ.class.order <- levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(data1[, column.check[i2]])] # remove the absent color in the character vector data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = unique(dot.categ.class.order)) } } @@ -8749,7 +8751,7 @@ removed.rows <- NULL if(length(categ) == 1){ # width commputations box.width2 <- box.width -box.space <- 0 # to inactivate the shrink that add space between grouped boxes, because no grouped boxes here +box.space <- 0 # to inactivate the shrink that add space between grouped boxes, because no grouped boxes here # end width commputations # data1 check categ order for dots coordinates recovery data1 <- data.frame(data1, categ.check = data1[, categ[1]]) @@ -8761,12 +8763,12 @@ tempo.gg.count <- 0 assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste0("ggplot2::ggplot()", if(is.null(add)){""}else{add})))) # add added here to have the facets assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, color = categ[1]), stroke = dot.border.size, size = dot.size, alpha = dot.alpha, shape = 21)) assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = box.legend.name, values = if(is.null(dot.color)){rep(NA, length(unique(data1[, categ[1]])))}else if(length(dot.color) == 1){rep(dot.color, length(unique(data1[, categ[1]])))}else{dot.color})) -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, fill = categ[1]), coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf})) # fill because this is what is used with geom_box # to easily have the equivalent of the grouped boxs +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, fill = categ[1]), coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf})) # fill because this is what is used with geom_box # to easily have the equivalent of the grouped boxes assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = box.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[1]])))}else{categ.color})) # end per box dots coordinates recovery }else if(length(categ) == 2){ # width commputations -box.width2 <- box.width / length(unique(data1[, categ[length(categ)]])) # real width of each box in x-axis unit, among the set of grouped box. Not relevant if no grouped boxs length(categ) == 1 +box.width2 <- box.width / length(unique(data1[, categ[length(categ)]])) # real width of each box in x-axis unit, among the set of grouped box. Not relevant if no grouped boxes length(categ) == 1 # end width commputations # data1 check categ order for dots coordinates recovery tempo.factor <- paste0(data1[order(data1[, categ[2]], data1[, categ[1]]), categ[2]], "_", data1[order(data1[, categ[2]], data1[, categ[1]]), categ[1]]) @@ -8779,7 +8781,7 @@ tempo.gg.count <- 0 assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste0("ggplot2::ggplot()", if(is.null(add)){""}else{add})))) # add added here to have the facets assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, color = categ[2]), stroke = dot.border.size, size = dot.size, alpha = dot.alpha, shape = 21)) assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = box.legend.name, values = if(is.null(dot.color)){rep(NA, length(unique(data1[, categ[2]])))}else if(length(dot.color) == 1){rep(dot.color, length(unique(data1[, categ[2]])))}else{dot.color})) -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, fill = categ[2]), coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf})) # fill because this is what is used with geom_box # to easily have the equivalent of the grouped boxs +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, fill = categ[2]), coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf})) # fill because this is what is used with geom_box # to easily have the equivalent of the grouped boxes assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = box.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[2]])))}else{categ.color})) # end per box dots coordinates recovery }else{ @@ -8954,7 +8956,7 @@ add.check <- FALSE } } if(add.check == TRUE & article == TRUE){ -# BEWARE: not possible to add theme()several times. NO message but the last one overwrites the others +# WARNING: not possible to add theme()several times. NO message but the last one overwrites the others assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::theme_classic(base_size = text.size)) if(grid == TRUE){ assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme( @@ -9010,7 +9012,7 @@ assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geo # x coordinates management (for random plotting and for stat display) -# boxs +# boxes tempo.graph.info <- ggplot2::ggplot_build(eval(parse(text = paste0(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), ' + ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, fill = categ[length(categ)]), position = ggplot2::position_dodge(width = NULL), width = box.width, notch = box.notch, coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf}) + ggplot2::scale_discrete_manual(aesthetics = "fill", name = box.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[length(categ)]])))}else{categ.color})')))) # will be recovered later again, when ylim will be considered tempo.yx.ratio <- (tempo.graph.info$layout$panel_params[[1]]$y.range[2] - tempo.graph.info$layout$panel_params[[1]]$y.range[1]) / (tempo.graph.info$layout$panel_params[[1]]$x.range[2] - tempo.graph.info$layout$panel_params[[1]]$x.range[1]) box.coord <- tempo.graph.info$data[[2]] # to have the summary statistics of the plot. Contrary to ini.box.plot, now integrates ylim Here because can be required for stat.disp when just box are plotted @@ -9043,7 +9045,7 @@ stat, X = box.coord$x, X_BOX_INF = box.coord$xmin + width.correct, X_BOX_SUP = box.coord$xmax - width.correct, -X_NOTCH_INF = box.coord$x - (box.coord$x - (box.coord$xmin + width.correct)) / 2, +X_NOTCH_INF = box.coord$x - (box.coord$x - (box.coord$xmin + width.correct)) / 2, X_NOTCH_SUP = box.coord$x + (box.coord$x - (box.coord$xmin + width.correct)) / 2, X_WHISK_INF = box.coord$x - (box.coord$x - (box.coord$xmin + width.correct)) * box.whisker.width, X_WHISK_SUP = box.coord$x + (box.coord$x - (box.coord$xmin + width.correct)) * box.whisker.width, @@ -9057,20 +9059,20 @@ tempo.warn <- paste0("(", warn.count,") SOME NOTCHES ARE BEYOND BOX HINGES. TRY warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn))) } } -dot.jitter <- c((box.coord$xmax - width.correct) - (box.coord$xmin + width.correct))[1] * dot.jitter # real dot.jitter. (box.coord$xmin + width.correct) - (box.coord$xmax - width.correct))[1] is the width of the box. Is equivalent to (box.coord$x - (box.coord$xmin + width.correct))[1] * 2 +dot.jitter <- c((box.coord$xmax - width.correct) - (box.coord$xmin + width.correct))[1] * dot.jitter # real dot.jitter. (box.coord$xmin + width.correct) - (box.coord$xmax - width.correct))[1] is the width of the box. Is equivalent to (box.coord$x - (box.coord$xmin + width.correct))[1] * 2 # end width commputations -# end boxs +# end boxes if( ! is.null(dot.color)){ # random dots if(dot.tidy == FALSE){ -dot.coord.rd1 <- merge(dot.coord, box.coord[c("fill", "PANEL", "group", "x")], by = c("PANEL", "group"), sort = FALSE) # rd for random. Send the coord of the boxs into the coord data.frame of the dots (in the column x.y). BEWARE: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in box.coord. Thus, no need to consider fill column +dot.coord.rd1 <- merge(dot.coord, box.coord[c("fill", "PANEL", "group", "x")], by = c("PANEL", "group"), sort = FALSE) # rd for random. Send the coord of the boxes into the coord data.frame of the dots (in the column x.y). WARNING: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in box.coord. Thus, no need to consider fill column if(nrow(dot.coord.rd1) != nrow(dot.coord)){ tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT dot.coord.rd1 DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n") stop(tempo.cat) } set.seed(1) sampled.dot.jitter <- if(nrow(dot.coord.rd1) == 1){runif(n = nrow(dot.coord.rd1), min = - dot.jitter / 2, max = dot.jitter / 2)}else{sample(x = runif(n = nrow(dot.coord.rd1), min = - dot.jitter / 2, max = dot.jitter / 2), size = nrow(dot.coord.rd1), replace = FALSE)} -dot.coord.rd2 <- data.frame(dot.coord.rd1, dot.x = dot.coord.rd1$x.y + sampled.dot.jitter) # set the dot.jitter thanks to runif and dot.jitter range. Then, send the coord of the boxs into the coord data.frame of the dots (in the column x.y) +dot.coord.rd2 <- data.frame(dot.coord.rd1, dot.x = dot.coord.rd1$x.y + sampled.dot.jitter) # set the dot.jitter thanks to runif and dot.jitter range. Then, send the coord of the boxes into the coord data.frame of the dots (in the column x.y) set.seed(NULL) if(length(categ) == 1){ tempo.data1 <- unique(data.frame(data1[categ[1]], group = as.integer(data1[, categ[1]]))) # categ[1] is factor @@ -9094,7 +9096,7 @@ verif <- c(paste0(categ[1], ".check"), paste0(categ[2], ".check")) tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 6\n\n============\n\n") stop(tempo.cat) } -dot.coord.rd3 <- merge(dot.coord.rd2, tempo.data1, by = intersect("group", "group"), sort = FALSE) # send the factors of data1 into coord. BEWARE: I have replaced by = "group" by intersect("group", "group") because of an error due to wrong group group merging in dot.coord.rd3 +dot.coord.rd3 <- merge(dot.coord.rd2, tempo.data1, by = intersect("group", "group"), sort = FALSE) # send the factors of data1 into coord. WARNING: I have replaced by = "group" by intersect("group", "group") because of an error due to wrong group group merging in dot.coord.rd3 if(nrow(dot.coord.rd3) != nrow(dot.coord) | ( ! fun_comp_2d(dot.coord.rd3[categ], dot.coord.rd3[verif])$identical.content)){ tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT dot.coord.rd3 DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n") stop(tempo.cat) @@ -9256,7 +9258,7 @@ color = if(is.null(dot.border.color)){dot.coord.rd3$dot.color}else{rep(dot.borde fill = dot.coord.rd3$dot.color )) # group used in aesthetic to do not have it in the legend. Here ggplot2::scale_discrete_manual() cannot be used because of the group easthetic } -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "alpha", name = dot.legend.name, values = rep(dot.alpha, length(dot.categ.class.order)), guide = ggplot2::guide_legend(override.aes = list(fill = dot.color, color = if(is.null(dot.border.color)){dot.color}else{dot.border.color}, stroke = dot.border.size, alpha = dot.alpha)))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "alpha", name = dot.legend.name, values = rep(dot.alpha, length(dot.categ.class.order)), guide = ggplot2::guide_legend(override.aes = list(fill = dot.color, color = if(is.null(dot.border.color)){dot.color}else{dot.border.color}, stroke = dot.border.size, alpha = dot.alpha)))) # values are the values of color (which is the border color in geom_box. WARNING: values = categ.color takes the numbers to make the colors if categ.color is a factor } coord.names <- c(coord.names, "dots") }else if(dot.tidy == TRUE){ @@ -9265,32 +9267,34 @@ assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geo data = dot.coord, mapping = ggplot2::aes_string(x = categ[1], y = "y", group = "group"), # not dot.categ here because the classes of dot.categ create new separations position = ggplot2::position_dodge(width = box.width), +binpositions = "all", binaxis = "y", stackdir = "center", alpha = dot.alpha, fill = dot.coord$dot.color, stroke = dot.border.size, color = if(is.null(dot.border.color)){dot.coord$dot.color}else{rep(dot.border.color, nrow(dot.coord))}, -show.legend = FALSE, # BEWARE: do not use show.legend = TRUE because it uses the arguments outside aes() as aesthetics (here color and fill). Thus I must find a way using ggplot2::scale_discrete_manual() +show.legend = FALSE, # WARNING: do not use show.legend = TRUE because it uses the arguments outside aes() as aesthetics (here color and fill). Thus I must find a way using ggplot2::scale_discrete_manual() binwidth = (y.lim[2] - y.lim[1]) / dot.tidy.bin.nb -)) # geom_dotplot ggplot2 v3.3.0: I had to remove rev() in fill and color # very weird behavior of geom_dotplot ggplot2 v3.2.1, (1) because with aes group = (to avoid legend), the dot plotting is not good in term of coordinates, and (2) because data1 seems reorderer according to x = categ[1] before plotting. Thus, I have to use fill = dot.coord[rev(order(dot.coord[, categ[1]], decreasing = TRUE)), "dot.color"] to have the good corresponding colors # show.legend option do not remove the legend, only the aesthetic of the legend (dot, line, etc.) +)) # geom_dotplot ggplot2 v3.3.0: I had to remove rev() in fill and color # very weird behavior of geom_dotplot ggplot2 v3.2.1, (1) because with aes group = (to avoid legend), the dot plotting is not good in term of coordinates, and (2) because data1 seems reorderer according to x = categ[1] before plotting. Thus, I have to use fill = dot.coord[rev(order(dot.coord[, categ[1]], decreasing = TRUE)), "dot.color"] to have the good corresponding colors # show.legend option do not remove the legend, only the aesthetic of the legend (dot, line, etc.) coord.names <- c(coord.names, "dots") if( ! is.null(dot.categ)){ assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_dotplot( data = dot.coord, mapping = ggplot2::aes_string(x = categ[1], y = "y", alpha = dot.categ), # not dot.categ here because the classes of dot.categ create new separations position = ggplot2::position_dodge(width = box.width), +binpositions = "all", binaxis = "y", stackdir = "center", fill = NA, stroke = NA, color = NA, -# BEWARE: do not use show.legend = TRUE because it uses the arguments outside aes() as aesthetics (here color and fill). Thus I must find a way using ggplot2::scale_discrete_manual() +# WARNING: do not use show.legend = TRUE because it uses the arguments outside aes() as aesthetics (here color and fill). Thus I must find a way using ggplot2::scale_discrete_manual() binwidth = (y.lim[2] - y.lim[1]) / dot.tidy.bin.nb -)) # geom_dotplot ggplot2 v3.3.0: I had to remove rev() in fill and color # very weird behavior of geom_dotplot ggplot2 v3.2.1, (1) because with aes group = (to avoid legend), the dot plotting is not good in term of coordinates, and (2) because data1 seems reorderer according to x = categ[1] before plotting. Thus, I have to use fill = dot.coord[rev(order(dot.coord[, categ[1]], decreasing = TRUE)), "dot.color"] to have the good corresponding colors # show.legend option do not remove the legend, only the aesthetic of the legend (dot, line, etc.) -# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "linetype", name = dot.legend.name, values = rep(1, length(categ.color)))) # values = rep("black", length(categ.color)) are the values of color (which is the border color of dots), and this modify the border color on the plot. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor +)) # geom_dotplot ggplot2 v3.3.0: I had to remove rev() in fill and color # very weird behavior of geom_dotplot ggplot2 v3.2.1, (1) because with aes group = (to avoid legend), the dot plotting is not good in term of coordinates, and (2) because data1 seems reorderer according to x = categ[1] before plotting. Thus, I have to use fill = dot.coord[rev(order(dot.coord[, categ[1]], decreasing = TRUE)), "dot.color"] to have the good corresponding colors # show.legend option do not remove the legend, only the aesthetic of the legend (dot, line, etc.) +# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "linetype", name = dot.legend.name, values = rep(1, length(categ.color)))) # values = rep("black", length(categ.color)) are the values of color (which is the border color of dots), and this modify the border color on the plot. WARNING: values = categ.color takes the numbers to make the colors if categ.color is a factor coord.names <- c(coord.names, "bad_remove") -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "alpha", name = dot.legend.name, values = rep(dot.alpha, length(dot.categ.class.order)), labels = dot.categ.class.order, guide = ggplot2::guide_legend(title = if(ini.dot.categ == categ[length(categ)]){dot.categ}else{ini.dot.categ}, override.aes = list(fill = levels(dot.coord$dot.color), color = if(is.null(dot.border.color)){levels(dot.coord$dot.color)}else{dot.border.color}, stroke = dot.border.size, alpha = dot.alpha)))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "alpha", name = dot.legend.name, values = rep(dot.alpha, length(dot.categ.class.order)), labels = dot.categ.class.order, guide = ggplot2::guide_legend(title = if(ini.dot.categ == categ[length(categ)]){dot.categ}else{ini.dot.categ}, override.aes = list(fill = levels(dot.coord$dot.color), color = if(is.null(dot.border.color)){levels(dot.coord$dot.color)}else{dot.border.color}, stroke = dot.border.size, alpha = dot.alpha)))) # values are the values of color (which is the border color in geom_box. WARNING: values = categ.color takes the numbers to make the colors if categ.color is a factor } # coordinates of tidy dots tempo.coord <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))$data # to have the tidy dot coordinates @@ -9300,18 +9304,18 @@ stop(tempo.cat) }else{ dot.coord.tidy1 <- tempo.coord[[which(sapply(tempo.coord, FUN = nrow) == nrow(data1))[1]]] # the second being a blank dotplot with wrong coordinates. Thus take the first whatever situation } -tempo.box.coord <- merge(box.coord, unique(dot.coord[, c("PANEL", "group", categ)]), by = c("PANEL", "group"), sort = FALSE) # do not add dot.categ and tidy_group_coord here because the coordinates are for stats. Add the categ in box.coord. BEWARE: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in box.coord. Thus, no need to consider fill column +tempo.box.coord <- merge(box.coord, unique(dot.coord[, c("PANEL", "group", categ)]), by = c("PANEL", "group"), sort = FALSE) # do not add dot.categ and tidy_group_coord here because the coordinates are for stats. Add the categ in box.coord. WARNING: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in box.coord. Thus, no need to consider fill column # below inactivated because not true when dealing with dot.categ different from categ if(nrow(tempo.box.coord) != nrow(box.coord)){ tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT tempo.box.coord DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n") stop(tempo.cat) } -dot.coord.tidy2 <- merge(dot.coord.tidy1, tempo.box.coord[c("fill", "PANEL", "group", "x", categ)], by = c("PANEL", "group"), sort = FALSE) # send the coord of the boxs into the coord data.frame of the dots (in the column x.y).BEWARE: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in tempo.box.coord. Thus, no need to consider fill colum # DANGER: from here the fill.y and x.y (from tempo.box.coord) are not good in dot.coord.tidy2. It is ok because Group1 Group2 from tempo.box.coord are ok with the group column from dot.coord.tidy1. This is due to the fact that dot.coord.tidy resulting from geom_dotplot does not make the same groups as the other functions +dot.coord.tidy2 <- merge(dot.coord.tidy1, tempo.box.coord[c("fill", "PANEL", "group", "x", categ)], by = c("PANEL", "group"), sort = FALSE) # send the coord of the boxes into the coord data.frame of the dots (in the column x.y).WARNING: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in tempo.box.coord. Thus, no need to consider fill colum # DANGER: from here the fill.y and x.y (from tempo.box.coord) are not good in dot.coord.tidy2. It is ok because Group1 Group2 from tempo.box.coord are ok with the group column from dot.coord.tidy1. This is due to the fact that dot.coord.tidy resulting from geom_dotplot does not make the same groups as the other functions if(nrow(dot.coord.tidy2) != nrow(dot.coord)){ tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT dot.coord.tidy2 DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n") stop(tempo.cat) } -# From here, check for dot.coord.tidy3 which wil be important for stat over the plot. BEWARE: dot.categ has nothing to do here for stat coordinates. Thus, not in tempo.data1 +# From here, check for dot.coord.tidy3 which wil be important for stat over the plot. WARNING: dot.categ has nothing to do here for stat coordinates. Thus, not in tempo.data1 if(length(categ) == 1){ tempo.data1 <- unique(data.frame(data1[categ[1]], group = as.integer(data1[, categ[1]]))) # categ[1] is factor names(tempo.data1)[names(tempo.data1) == categ[1]] <- paste0(categ[1], ".check") @@ -9334,7 +9338,7 @@ verif <- c(paste0(categ[1], ".check"), paste0(categ[2], ".check")) tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 7\n\n============\n\n") stop(tempo.cat) } -dot.coord.tidy3 <- merge(dot.coord.tidy2, tempo.data1, by = intersect("group", "group"), sort = FALSE) # send the factors of data1 into coord. BEWARE: I have tested intersect("group", "group") instead of by = "group". May be come back to by = "group" in case of error. But I did this because of an error in dot.coord.rd3 above +dot.coord.tidy3 <- merge(dot.coord.tidy2, tempo.data1, by = intersect("group", "group"), sort = FALSE) # send the factors of data1 into coord. WARNING: I have tested intersect("group", "group") instead of by = "group". May be come back to by = "group" in case of error. But I did this because of an error in dot.coord.rd3 above if(nrow(dot.coord.tidy3) != nrow(dot.coord) | ( ! fun_comp_2d(dot.coord.tidy3[categ], dot.coord.tidy3[verif])$identical.content)){ tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT dot.coord.tidy3 DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n") stop(tempo.cat) @@ -9348,8 +9352,8 @@ stop(tempo.cat) # boxplot display (if box.fill = FALSE, otherwise, already plotted above) if(box.fill == TRUE){ -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = box.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[length(categ)]])))}else{categ.color})) #, guide = ggplot2::guide_legend(override.aes = list(fill = levels(tempo.polygon$COLOR), color = "black")))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = box.legend.name, values = rep(hsv(0, 0, 0, alpha = box.alpha), length(unique(data1[, categ[length(categ)]]))))) # , guide = ggplot2::guide_legend(override.aes = list(color = "black", alpha = box.alpha)))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor # outline of the polygon in black but with alpha +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = box.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[length(categ)]])))}else{categ.color})) #, guide = ggplot2::guide_legend(override.aes = list(fill = levels(tempo.polygon$COLOR), color = "black")))) # values are the values of color (which is the border color in geom_box. WARNING: values = categ.color takes the numbers to make the colors if categ.color is a factor +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = box.legend.name, values = rep(hsv(0, 0, 0, alpha = box.alpha), length(unique(data1[, categ[length(categ)]]))))) # , guide = ggplot2::guide_legend(override.aes = list(color = "black", alpha = box.alpha)))) # values are the values of color (which is the border color in geom_box. WARNING: values = categ.color takes the numbers to make the colors if categ.color is a factor # outline of the polygon in black but with alpha }else{ # assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, color = categ[length(categ)], fill = categ[length(categ)]), position = ggplot2::position_dodge(width = NULL), width = box.width, size = box.line.size, notch = box.notch, alpha = box.alpha, coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf}, outlier.shape = if( ! is.null(dot.color)){NA}else{21}, outlier.color = if( ! is.null(dot.color)){NA}else{if(dot.border.size == 0){NA}else{dot.border.color}}, outlier.fill = if( ! is.null(dot.color)){NA}else{NULL}, outlier.size = if( ! is.null(dot.color)){NA}else{dot.size}, outlier.stroke = if( ! is.null(dot.color)){NA}else{dot.border.size}, outlier.alpha = if( ! is.null(dot.color)){NA}else{dot.alpha})) # the color, size, etc. of the outliers are dealt here. outlier.color = NA to do not plot outliers when dots are already plotted assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_path( @@ -9386,8 +9390,8 @@ linejoin = "round" )) coord.names <- c(coord.names, "mean") } -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = box.legend.name, values = rep(NA, length(unique(data1[, categ[length(categ)]]))))) #, guide = ggplot2::guide_legend(override.aes = list(color = categ.color)))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = box.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[length(categ)]])))}else{categ.color}, guide = ggplot2::guide_legend(override.aes = list(alpha = if(plot == TRUE & ((length(dev.list()) > 0 & names(dev.cur()) == "windows") | (length(dev.list()) == 0 & Sys.info()["sysname"] == "Windows"))){1}else{box.alpha})))) # , guide = ggplot2::guide_legend(override.aes = list(color = as.character(categ.color))))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = box.legend.name, values = rep(NA, length(unique(data1[, categ[length(categ)]]))))) #, guide = ggplot2::guide_legend(override.aes = list(color = categ.color)))) # values are the values of color (which is the border color in geom_box. WARNING: values = categ.color takes the numbers to make the colors if categ.color is a factor +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = box.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[length(categ)]])))}else{categ.color}, guide = ggplot2::guide_legend(override.aes = list(alpha = if(plot == TRUE & ((length(dev.list()) > 0 & names(dev.cur()) == "windows") | (length(dev.list()) == 0 & Sys.info()["sysname"] == "Windows"))){1}else{box.alpha})))) # , guide = ggplot2::guide_legend(override.aes = list(color = as.character(categ.color))))) # values are the values of color (which is the border color in geom_box. WARNING: values = categ.color takes the numbers to make the colors if categ.color is a factor if(plot == TRUE & ((length(dev.list()) > 0 & names(dev.cur()) == "windows") | (length(dev.list()) == 0 & Sys.info()["sysname"] == "Windows"))){ # if any Graph device already open and this device is "windows", or if no Graph device opened yet and we are on windows system -> prevention of alpha legend bug on windows using value 1 # to avoid a bug on windows: if alpha argument is different from 1 for lines (transparency), then lines are not correctly displayed in the legend when using the R GUI (bug https://github.com/tidyverse/ggplot2/issues/2452). No bug when using a pdf warn.count <- warn.count + 1 @@ -9404,7 +9408,7 @@ warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn # layer after dots but ok, behind dots on the plot if( ! is.null(stat.disp)){ if(stat.disp == "top"){ -assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "text", x = stat$X, y = y.lim[2], label = if(stat.disp.mean == FALSE){fun_round(stat$MEDIAN, 2)}else{fun_round(stat$MEAN, 2)}, size = stat.size, color = "black", hjust = ifelse(vertical == TRUE, 0.5, 1.1), vjust = ifelse(vertical == TRUE, 1.1, 0.5))) # beware: no need of order() for labels because box.coord$x set the order. For justification, see https://stackoverflow.com/questions/7263849/what-do-hjust-and-vjust-do-when-making-a-plot-using-ggplot +assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "text", x = stat$X, y = y.lim[2], label = if(stat.disp.mean == FALSE){fun_round(stat$MEDIAN, 2)}else{fun_round(stat$MEAN, 2)}, size = stat.size, color = "black", hjust = ifelse(vertical == TRUE, 0.5, 1.1), vjust = ifelse(vertical == TRUE, 1.1, 0.5))) # WARNING: no need of order() for labels because box.coord$x set the order. For justification, see https://stackoverflow.com/questions/7263849/what-do-hjust-and-vjust-do-when-making-a-plot-using-ggplot coord.names <- c(coord.names, "stat.display") }else if(stat.disp == "above"){ # stat coordinates @@ -9420,7 +9424,7 @@ names(stat.coord1)[names(stat.coord1) == "y"] <- "dot.min" stat.coord2 <- aggregate(x = tempo.stat.ini["y"], by = {x.env <- if(length(categ) == 1){list(tempo.stat.ini$group, tempo.stat.ini$x.y, tempo.stat.ini[, categ[1]])}else if(length(categ) == 2){list(tempo.stat.ini$group, tempo.stat.ini$x.y, tempo.stat.ini[, categ[1]], tempo.stat.ini[, categ[2]])} ; names(x.env) <- if(length(categ) == 1){c("group", "x.y", categ[1])}else if(length(categ) == 2){c("group", "x.y", categ[1], categ[2])} ; x.env}, FUN = max, na.rm = TRUE) names(stat.coord2) <- paste0(names(stat.coord2), "_from.dot.max") names(stat.coord2)[names(stat.coord2) == "y_from.dot.max"] <- "dot.max" -stat.coord3 <- cbind(box.coord[order(box.coord$x), ], stat.coord1[order(stat.coord1$x.y), ], stat.coord2[order(stat.coord2$x.y), ]) # should be ok to use box.coord$x and stat.coord$x.y to assemble the two data frames because x coordinates of the boxs. Thus, we cannot have identical values +stat.coord3 <- cbind(box.coord[order(box.coord$x), ], stat.coord1[order(stat.coord1$x.y), ], stat.coord2[order(stat.coord2$x.y), ]) # should be ok to use box.coord$x and stat.coord$x.y to assemble the two data frames because x coordinates of the boxes. Thus, we cannot have identical values if( ! all(identical(round(stat.coord3$x, 9), round(stat.coord3$x.y, 9)))){ tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nFUSION OF box.coord, stat.coord1 AND stat.coord2 ACCORDING TO box.coord$x, stat.coord1$x.y AND stat.coord2$x.y IS NOT CORRECT. CODE HAS TO BE MODIFIED\n\n================\n\n") stop(tempo.cat) @@ -9429,7 +9433,7 @@ text.coord <- stat.coord3[, c("x", "group", "dot.min", "dot.max")] names(text.coord)[names(text.coord) == "dot.min"] <- "text.min.pos" names(text.coord)[names(text.coord) == "dot.max"] <- "text.max.pos" box.coord <- box.coord[order(box.coord$x), ] -text.coord <- text.coord[order(text.coord$x), ] # to be sure to have the two objects in the same order for x. BEWARE: cannot add identical(as.integer(text.coord$group), as.integer(box.coord$group)) because with error, the correspondence between x and group is not the same +text.coord <- text.coord[order(text.coord$x), ] # to be sure to have the two objects in the same order for x. WARNING: cannot add identical(as.integer(text.coord$group), as.integer(box.coord$group)) because with error, the correspondence between x and group is not the same if( ! identical(text.coord$x, box.coord$x)){ tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\ntext.coord AND box.coord DO NOT HAVE THE SAME x COLUMN CONTENT\n\n============\n\n") stop(tempo.cat) @@ -9448,27 +9452,27 @@ tempo.log.low <- if(diff(y.lim) > 0){box.coord$MEAN < 0}else{box.coord$MEAN >= 0 if(any(tempo.log.high) == TRUE){ assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate( geom = "text", -x = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})$x[tempo.log.high], # get(if(is.null(dot.color)){"box.coord"}else{"text.coord"}) for text just above error boxs or dots +x = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})$x[tempo.log.high], # get(if(is.null(dot.color)){"box.coord"}else{"text.coord"}) for text just above error boxes or dots y = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})[tempo.log.high, if(is.null(dot.color)){"middle"}else{"text.max.pos"}], label = if(stat.disp.mean == FALSE){fun_round(box.coord$middle, 2)[tempo.log.high]}else{fun_round(box.coord$MEAN, 2)[tempo.log.high]}, size = stat.size, color = "black", hjust = ifelse(vertical == TRUE, 0.5, 0.5 - stat.dist), vjust = ifelse(vertical == TRUE, 0.5 - stat.dist, 0.5) -)) # beware: no need of order() for labels because box.coord$x set the order +)) # WARNING: no need of order() for labels because box.coord$x set the order coord.names <- c(coord.names, "stat.display.positive") } if(any(tempo.log.low) == TRUE){ assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate( geom = "text", -x = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})$x[tempo.log.low], # get(if(is.null(dot.color)){"box.coord"}else{"text.coord"}) for text just above error boxs or dots +x = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})$x[tempo.log.low], # get(if(is.null(dot.color)){"box.coord"}else{"text.coord"}) for text just above error boxes or dots y = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})[tempo.log.low, if(is.null(dot.color)){"middle"}else{"text.min.pos"}], label = if(stat.disp.mean == FALSE){fun_round(box.coord$middle, 2)[tempo.log.low]}else{fun_round(box.coord$MEAN, 2)[tempo.log.low]}, size = stat.size, color = "black", hjust = ifelse(vertical == TRUE, 0.5, 0.5 + stat.dist), vjust = ifelse(vertical == TRUE, 0.5 + stat.dist, 0.5) -)) # beware: no need of order() for labels because box.coord$x set the order +)) # WARNING: no need of order() for labels because box.coord$x set the order coord.names <- c(coord.names, "stat.display.negative") } # end stat display @@ -9513,7 +9517,7 @@ y.second.tick.values <- tempo$values y.second.tick.pos <- tempo$coordinates # if(vertical == TRUE){ # do not remove in case the bug is fixed assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", y = y.second.tick.pos, yend = y.second.tick.pos, x = tempo.coord$x.range[1], xend = tempo.coord$x.range[1] + diff(tempo.coord$x.range) / 80)) -# }else{ # not working because of the ggplot2 bug +# }else{ # not working because of the ggplot2 bug # assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", x = y.second.tick.pos, xend = y.second.tick.pos, y = tempo.coord$y.range[1], yend = tempo.coord$y.range[1] + diff(tempo.coord$y.range) / 80)) # } coord.names <- c(coord.names, "y.second.tick.positions") @@ -9536,7 +9540,7 @@ coord.names <- c(coord.names, "y.second.tick.positions") assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_y_continuous( breaks = tempo.scale, minor_breaks = y.second.tick.pos, -labels = if(y.log == "log10"){scales::trans_format("identity", scales::math_format(10^.x))}else if(y.log == "log2"){scales::trans_format("identity", scales::math_format(2^.x))}else if(y.log == "no"){ggplot2::waiver()}else{tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 10\n\n============\n\n") ; stop(tempo.cat)}, +labels = if(y.log == "log10"){scales::trans_format("identity", scales::math_format(10^.x))}else if(y.log == "log2"){scales::trans_format("identity", scales::math_format(2^.x))}else if(y.log == "no"){ggplot2::waiver()}else{tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 10\n\n============\n\n") ; stop(tempo.cat)}, expand = c(0, 0), # remove space after after axis limits limits = sort(y.lim), # NA indicate that limits must correspond to data limits but ylim() already used oob = scales::rescale_none, @@ -9651,6 +9655,9 @@ return(output) # this plots the graph if return.ggplot is TRUE and if no assignm + + + fun_gg_scatter <- function( data1, x, diff --git a/fun_gg_boxplot.docx b/fun_gg_boxplot.docx index ecd8b5a935e5a6ca6f324eca773ffd6135d90035..440fdacfe95813c01f8103801da877f2a5c4b3ee 100644 GIT binary patch delta 98795 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 delta 98572 zcmV)2K+M0vfCr-g2C$n6e+mVj&~a-401bK;01*HH0C#V4WG`fIV|8t1ZgehqZEWm) zYjfL1w(a*@b^im3&Yhy}NDv=-a*mkNGn2YAPR4dlK1|KHK(a|90s#&HnpV!AziaPq zfB*$Rl<de2vOgrY`2f-A-TS%r+W+<a=b2}H5@F;9{zap0w;Go4e}}=y^(PmNUq0L& zoHeW{cKng!1-`gwJcy|AegA*|um4*1M!|3~6Mk&r5`NTM&W9I`X&ldchlkN{DrQb( z&)i`cM8P<=hr#SH7?0hdI9vwd=&;jjxA<@KFc^v`!tY%>{wF7DsLRbBUoDsmAHOvY z!kH6Cb`VYuXHIy(f0!TO>T@S{2d?MF54d*gB)Lp*(O86jPu<W#dPDS;p1dLTNAivE z(JBglSAO$GJpum3!%%p*hro}f?tHb3mtGA^oF=#QscI3QW?u5S<-C3L==ahkZ?XqB zp|iwRtS<QIas>}#B)>HC<a40?UG3`n72B<<#i$*jOQiR(f5|Q6e>1t0ndAEDWnT7Z zvJV$0;!EWFhcH;o)7zQ5Uv{-0{rmJ<bTFTBXRQ-HdD*2!&$_^)qx*j9%tgbR4SPRM z{2+7&9`0z_KC(z68+|B?K`?rtKj+r62W2yQchP9II(O~Uqjn>C=|+s5g%>}5=VyAU zb=GO!-15cde?NzGE!Q96tDYF+E5|3Nbe*Z=Pgr%)zYpm{zYX#7C&#;J&<Evfq5OV$ z7x;06x1DI{Vmq#bMd*sqdMlQEtxG?8{OS;oD*HkHk%9dGb;N&0zb8N0K9fHf{eDfq z!?%&V=HXV8*MxuY!xeq>5Ko704u7ge4uasGwA}mHe+grJ-W}m#(Czuo3=jF^55bi) zyjS0yn@3DL{j5h!kNVMLQ^JPF%)*+H%=|mMESX{Qbbf}(Y_*QBkFJid_<ZVrzLveX zKVJABCzFqK)?#_`NDNrB)MEjI;Pc!I;`Ig8dt1o;>qT>C2<0{pMI^#cqS3eh<i&qE zu&`xAe{!*!xi$aMC%E129&M*_sreBumX(ncJMDeTh{(zieu4k7l_K(B#3Sn`?XGzA zhfXXeIaN_77ob=HzCgI83wL|mx;*QWsrzEDw{|uYPQ+T|RddZJMcZDN?PPOvJI;>p zw-1VwJ%B@AEZIZPi74?mLX>`Cz5V5He>1Y)e|vuNA$iW^IICT+w^)!8M|#r>o+B2W z)1$M~%OY);e}`jy^%5rv<Ri;wpK7P=kT%;a{Zy}T*!ILk_#>NgW7UeUZrO@reW;Y+ z`cgGf=T8V(sg^f7-RSf_l3VuJ^*o69-R0lj-x{GXLcv0@bVu<NQqi)HjZ7GsV42{2 ze=*C%OA>#%P$+SPzog_-J9lu~0s=A~p6d%ca(@?)i**Mn*<`9)owtt9PqnFAB|AYi zsg`|uTz2O<nbpMK%iMdhyK3~c(buf6{U9Ea4L6>h#D|y^4ry%1n@=4`g|XqlOFbJ= zlxSc4xfMx0l8Bjbd<evccfXkU&&WhWf5v}PH@X+0eNPG43#$>uqlR%TjKatXN17xs zl3^sHKMJS;K~{�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%0AY+#ALir2%Cn*4!5<b3EqH}E@o->t z%^r7TrN%cbS{6h={82aw0WuW@+3-dxO8u{Mc|b)&a6T~@uNCz#l_*Gxa9%}2wv_l2 zmoH5;#8)BB_9YBbZhv)%lo64sXH-!UZsi_mxLlV2l}zvPOs}FMg-n+(5znZo$O`?` z0_nagKRdpHT}4G!yQ*SU)H;boMSPf`A|qSt_CRDr-Ud>Y|IID`8$`sy9v!J`gLe07 zjRLzGH#)-=a=_Q{Z%Mo$d2~#1Nq*fk(nrS>@$)0TSafWnMt|gvki|S_xuaxC1o9IB z)PEZpB~uVPH;ApGWE%~f6?s(<6sv|tUq(3nBw>t)3WCZX1f3v3$pfJU_Yf;}9$i1x z-n16+jV7=30SqPEd3kS(M`+J_ca_;TsJ4FDY@b7QG`}h_Xk@}lptrC~F=$GnO;AI_ z^~@^Q+61joGk;r_Xk!W8$2i>?mGmvxAT{$fYR1LJE3i$BKq$SJm)@hRBOtjO_P4<( zyB+c$m^i1|V_4WYt(bP?sDM}9Y`I0GAnDu3hL`FOa*V?WvA@ytObBfr`{M^^c!IYw z|EWmABPwc{8;|%}0qTNyV>2@bR-%codb@qy#x`~6&3}cdU|pQRso_i<imbTKt^%6b zM2A_O>m8l;qhq&we6u|q6_F-LaM*WGZaQtirU*fs9r$N$=z;%o-8v_o>q$Gjf6ooM zfY%lKuDD-EAu0UxQ=Oc_j_^zU{LaQ-`=xz-`bq!X>|CAk&xh$V+LsRx4mU#6K5fvC z?iro7Ie)x<Ar)x9uH4zd`Ocf2Cb?)slRv%+e`abEjud?Cp9VjQz6f{&?SJ~GrV|E& zApxiVOni)3G#zw%<D0r_!GH0%*DW96bK?bWfCPH<yQk+tL)qTI7{Zj;V>}vYP>vz7 z`V&QItvmD7l!5#(*QPI3m7*P8M5h*5UoG;OxPMDPf|QbS$MRDRGLTnoOU(^AEAq0H zFl8AwyVQDvH^j7i;hbU7waCqPjd!&s7B!Dts~6;wF6#AW<9&EBGH#f^{R@s22`*9a z=%=79c%By+fcxmd_=bW7J@czgG}pn)$;a=^{J0qt{}=BM8m9+2&4gLzFel&5k@d*A zD1Q;38Tl@F^jOX<3vm`~nUa>(PGFD?IJ+EqVm(M+U$o1tN$8j<W?4iKbwrco!<U(# z46#1ncm+gF6@8zg>!K0_{`NFxLx$ar8Hvnmr2WIj{%$QN4ZAGmIROU!Dj$EwxAZR1 zo6^4X_|yDU_;Exy9hHWky_qC!D*tnL=YRgMySu+ZG&e?tL@YO_DRN;qanPTLonZG_ z_sQ&jgM|i=hrq1{7~yrjk!APc4`bw!hgb49PKwf)LGC3mb+L?XRKc+Pq9qB5D30j) zs!l=aj8`(1dD*F>(rF+R#IUdH^X*Ls5>L%`hy4Aj^O4+D{&rV6!qk#q`ZTt!e}9e5 zDr%;gL{Ew|2#;PC)?4zorvN);mfl=cxOf2-8YP<X2&EMW4TCi`$aY;cKi%jOkXePa z(<|vLeirh;e{qmD0iR}#>N(@H#;fVV74b?>vjNDq+V2ksj@S6lz<hS>9mKguN1Fz7 zIcZS{cEhF)hc=NfrQ(RL5bTt3%71k(Bbq8K>Cu}vS9&|#{6WH+E9yp10o=3eR;LLy zM|YJ#B^@2zRS0~`U4`l<`XhXP(S{qb97%7UeI%EcUp`%T8sYCyu-H1Dp24~LDZ>gD zgF=CXVhZm^!Qv^+Glv^9f-?n+rzKukyJvj!@gRQ#U@-;4KW`ciP7e1@gMTF!wWSph z`}>Xay?jzUtBhtRoq-ES=VG}so#NyXx)j|fvxh-;3F0?p4%0Dq&7aiSVt2|#snzn& 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 U7@()EDcHRLGDwGxf9nMKKW0%XB>(^b -- GitLab