From 0aba76a4cafa10f1237141c9bd9a1bd47b0be882 Mon Sep 17 00:00:00 2001
From: gmillot <gael.millot@pasteur.fr>
Date: Fri, 31 Jul 2020 15:36:39 +0200
Subject: [PATCH] fun_gg_boxplot tempo, legend solved

---
 boxplot_examples.R        |    2 +-
 cute_little_R_functions.R | 3225 -------------------------------------
 fun_gg_boxplot.docx       |  Bin 102376 -> 105493 bytes
 scatter.docx              |  Bin 104742 -> 104718 bytes
 4 files changed, 1 insertion(+), 3226 deletions(-)

diff --git a/boxplot_examples.R b/boxplot_examples.R
index bb1ad6d..187f27d 100644
--- a/boxplot_examples.R
+++ b/boxplot_examples.R
@@ -166,5 +166,5 @@ 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", add = "+ggplot2::facet_wrap(facets = 'Group2')")
 
diff --git a/cute_little_R_functions.R b/cute_little_R_functions.R
index c51c250..024bf2f 100644
--- a/cute_little_R_functions.R
+++ b/cute_little_R_functions.R
@@ -7752,3228 +7752,3 @@ return(output) # do not use cat() because the idea is to reuse the message
 
 
 
-# add legend width from scatter (empty legend space notably). Ok with facet?
-# transfert the 2nd tick part to scatter
-# improve grid -> put secondary grids. Then trasfert to scatter
-# replace .categ.legend.name by box.legend.name
-# replace dot.categ.legend.name by dot.legend.name
-# facet in bold and with variable name https://github.com/rstudio/cheatsheets/blob/master/data-visualization-2.1.pdf
-# still errors to solve for these examples:
-# obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200))
-# a <- fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "same", dot.tidy = TRUE, dot.tidy.bin.nb = 100, return = TRUE, dot.categ = "Group2", dot.categ.class.order=c("B", "D", "E", "A", "C")) # error with dot.categ.class.order
-
-# obs1 <- data.frame(Time = 1:1000, Group1 = rep(c("G", "H"), times = 500), Group2 = rep(LETTERS[1:5], each = 200))
-# a <- fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = "same", dot.tidy = TRUE, dot.tidy.bin.nb = 100, return = TRUE, dot.categ = "Group2", dot.categ.class.order=c("A", "B", "C", "D", "E")) # error with dot.categ.class.order
-
-# set.seed(1)
-# obs1 <- data.frame(Time = c(sort(rnorm(10)), sort(rnorm(10)) + 2), Group1 = rep(c("G", "H"), each = 10), Group2 = rep(c("A", "B"), time = 10), Group3 = rep(c("I", "J", "K", "L"), time = 5))
-# set.seed(NULL)
-# obs1
-# obs1$Time[1:10] <- NA ; 
-# a <- fun_gg_boxplot(data1 = obs1, y = "Time", categ = c("Group1", "Group2"), dot.color = 1:4, dot.tidy = FALSE, dot.tidy.bin.nb = 100, return = TRUE, dot.categ = "Group3") # error with dot.categ.class.order
-# 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")), categ.legend.name = "", categ.color = c("red", "blue"), box.width = 0.25, box.whisker.width = 0.8, dot.color = "grey", dot.tidy = FALSE, dot.tidy.bin.nb = 30, dot.jitter = 1, dot.size = 4, dot.border.size = 0, dot.alpha = 1, y.lim = c(0, 25), 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, stat.disp = "above", stat.size = 4, stat.dist = 2, x.lab = "GROUP", y.lab = "VALUE", vertical = FALSE, text.size = 12, title = "", title.text.size = 8, text.angle = 45, article = TRUE, grid = TRUE, return = TRUE, plot = TRUE, add = NULL, warn.print = TRUE, lib.path = NULL)
-# add warning message when Nan or Inf values
-# double legends with suppressMessages(suppressWarnings(gridExtra::grid.arrange(fin.plot, legend.final, ncol=2, widths=c(1, legend.width))))
-
-
-
-fun_gg_boxplot <- function(
-data1, 
-y, 
-categ, 
-categ.class.order = NULL, 
-categ.legend.name = NULL, 
-categ.color = NULL, 
-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.categ.legend.name = NULL, 
-dot.tidy = FALSE, 
-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.show = TRUE, 
-legend.width = 0.5, 
-article = TRUE, 
-grid = FALSE, 
-return = FALSE, 
-return.ggplot = FALSE,
-plot = TRUE, 
-add = NULL, 
-warn.print = FALSE, 
-lib.path = NULL
-){
-# AIM
-# ggplot2 boxplot with the possibility to add background or foreground dots
-# 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
-# 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)
-# The dot.alpha argument can alter the display of the color boxes when using pdf output
-# 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.legend.name: character string of the legend title for categ2. If categ.legend.name == NULL, then categ.legend.name <- categ1 if only categ1 is present, and categ.legend.name <- categ2 if categ1 and categ2 are present. Write "" if no legend required
-# 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.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 size 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
-# 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.
-# 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.categ.legend.name: optional character string of the legend title for categ3. If dot.categ.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
-# dot.size: numeric value of dot size (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 size (in mm). Write zero for no dot border. If dot.tidy is TRUE, value 0 remove the border. Another one 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
-# 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.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.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 size (in points). Increase the value to increase text size
-# 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 size of the (1) axis numbers and axis legends, (2) texts in the graphic legend, (3) stats above boxs (in points)
-# 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.
-# title: character string of the graph title
-# title.text.size: numeric value of the title size (in points)
-# 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
-# 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()"
-# 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
-# lib.path: character string indicating the absolute path of the required packages (see below). if NULL, the function will use the R library default folders
-# REQUIRED PACKAGES
-# ggplot2
-# scales
-# REQUIRED FUNCTIONS FROM CUTE_LITTLE_R_FUNCTION
-# fun_check()
-# fun_comp_1d()
-# fun_comp_2d()
-# fun_gg_just()
-# fun_gg_palette()
-# fun_inter_ticks()
-# fun_name_change()
-# fun_pack()
-# fun_round()
-# fun_scale()
-# RETURN
-# a boxplot if plot argument is TRUE
-# a list of the graph info if return argument is TRUE:
-# $data: the initial data with graphic information added. WARNING: if the y.log argument is not "no", y values are log2 or log10 converted in $data
-# $stat: the graphic statistics
-# $removed.row.nb: which rows have been removed due to NA detection in y and categ columns (NULL if no row removed)
-# $removed.rows: removed rows containing NA (NULL if no row removed)
-# $plot: the graphic box and dot coordinates
-# $dots: dot coordinates
-# $main.box: coordinates of boxes
-# $median: median coordinates
-# $sup.whisker: coordinates of top whiskers (y for base and y.end for extremities)
-# $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)
-# $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
-# $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
-# 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")), categ.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.categ.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 ; categ.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.categ.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")); categ.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.categ.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")); categ.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.categ.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]], "()")
-# end function name
-# required function checking
-req.function <- c(
-"fun_comp_2d", 
-"fun_gg_just", 
-"fun_gg_palette", 
-"fun_name_change", 
-"fun_pack", 
-"fun_check", 
-"fun_round", 
-"fun_scale",
-"fun_inter_ticks"
-)
-for(i1 in req.function){
-if(length(find(i1, mode = "function")) == 0){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, "\nREQUIRED ", i1, "() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-stop(tempo.cat)
-}
-}
-# end required function checking
-# reserved words to avoid bugs (names of dataframe columns used in this function)
-reserved.words <- c("categ.check", "categ.color", "dot.color", "dot.categ", "dot.max", "dot.min", "group", "PANEL", "group.check", "MEAN", "tempo.categ1", "tempo.categ2", "text.max.pos", "text.min.pos", "x", "x.y", "y", "y.check", "y_from.dot.max", "ymax", "tidy_group")
-# end reserved words to avoid bugs (used in this function)
-# argument primary checking
-arg.check <- NULL #
-text.check <- NULL #
-checked.arg.names <- NULL # for function debbuging: used by r_debugging_tools
-ee <- expression(arg.check <- c(arg.check, tempo$problem) , text.check <- c(text.check, tempo$text) , checked.arg.names <- c(checked.arg.names, tempo$fun.name))
-tempo <- fun_check(data = data1, class = "data.frame", na.contain = TRUE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = y, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = categ, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
-if( ! is.null(categ.class.order)){
-tempo <- fun_check(data = categ.class.order, class = "list", fun.name = function.name) ; eval(ee)
-}
-if( ! is.null(categ.legend.name)){
-tempo <- fun_check(data = categ.legend.name, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
-}
-if( ! is.null(categ.color)){
-tempo1 <- fun_check(data = categ.color, class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = categ.color, class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.check.color <- fun_check(data = categ.color, class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem
-if(tempo.check.color == TRUE){
-tempo.cat <- paste0("categ.color ARGUMENT MUST BE A FACTOR OR CHARACTER VECTOR OR INTEGER VECTOR") # integer possible because dealt above
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-}
-tempo <- fun_check(data = box.fill, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = box.width, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = box.space, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = box.line.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = box.notch, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = box.alpha, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = box.mean, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = box.whisker.kind, options = c("no", "std", "max"), length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = box.whisker.width, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(dot.color)){
-tempo1 <- fun_check(data = dot.color, class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = dot.color, class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.check.color <- fun_check(data = dot.color, class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem
-if(tempo.check.color == TRUE){
-tempo.cat <- paste0("dot.color MUST BE A FACTOR OR CHARACTER VECTOR OR INTEGER VECTOR") # integer possible because dealt above
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-}
-if( ! is.null(dot.categ)){
-tempo <- fun_check(data = dot.categ, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-if( ! is.null(dot.categ.class.order)){
-tempo <- fun_check(data = dot.categ.class.order, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
-}
-if( ! is.null(dot.categ.legend.name)){
-tempo <- fun_check(data = dot.categ.legend.name, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-tempo <- fun_check(data = dot.tidy, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = dot.tidy.bin.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = dot.jitter, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = dot.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = dot.alpha, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = dot.border.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-if( ! is.null(dot.border.color)){
-tempo1 <- fun_check(data = dot.border.color, class = "vector", mode = "character", length = 1, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = dot.border.color, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-# integer colors into gg_palette
-tempo.cat <- paste0("dot.border.color MUST BE A SINGLE CHARACTER STRING OF COLOR OR A SINGLE INTEGER VALUE") # integer possible because dealt above
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(x.lab)){
-if(all(class(x.lab) %in% "expression")){ # to deal with math symbols
-tempo <- fun_check(data = x.lab, class = "expression", length = 1, fun.name = function.name) ; eval(ee)
-}else{
-tempo <- fun_check(data = x.lab, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-}
-if( ! is.null(y.lab)){
-if(all(class(y.lab) %in% "expression")){ # to deal with math symbols
-tempo <- fun_check(data = y.lab, class = "expression", length = 1, fun.name = function.name) ; eval(ee)
-}else{
-tempo <- fun_check(data = y.lab, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-}
-if( ! is.null(y.lim)){
-tempo <- fun_check(data = y.lim, class = "vector", mode = "numeric", length = 2, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & any(y.lim %in% c(Inf, -Inf))){
-tempo.cat <- paste0("y.lim ARGUMENT CANNOT CONTAIN -Inf OR Inf VALUES")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-tempo <- fun_check(data = y.log, options = c("no", "log2", "log10"), length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(y.tick.nb)){
-tempo <- fun_check(data = y.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & y.tick.nb < 0){
-tempo.cat <- paste0("y.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(y.second.tick.nb)){
-tempo <- fun_check(data = y.second.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & y.second.tick.nb <= 0){
-tempo.cat <- paste0("y.second.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-tempo <- fun_check(data = y.include.zero, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = y.top.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = y.bottom.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(stat.disp)){
-tempo <- fun_check(data = stat.disp, options = c("top", "above"), length = 1, fun.name = function.name) ; eval(ee)
-}
-tempo <- fun_check(data = stat.disp.mean, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = stat.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = stat.dist, class = "vector", mode = "numeric", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = vertical, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = text.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = text.angle, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, neg.values = TRUE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = title, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = title.text.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-if( ! is.null(legend.width)){
-tempo <- fun_check(data = legend.width, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-}
-tempo <- fun_check(data = article, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = grid, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = return, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = return.ggplot, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = plot, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(add)){
-tempo <- fun_check(data = add, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & ! grepl(pattern = "^\\s*\\+", add)){ # check that the add string start by +
-tempo.cat <- paste0("add ARGUMENT MUST START WITH \"+\": ", paste(unique(add), collapse = " "))
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}else if(tempo$problem == FALSE & ! grepl(pattern = "(ggplot2|lemon)\\s*::", add)){ #
-tempo.cat <- paste0("FOR EASIER FUNCTION DETECTION, add ARGUMENT MUST CONTAIN \"ggplot2::\" OR \"lemon::\" IN FRONT OF EACH GGPLOT2 FUNCTION: ", paste(unique(add), collapse = " "))
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}else if(tempo$problem == FALSE & ! grepl(pattern = ")\\s*$", add)){ # check that the add string  finished by )
-tempo.cat <- paste0("add ARGUMENT MUST FINISH BY \")\": ", paste(unique(add), collapse = " "))
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-tempo <- fun_check(data = warn.print, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(lib.path)){
-tempo <- fun_check(data = lib.path, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE){
-if( ! all(dir.exists(lib.path))){ # separation to avoid the problem of tempo$problem == FALSE and lib.path == NA
-tempo.cat <- paste0("DIRECTORY PATH INDICATED IN THE lib.path ARGUMENT DOES NOT EXISTS:\n", paste(lib.path, collapse = "\n"))
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-}
-if(any(arg.check) == TRUE){
-stop(paste0("\n\n================\n\nERROR IN ", function.name, "\n", paste(text.check[arg.check], collapse = "\n"), "\n\n================\n\n"), call. = FALSE) #
-}
-# source("C:/Users/Gael/Documents/Git_versions_to_use/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_check_dev)) # activate this line and use the function (with no arguments left as NULL) to check arguments status and if they have been checked using fun_check()
-# end argument primary checking
-# second round of checking and data preparation
-warn <- NULL
-warn.count <- 0
-if(any(duplicated(names(data1)))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nDUPLICATED COLUMN NAMES OF data1 ARGUMENT NOT ALLOWED:\n", paste(names(data1)[duplicated(names(data1))], collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-if( ! (y %in% names(data1))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ny ARGUMENT MUST BE A COLUMN NAME OF data1")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else{
-tempo <- fun_check(data = data1[, y], data.name = "y COLUMN OF data1", class = "vector", mode = "numeric", na.contain = TRUE, fun.name = function.name) ; eval(ee)
-if(tempo$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ny ARGUMENT MUST BE NUMERIC COLUMN IN data1")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-if(length(categ) > 2){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg ARGUMENT CANNOT HAVE MORE THAN 2 COLUMN NAMES OF data1")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if( ! all(categ %in% names(data1))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg ARGUMENT MUST BE COLUMN NAMES OF data1. HERE IT IS:\n", paste(categ, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-# reserved word checking
-if(any(names(data1) %in% reserved.words)){
-if(any(duplicated(names(data1)))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nDUPLICATED COLUMN NAMES OF data1 ARGUMENT NOT ALLOWED:\n", paste(names(data1)[duplicated(names(data1))], collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-if( ! is.null(dot.categ)){
-if(dot.categ %in% categ){
-reserved.words <- c(reserved.words, paste0(dot.categ, "_DOT")) # paste0(dot.categ, "_DOT") is added to the reserved words because in such situation, a new column will be added to data1 that is named paste0(dot.categ, "_DOT")
-}
-}
-tempo.output <- fun_name_change(names(data1), reserved.words)
-for(i2 in 1:length(tempo.output$ini)){ # a loop to be sure to take the good ones
-names(data1)[names(data1) == tempo.output$ini[i2]] <- tempo.output$post[i2]
-if(any(y == tempo.output$ini[i2])){
-y[y == tempo.output$ini[i2]] <- tempo.output$post[i2]
-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
-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
-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]
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN dot.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 dot.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 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 = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-if( ! (is.null(add) | is.null(tempo.output$ini))){
-if(grepl(x = add, pattern = paste(tempo.output$ini, collapse = "|"))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nDETECTION OF COLUMN NAMES OF data1 IN THE add ARGUMENT STRING, THAT CORRESPOND TO RESERVED STRINGS FOR ", function.name, "\nCOLUMN NAMES HAVE TO BE CHANGED\nTHE PROBLEMATIC COLUMN NAMES ARE SOME OF THESE NAMES:\n", paste(tempo.output$ini, collapse = " "), "\nIN THE DATA FRAME OF data1 AND IN THE STRING OF add ARGUMENT, TRY TO REPLACE NAMES BY:\n", paste(tempo.output$post, collapse = " "), "\n\nFOR INFORMATION, THE RESERVED WORDS ARE:\n", paste(reserved.words, collapse = "\n"))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-}
-# end reserved word checking
-# management of add containing facet
-facet.categ <- NULL
-if( ! is.null(add)){
-facet.check <- TRUE
-tempo <- unlist(strsplit(x = add, split = "\\s*\\+\\s*(ggplot2|lemon)\\s*::\\s*")) #
-tempo <- sub(x = tempo, pattern = "^facet_wrap", replacement = "ggplot2::facet_wrap")
-tempo <- sub(x = tempo, pattern = "^facet_grid", replacement = "ggplot2::facet_grid")
-tempo <- sub(x = tempo, pattern = "^facet_rep", replacement = "lemon::facet_rep")
-if(any(grepl(x = tempo, pattern = "ggplot2::facet_wrap|lemon::facet_rep_wrap"))){
-tempo1 <- suppressWarnings(eval(parse(text = tempo[grepl(x = tempo, pattern = "ggplot2::facet_wrap|lemon::facet_rep_wrap")])))
-facet.categ <- names(tempo1$params$facets)
-tempo.text <- "facet_wrap OR facet_rep_wrap"
-facet.check <- FALSE
-}else if(grepl(x = add, pattern = "ggplot2::facet_grid|lemon::facet_rep_grid")){
-tempo1 <- suppressWarnings(eval(parse(text = tempo[grepl(x = tempo, pattern = "ggplot2::facet_grid|lemon::facet_rep_grid")])))
-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
-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)
-}
-}
-# end management of add containing facet
-# conversion of categ columns in data1 into factors
-for(i1 in 1:length(categ)){
-tempo1 <- fun_check(data = data1[, categ[i1]], data.name = paste0("categ NUMBER ", i1, " OF data1"), class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = data1[, categ[i1]], data.name = paste0("categ NUMBER ", i1, " OF data1"), class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, "\n", paste0("categ NUMBER ", i1, " OF data1"), " MUST BE A FACTOR OR CHARACTER VECTOR")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if(tempo1$problem == FALSE){ # character vector
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN categ NUMBER ", i1, " IN data1, THE CHARACTER COLUMN HAS BEEN CONVERTED TO FACTOR, WITH LEVELS ACCORDING TO THE ALPHABETICAL ORDER")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-data1[, categ[i1]] <- factor(data1[, categ[i1]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
-}
-# OK: all the categ columns of data1 are factors from here
-# end conversion of categ columns in data1 into factors
-if( ! is.null(categ.class.order)){
-if(length(categ.class.order) != length(categ)){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg.class.order ARGUMENT MUST BE A LIST OF LENGTH EQUAL TO LENGTH OF categ\nHERE IT IS LENGTH: ", length(categ.class.order), " VERSUS ", length(categ))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else{
-for(i3 in 1:length(categ.class.order)){
-if(is.null(categ.class.order[[i3]])){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE categ.class.order COMPARTMENT ", i3, " IS NULL. ALPHABETICAL ORDER WILL BE APPLIED")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-data1[, categ[i3]] <- factor(as.character(data1[, categ[i3]])) # if already a factor, change nothing, if characters, levels according to alphabetical order
-categ.class.order[[i3]] <- levels(data1[, categ[i3]]) # character vector that will be used later
-}else{
-tempo <- fun_check(data = categ.class.order[[i3]], data.name = paste0("COMPARTMENT ", i3 , " OF categ.class.order ARGUMENT"), class = "vector", mode = "character", length = length(levels(data1[, categ[i3]])), fun.name = function.name) ; eval(ee) # length(data1[, categ[i1]) -> if data1[, categ[i1] was initially character vector, then conversion as factor after the NA removal, thus class number ok. If data1[, categ[i1] was initially factor, no modification after the NA removal, thus class number ok
-}
-if(any(duplicated(categ.class.order[[i3]]))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nCOMPARTMENT ", i3, " OF categ.class.order ARGUMENT CANNOT HAVE DUPLICATED CLASSES: ", paste(categ.class.order[[i3]], collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if( ! (all(categ.class.order[[i3]] %in% unique(data1[, categ[i3]])) & all(unique(data1[, categ[i3]]) %in% categ.class.order[[i3]]))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nCOMPARTMENT ", i3, " OF categ.class.order ARGUMENT MUST BE CLASSES OF ELEMENT ", i3, " OF categ ARGUMENT\nHERE IT IS:\n", paste(categ.class.order[[i3]], collapse = " "), "\nFOR COMPARTMENT ", i3, " OF categ.class.order AND IT IS:\n", paste(unique(data1[, categ[i3]]), collapse = " "), "\nFOR COLUMN ", categ[i3], " OF data1")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else{
-data1[, categ[i3]] <- factor(data1[, categ[i3]], levels = categ.class.order[[i3]]) # reorder the factor
-
-}
-names(categ.class.order)[i3] <- categ[i3]
-}
-}
-}else{
-categ.class.order <- vector("list", length = length(categ))
-tempo.categ.class.order <- NULL
-for(i2 in 1:length(categ.class.order)){
-categ.class.order[[i2]] <- levels(data1[, categ[i2]])
-names(categ.class.order)[i2] <- categ[i2]
-tempo.categ.class.order <- c(tempo.categ.class.order, ifelse(i2 != 1, "\n", ""), categ.class.order[[i2]])
-}
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE categ.class.order SETTING IS NULL. ALPHABETICAL ORDER WILL BE APPLIED FOR BOX ORDERING:\n", paste(tempo.categ.class.order, collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# categ.class.order not NULL anymore (list)
-if(is.null(categ.legend.name)){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE categ.legend.name SETTING IS NULL. NAMES OF categ WILL BE USED: ", paste(categ, collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-categ.legend.name <- categ[length(categ)] # if only categ1, then legend name of categ1, if length(categ) == 2, then legend name of categ2
-}
-# categ.legend.name not NULL anymore (character string)
-# management of categ.color
-if( ! is.null(categ.color)){
-# check the nature of color
-# integer colors into gg_palette
-tempo.check.color <- fun_check(data = categ.color, class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem
-if(tempo.check.color == FALSE){
-# convert integers into colors
-categ.color <- fun_gg_palette(max(categ.color, na.rm = TRUE))[categ.color]
-}
-# end integer colors into gg_palette
-if( ! (all(categ.color %in% colors() | grepl(pattern = "^#", categ.color)))){ # check that all strings of low.color start by #
-tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg.color ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # AND/OR COLOR NAMES GIVEN BY colors(): ", paste(unique(categ.color), collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-if(any(is.na(categ.color))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") categ.color ARGUMENT CONTAINS NA")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end check the nature of color
-# check the length of color
-categ.len <- length(categ) # if only categ1, then colors for classes of categ1, if length(categ) == 2, then colors for classes of categ2
-if(length(categ.color) == length(levels(data1[, categ[categ.len]]))){ # here length(categ.color) is equal to the different number of categ
-# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
-data1 <- data.frame(data1, categ.color = data1[, categ[categ.len]])
-data1$categ.color <- factor(data1$categ.color, labels = categ.color)
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN ", categ[categ.len], " OF categ ARGUMENT, THE FOLLOWING COLORS:\n", paste(categ.color, collapse = " "), "\nHAVE BEEN ATTRIBUTED TO THESE CLASSES:\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else if(length(categ.color) == length(data1[, categ[categ.len]])){# here length(categ.color) is equal to nrow(data1) -> Modif to have length(categ.color) equal to the different number of categ (length(categ.color) == length(levels(data1[, categ[categ.len]])))
-data1 <- data.frame(data1, categ.color = categ.color)
-tempo.check <- unique(data1[ , c(categ[categ.len], "categ.color")])
-if( ! (nrow(tempo.check) == length(unique(categ.color)) & nrow(tempo.check) == length(unique(data1[ , categ[categ.len]])))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg.color ARGUMENT HAS THE LENGTH OF data1 ROW NUMBER\nBUT IS INCORRECTLY ASSOCIATED TO EACH CLASS OF categ ", categ[categ.len], ":\n", paste(unique(mapply(FUN = "paste", data1[ ,categ[categ.len]], data1[ ,"categ.color"])), collapse = "\n"))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else{
-# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
-categ.color <- unique(data1$categ.color[order(data1[, categ[categ.len]])]) # Modif to have length(categ.color) equal to the different number of categ (length(categ.color) == length(levels(data1[, categ[categ.len]])))
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") categ.color ARGUMENT HAS THE LENGTH OF data1 ROW NUMBER\nCOLORS HAVE BEEN RESPECTIVELY ASSOCIATED TO EACH CLASS OF categ ", categ[categ.len], " AS:\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "), "\n", paste(categ.color, collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}else if(length(categ.color) == 1){
-# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
-data1 <- data.frame(data1, categ.color = categ.color)
-categ.color <- rep(categ.color, length(levels(data1[, categ[categ.len]])))
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") categ.color ARGUMENT HAS LENGTH 1, MEANING THAT ALL THE DIFFERENT CLASSES OF ", categ[categ.len], "\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "), "\nWILL HAVE THE SAME COLOR\n", paste(categ.color, collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else{
-tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg.color ARGUMENT MUST BE (1) LENGTH 1, OR (2) THE LENGTH OF data1 NROWS, OR (3) THE LENGTH OF THE CLASSES IN THE categ ", categ[categ.len], " COLUMN. HERE IT IS COLOR LENGTH ", length(categ.color), " VERSUS CATEG LENGTH ", length(data1[, categ[categ.len]]), " AND CATEG CLASS LENGTH ", length(unique(data1[, categ[categ.len]])), "\nPRESENCE OF NA COULD BE THE PROBLEM")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}else{
-categ.len <- length(categ) # if only categ1, then colors for classes of categ1, if length(categ) == 2, then colors for classes of categ2
-# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
-categ.color <- fun_gg_palette(length(levels(data1[, categ[categ.len]])))
-data1 <- data.frame(data1, categ.color = data1[, categ[categ.len]])
-data1$categ.color <- factor(data1$categ.color, labels = categ.color)
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL categ.color ARGUMENT -> COLORS RESPECTIVELY ATTRIBUTED TO EACH CLASS OF ", categ[categ.len], " IN data1:\n", paste(categ.color, collapse = " "), "\n", paste(levels(data1[, categ[categ.len]]), collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# categ.color not NULL anymore
-categ.color <- as.character(categ.color)
-# categ.color is a character string representing the diff classes
-data1$categ.color <- factor(data1$categ.color, levels = unique(categ.color)) # ok because if categ.color is a character string, the order make class 1, class 2, etc. unique() because no duplicates allowed
-# data1$categ.color is a factor with order of levels -> categ.color
-# end management of categ.color
-# management of dot.color
-if( ! is.null(dot.color)){
-# optional legend of dot colors
-if( ! is.null(dot.categ)){
-ini.dot.categ <- dot.categ
-if( ! dot.categ %in% names(data1)){ # no need to use all() because length(dot.categ) = 1
-tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ ARGUMENT MUST BE A COLUMN NAME OF data1. HERE IT IS:\n", dot.categ)
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if(dot.categ %in% categ){ # no need to use all() because length(dot.categ) = 1. Do not use dot.categ %in% categ[length(categ)] -> error
-# management of dot legend if dot.categ %in% categ (because legends with the same name are joined in ggplot2) 
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE COLUMN NAME OF data1 INDICATED IN THE dot.categ ARGUMENT (", dot.categ, ") HAS BEEN REPLACED BY ", paste0(dot.categ, "_DOT"), " TO AVOID MERGED LEGEND BY GGPLOT2")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-data1 <- data.frame(data1, dot.categ = data1[, dot.categ]) # dot.categ is not a column name of data1 (checked above with reserved words)
-dot.categ <- paste0(dot.categ, "_DOT")
-names(data1)[names(data1) == "dot.categ"] <- dot.categ # paste0(dot.categ, "_DOT") is not a column name of data1 (checked above with reserved words)
-# tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ ARGUMENT CANNOT BE A COLUMN NAME OF data1 ALREADY SPECIFIED IN THE categ ARGUMENT:\n", dot.categ, "\nINDEED, dot.categ ARGUMENT IS MADE TO HAVE MULTIPLE DOT COLORS NOT RELATED TO THE BOXPLOT CATEGORIES")
-# 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, print = FALSE)
-tempo2 <- fun_check(data =  data1[, dot.categ], data.name = paste0(dot.categ, " COLUMN OF data1"), class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
-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)
-}
-data1[, dot.categ] <- factor(data1[, dot.categ]) # if already a factor, change nothing, if characters, levels according to alphabetical order
-# dot.categ column of data1 is factor from here
-if( ! is.null(dot.categ.class.order)){
-if(any(duplicated(dot.categ.class.order))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ.class.order ARGUMENT CANNOT HAVE DUPLICATED CLASSES: ", paste(dot.categ.class.order, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if( ! (all(dot.categ.class.order %in% levels(data1[, dot.categ])) & all(levels(data1[, dot.categ]) %in% dot.categ.class.order))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ.class.order ARGUMENT MUST BE CLASSES OF dot.categ ARGUMENT\nHERE IT IS:\n", paste(dot.categ.class.order, collapse = " "), "\nFOR dot.categ.class.order AND IT IS:\n", paste(levels(data1[, dot.categ]), collapse = " "), "\nFOR dot.categ COLUMN (", ini.dot.categ, ") OF data1")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else{
-data1[, dot.categ] <- factor(data1[, dot.categ], levels = dot.categ.class.order) # reorder the factor
-}
-}else{
-if(all(dot.color == "same") & length(dot.color) == 1){
-dot.categ.class.order <- unlist(categ.class.order[length(categ)])
-data1[, dot.categ] <- factor(data1[, dot.categ], levels = dot.categ.class.order) # reorder the factor
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE dot.categ.class.order SETTING IS NULL AND dot.color IS \"same\". ORDER OF categ.class.order WILL BE APPLIED FOR LEGEND DISPLAY: ", paste(dot.categ.class.order, collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else{
-dot.categ.class.order <- sort(levels(data1[, dot.categ]))
-data1[, dot.categ] <- factor(data1[, dot.categ], levels = dot.categ.class.order) # reorder the factor
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE dot.categ.class.order SETTING IS NULL. ALPHABETICAL ORDER WILL BE APPLIED FOR LEGEND DISPLAY: ", paste(dot.categ.class.order, collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-# dot.categ.class.order not NULL anymore (character string) if dot.categ is not NULL
-if(all(dot.color == "same") & length(dot.color) == 1){
-if( ! identical(ini.dot.categ, categ[length(categ)])){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nWHEN dot.color ARGUMENT IS \"same\", THE COLUMN NAME IN dot.categ ARGUMENT MUST BE IDENTICAL TO THE LAST COLUMN NAME IN categ ARGUMENT. HERE IT IS:\ndot.categ: ", paste(ini.dot.categ, collapse = " "), "\ncateg: ", paste(categ, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if( ! fun_comp_1d(unlist(categ.class.order[length(categ)]), dot.categ.class.order)$identical.content){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nWHEN dot.color ARGUMENT IS \"same\",\nLAST COMPARTMENT OF categ.class.order ARGUMENT AND dot.categ.class.order ARGUMENT CANNOT BE DIFFERENT:\nLAST COMPARTMENT OF categ.class.order: ", paste(unlist(categ.class.order[length(categ)]), collapse = " "), "\ndot.categ.class.order: ", paste(dot.categ.class.order, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-for(i3 in 1:length(categ)){
-if(identical(categ[i3], ini.dot.categ) & ! identical(unlist(categ.class.order[i3]), dot.categ.class.order) & identical(sort(unlist(categ.class.order[i3])), sort(dot.categ.class.order))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE dot.categ ARGUMENT SETTING IS PRESENT IN THE categ ARGUMENT SETTING, BUT ORDER OF THE CLASSES IS NOT THE SAME:\ncateg.class.order: ", paste(unlist(categ.class.order[i3]), collapse = " "), "\ndot.categ.class.order: ", paste(dot.categ.class.order, collapse = " "), "\nNOTE THAT ORDER OF categ.class.order IS THE ONE USED FOR THE AXIS REPRESENTATION")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-if(is.null(dot.categ.legend.name)){
-dot.categ.legend.name <- if(ini.dot.categ %in% categ[length(categ)]){dot.categ}else{ini.dot.categ} #
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE dot.categ.legend.name SETTING IS NULL -> ", dot.categ.legend.name, " WILL BE USED AS LEGEND TITLE OF DOTS")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# dot.categ.legend.name not NULL anymore (character string)
-}else{
-if( ! is.null(dot.categ.class.order)){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE dot.categ.class.order ARGUMENT IS NOT NULL, BUT IS THE dot.categ ARGUMENT\n-> dot.categ.class.order NOT CONSIDERED AS NO LEGEND WILL BE DRAWN")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# But dot.categ.class.order will be converted to NULL below (not now)
-}
-# end optional legend of dot colors
-# check the nature of color
-# integer colors into gg_palette
-tempo.check.color <- fun_check(data = dot.color, class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem
-if(tempo.check.color == FALSE){
-# convert integers into colors
-dot.color <- fun_gg_palette(max(dot.color, na.rm = TRUE))[dot.color]
-}
-# end integer colors into gg_palette
-if(all(dot.color == "same") & length(dot.color) == 1){
-dot.color <- categ.color # same color of the dots as the corresponding box color
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") dot.color ARGUMENT HAS BEEN SET TO \"same\"\nTHUS, DOTS WILL HAVE THE SAME COLORS AS THE CORRESPONDING BOXPLOT")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else if( ! (all(dot.color %in% colors() | grepl(pattern = "^#", dot.color)))){ # check that all strings of low.color start by #
-tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.color ARGUMENT MUST BE (1) A HEXADECIMAL COLOR VECTOR STARTING BY #, OR (2) COLOR NAMES GIVEN BY colors(), OR (3) INTEGERS, OR THE STRING\"same\"\nHERE IT IS: ", paste(unique(dot.color), collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-if(any(is.na(dot.color))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") dot.color ARGUMENT CONTAINS NA")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end check the nature of color
-# check the length of color
-if( ! is.null(dot.categ)){
-# optional legend of dot colors
-if(length(dot.color) > 1 & length(unique(data1[, dot.categ])) != length(dot.color)){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.color ARGUMENT IS NOT THE SAME LENGTH AS LEVELS OF dot.categ COLUMN (", dot.categ, "):\ndot.color: ", paste(dot.color, collapse = " "), "\ndot.categ LEVELS: ", paste(levels(data1[, dot.categ]), collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if(length(dot.color) == 1 & length(dot.categ.class.order) > 1){ # to deal with single color
-dot.color <- rep(dot.color, length(dot.categ.class.order))
-}
-data1 <- data.frame(data1, dot.color = data1[, dot.categ])
-data1$dot.color <- factor(data1$dot.color, labels = dot.color) # do not use labels = unique(dot.color). Otherwise, we can have green1 green2 when dot.color is c("green", "green")
-dot.color <- as.character(unique(data1$dot.color[order(data1[, dot.categ])])) # reorder the dot.color character vector
-if(length(dot.color) == 1 & length(dot.categ.class.order) > 1){ # to deal with single color
-dot.color <- rep(dot.color, length(dot.categ.class.order))
-}
-tempo.check <- unique(data1[ , c(dot.categ, "dot.color")])
-if(length(unique(data1[ , "dot.color"])) > 1 & ( ! (nrow(tempo.check) == length(unique(data1[ , "dot.color"])) & nrow(tempo.check) == length(unique(data1[ , dot.categ]))))){ # length(unique(data1[ , "dot.color"])) > 1 because if only one color, can be attributed to each class of dot.categ
-tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.color ARGUMENT IS INCORRECTLY ASSOCIATED TO EACH CLASS OF dot.categ (", dot.categ, ") COLUMN:\n", paste(unique(mapply(FUN = "paste", data1[ , dot.categ], data1[ ,"dot.color"])), collapse = "\n"))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else{
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN dot.categ ARGUMENT (", ini.dot.categ, "), THE FOLLOWING COLORS OF DOTS:\n", paste(dot.color, collapse = " "), "\nHAVE BEEN ATTRIBUTED TO THESE CLASSES:\n", paste(levels(data1[, dot.categ]), collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# dot.color is a character string representing the diff classes of dot.categ
-# data1$dot.color is a factor with order of levels -> dot.categ
-# end optional legend of dot colors
-}else{
-categ.len <- length(categ) # if only categ1, then colors for classes of categ1, if length(categ) == 2, then colors for classes of categ2
-if(length(dot.color) == length(levels(data1[, categ[categ.len]]))){ # here length(dot.color) is equal to the different number of categ
-# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
-data1 <- data.frame(data1, dot.color = data1[, categ[categ.len]])
-data1$dot.color <- factor(data1$dot.color, labels = dot.color)
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN ", categ[categ.len], " OF categ ARGUMENT, THE FOLLOWING COLORS:\n", paste(dot.color, collapse = " "), "\nHAVE BEEN ATTRIBUTED TO THESE CLASSES:\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else if(length(dot.color) == length(data1[, categ[categ.len]])){# here length(dot.color) is equal to nrow(data1) -> Modif to have length(dot.color) equal to the different number of categ (length(dot.color) == length(levels(data1[, categ[categ.len]])))
-data1 <- data.frame(data1, dot.color = dot.color)
-}else if(length(dot.color) == 1 & ! all(dot.color == "same")){
-# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
-data1 <- data.frame(data1, dot.color = dot.color)
-dot.color <- rep(dot.color, length(levels(data1[, categ[categ.len]])))
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") dot.color ARGUMENT HAS LENGTH 1, MEANING THAT ALL THE DIFFERENT CLASSES OF ", categ[categ.len], "\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "), "\nWILL HAVE THE SAME COLOR\n", paste(dot.color, collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else{
-tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.color ARGUMENT MUST BE (1) LENGTH 1, OR (2) THE LENGTH OF data1 NROWS, OR (3) THE LENGTH OF THE CLASSES IN THE categ ", categ[categ.len], " COLUMN. HERE IT IS COLOR LENGTH ", length(dot.color), " VERSUS CATEG LENGTH ", length(data1[, categ[categ.len]]), " AND CATEG CLASS LENGTH ", length(unique(data1[, categ[categ.len]])), "\nPRESENCE OF NA COULD BE THE PROBLEM")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-# end check the length of color
-dot.color <- as.character(dot.color)
-# dot.color is a character string representing the diff classes
-data1$dot.color <- factor(data1$dot.color, levels = unique(dot.color)) # ok because if dot.color is a character string, the order make class 1, class 2, etc. If dot.color is a column of data1, then levels will be created, without incidence, except if dot.categ specified (see below). unique() because no duplicates allowed
-# data1$dot.color is a factor with order of levels -> dot.color
-}
-# end optional legend of dot colors
-}else if(is.null(dot.color) & ! (is.null(dot.categ) & is.null(dot.categ.class.order) & is.null(dot.categ.legend.name))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") dot.categ OR dot.categ.class.order OR dot.categ.legend.name ARGUMENT HAS BEEN SPECIFIED BUT dot.color ARGUMENT IS NULL (NO DOT PLOTTED)")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# dot.color either NULL (no dot plotted) or character string (potentially representing the diff classes of dot.categ)
-# data1$dot.color is either NA or a factor (with order of levels -> depending on dot.categ or categ[length(categ)], or other
-if(is.null(dot.categ)){
-dot.categ.class.order <- NULL # because not used anyway
-}
-# dot.categ.class.order either NULL if dot.categ is NULL (no legend displayed) or character string (potentially representing the diff classes of dot.categ)
-# end management of dot.color
-if(is.null(dot.color) & box.fill == FALSE & dot.alpha <= 0.025){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE FOLLOWING ARGUMENTS WERE SET AS:\ndot.color = NULL (NOT ALL DOTS BUT ONLY POTENTIAL OUTLIER DOTS DISPLAYED)\nbox.fill = FALSE (NO FILLING COLOR FOR BOTH BOXES AND POTENTIAL OUTLIER DOTS)\ndot.alpha = ", fun_round(dot.alpha, 4), "\n-> POTENTIAL OUTLIER DOTS MIGHT NOT BE VISIBLE BECAUSE ALMOST TRANSPARENT")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-if(is.null(dot.color) & box.fill == FALSE & dot.border.size == 0){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nTHE FOLLOWING ARGUMENTS WERE SET AS:\ndot.color = NULL (NOT ALL DOTS BUT ONLY POTENTIAL OUTLIER DOTS DISPLAYED)\nbox.fill = FALSE (NO FILLING COLOR FOR BOTH BOXES AND POTENTIAL OUTLIER DOTS)\ndot.border.size = 0 (NO BORDER FOR POTENTIAL OUTLIER DOTS)\n-> THESE SETTINGS ARE NOT ALLOWED BECAUSE THE POTENTIAL OUTLIER DOTS WILL NOT BE VISIBLE")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-if( ! is.null(dot.border.color)){
-tempo1 <- fun_check(data = dot.border.color, class = "vector", mode = "character", length = 1, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = dot.border.color, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, fun.name = function.name, print = FALSE)
-if(tempo1$problem == FALSE & tempo2$problem == TRUE & ! (all(dot.border.color %in% colors() | grepl(pattern = "^#", dot.border.color)))){ # check that all strings of low.color start by #
-tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.border.color ARGUMENT MUST BE (1) A HEXADECIMAL COLOR STRING STARTING BY #, OR (2) A COLOR NAME GIVEN BY colors(), OR (3) AN INTEGER VALUE\nHERE IT IS: ", paste(unique(dot.border.color), collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if(tempo1$problem == TRUE & tempo2$problem == FALSE){ # convert integers into colors
-dot.border.color <- fun_gg_palette(max(dot.border.color, na.rm = TRUE))[dot.border.color]
-}
-# end integer colors into gg_palette
-}
-# management of log scale
-if(y.log != "no"){
-data1[, y] <- suppressWarnings(get(y.log)(data1[, y]))
-}
-if(y.log != "no" & ! is.null(y.lim)){
-if(any(y.lim <= 0)){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ny.lim ARGUMENT CANNOT HAVE ZERO OR NEGATIVE VALUES WITH THE y.log ARGUMENT SET TO ", y.log, ":\n", paste(y.lim, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if(any( ! is.finite(if(y.log == "log10"){log10(y.lim)}else{log2(y.lim)}))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ny.lim ARGUMENT RETURNS INF WITH THE y.log ARGUMENT SET TO ", y.log, "\nAS SCALE COMPUTATION IS ", ifelse(y.log == "log10", "log10", "log2"), ":\n", paste(if(y.log == "log10"){log10(y.lim)}else{log2(y.lim)}, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-if(y.log != "no" & y.include.zero == TRUE){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") y.log ARGUMENT SET TO ", y.log, " AND y.include.zero ARGUMENT SET TO TRUE -> y.include.zero ARGUMENT RESET TO FALSE BECAUSE 0 VALUE CANNOT BE REPRESENTED IN LOG SCALE")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-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")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end management of log scale
-# end second round of checking and data preparation
-
-
-# package checking
-fun_pack(req.package = c("ggplot2"), lib.path = lib.path)
-fun_pack(req.package = c("scales"), lib.path = lib.path)
-# end package checking
-
-
-
-# main code
-# na detection and removal (done now to be sure of the correct length of categ)
-column.check <- c(y, categ, "categ.color", if( ! is.null(dot.color)){"dot.color"}, if( ! is.null(dot.color) & ! is.null(dot.categ)){if(dot.categ != ini.dot.categ){dot.categ}}, if( ! is.null(facet.categ)){facet.categ}) # dot.categ because can be a 3rd column of data1
-if(any(is.na(data1[, column.check]))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NA DETECTED IN COLUMNS ", paste(column.check, collapse = " "), " OF data1 AND CORRESPONDING ROWS REMOVED (SEE $removed.row.nb AND $removed.rows)")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-for(i2 in 1:length(column.check)){
-if(any(is.na(data1[, column.check[i2]]))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NA REMOVAL DUE TO COLUMN ", column.check[i2], " OF data1")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-removed.row.nb <- unlist(lapply(lapply(c(data1[column.check]), FUN = is.na), FUN = which))
-removed.rows <- data1[removed.row.nb, ]
-column.check <- column.check[ ! column.check == y] # remove y to keep quali columns
-if(length(removed.row.nb) != 0){
-data1 <- data1[-removed.row.nb, ]
-for(i3 in 1:length(column.check)){
-if(any( ! unique(removed.rows[, column.check[i3]]) %in% unique(data1[, column.check[i3]]))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN COLUMN ", column.check[i3], " OF data1, THE FOLLOWING CLASSES HAVE DISAPPEARED AFTER NA REMOVAL (IF COLUMN USED IN THE PLOT, THIS CLASS WILL NOT BE DISPLAYED):\n", paste(unique(removed.rows[, column.check[i3]])[ ! unique(removed.rows[, column.check[i3]]) %in% unique(data1[, column.check[i3]])], collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-}
-count.categ <- 0
-for(i2 in 1:length(column.check)){
-if(column.check[i2] %in% categ){
-count.categ <- count.categ + 1
-}
-if(column.check[i2] == categ[count.categ]){
-categ.class.order[count.categ] <- list(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(categ.class.order[[count.categ]]))
-}
-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
-data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = unique(dot.categ.class.order))
-}
-}
-if(column.check[i2] == "categ.color"){
-categ.color <- levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(data1[, column.check[i2]])] # remove the absent color in the character vector
-if(length(categ.color) == 1 & length(unlist(categ.class.order[length(categ)])) > 1){ # to deal with single color
-categ.color <- rep(categ.color, length(unlist(categ.class.order[length(categ)])))
-}
-data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = unique(categ.color))
-}
-if(column.check[i2] == "dot.color"){
-dot.color <- levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(data1[, column.check[i2]])] # remove the absent color in the character vector
-if(length(dot.color) == 1 & length(dot.categ.class.order) > 1){ # to deal with single color. If dot.categ.class.order == NULL (which is systematically the case if dot.categ == NULL), no rep(dot.color, length(dot.categ.class.order)
-dot.color <- rep(dot.color, length(dot.categ.class.order))
-}
-data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = unique(dot.color))
-}
-if(column.check[i2] %in% facet.categ){ # works if facet.categ == NULL this method should keep the order of levels when removing some levels
-tempo.levels <- levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(as.character(data1[, column.check[i2]]))]
-data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = tempo.levels)
-}
-}
-}else{
-removed.row.nb <- NULL
-removed.rows <- NULL
-}
-# end na detection and removal (done now to be sure of the correct length of categ)
-
-
-# y coordinates recovery (create ini.box.coord, dot.coord and modify data1)
-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
-# end width commputations
-# data1 check categ order for dots coordinates recovery
-data1 <- data.frame(data1, categ.check = data1[, categ[1]])
-data1$categ.check <- as.integer(data1$categ.check) # to check that data1[, categ[1]] and dot.coord$group are similar, during merging
-# end data1 check categ order for dots coordinates recovery
-# per box dots coordinates recovery
-tempo.gg.name <- "gg.indiv.plot."
-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 = categ.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::scale_discrete_manual(aesthetics = "fill", name = categ.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
-# 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]])
-data1 <- data.frame(data1[order(data1[, categ[2]], data1[, categ[1]]), ], categ.check = factor(tempo.factor, levels = unique(tempo.factor)))
-data1$categ.check <- as.integer(data1$categ.check)
-# end data1 check categ order for dots coordinates recovery
-# per box dots coordinates recovery
-tempo.gg.name <- "gg.indiv.plot."
-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 = categ.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::scale_discrete_manual(aesthetics = "fill", name = categ.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{
-tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 2\n\n============\n\n")
-stop(tempo.cat)
-}
-tempo.graph.info.ini <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))
-dot.coord <- tempo.graph.info.ini$data[[1]]
-ini.box.coord <- tempo.graph.info.ini$data[[2]]
-tempo.mean <- aggregate(x = dot.coord$y, by = list(dot.coord$group, dot.coord$PANEL), FUN = mean, na.rm = TRUE)
-names(tempo.mean)[names(tempo.mean) == "x"] <- "MEAN"
-names(tempo.mean)[names(tempo.mean) == "Group.1"] <- "BOX"
-names(tempo.mean)[names(tempo.mean) == "Group.2"] <- "PANEL"
-dot.coord <- data.frame(
-dot.coord[order(dot.coord$group, dot.coord$y), ], 
-y.check = as.double(data1[order(data1$categ.check, data1[, y]), y]), 
-categ.check = data1[order(data1$categ.check, data1[, y]), "categ.check"], 
-dot.color = if(is.null(dot.color)){NA}else{data1[order(data1$categ.check, data1[, y]), "dot.color"]}, 
-data1[order(data1$categ.check, data1[, y]), ][categ] # avoid the renaming below
-) # y.check to be sure that the order is the same between the y of data1 and the y of dot.coord
-# names(dot.coord)[names(dot.coord) == "tempo.categ1"] <- categ[1]
-if( ! is.null(dot.categ)){
-dot.coord <- data.frame(dot.coord, data1[order(data1$categ.check, data1[, y]), ][dot.categ]) # avoid the renaming
-}
-if( ! is.null(facet.categ)){
-dot.coord <- data.frame(dot.coord, data1[order(data1$categ.check, data1[, y]), ][facet.categ]) # for facet panels
-tempo.test <- NULL
-for(i2 in 1:length(facet.categ)){
-tempo.test <- paste0(tempo.test, ".", formatC(as.numeric(dot.coord[, facet.categ[i2]]), width = nchar(max(as.numeric(dot.coord[, facet.categ[i2]]), na.rm = TRUE)), flag = "0")) # convert factor into numeric with leading zero for proper ranking # merge the formatC() to create a new factor. The convertion to integer should recreate the correct group number. Here as.numeric is used and not as.integer in case of numeric in facet.categ (because comes from add and not checked by fun_check, contrary to categ)
-}
-tempo.test <- as.integer(factor(tempo.test))
-if( ! identical(as.integer(dot.coord$PANEL), tempo.test)){
-tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nas.integer(dot.coord$PANEL) AND tempo.test MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
-stop(tempo.cat)
-}
-}
-if(dot.tidy == TRUE){
-if( ! is.null(dot.categ)){
-dot.coord <- data.frame(dot.coord, tidy_group = data1[order(data1$categ.check, data1[, y]), ][, dot.categ]) # avoid the renaming
-# tidy_group_coord is to be able to fuse table when creating the table for dot coordinates
-if(dot.categ %in% categ){
-dot.coord <- data.frame(dot.coord, tidy_group_coord = dot.coord$group)
-}else{
-dot.coord <- data.frame(dot.coord, tidy_group_coord = as.integer(factor(paste0(
-formatC(as.integer(dot.coord[, categ[1]]), width = nchar(max(as.integer(dot.coord[, categ[1]]), na.rm = TRUE)), flag = "0"), # convert factor into numeric with leading zero for proper ranking
-".", 
-if(length(categ) == 2){formatC(as.integer(dot.coord[, categ[2]]), width = nchar(max(as.integer(dot.coord[, categ[2]]), na.rm = TRUE)), flag = "0")}, # convert factor into numeric with leading zero for proper ranking
-if(length(categ) == 2){"."}, 
-formatC(as.integer(dot.coord[, dot.categ]), width = nchar(max(as.integer(dot.coord[, dot.categ]), na.rm = TRUE)), flag = "0") # convert factor into numeric with leading zero for proper ranking
-))) # merge the 2 or 3 formatC() to create a new factor. The convertion to integer should recreate the correct group number
-) # for tidy dot plots
-}
-}else{
-dot.coord <- data.frame(dot.coord, tidy_group = if(length(categ) == 1){
-dot.coord[, categ]}else{as.integer(factor(paste0(
-formatC(as.integer(dot.coord[, categ[1]]), width = nchar(max(as.integer(dot.coord[, categ[1]]), na.rm = TRUE)), flag = "0"), # convert factor into numeric with leading zero for proper ranking
-".", 
-formatC(as.integer(dot.coord[, categ[2]]), width = nchar(max(as.integer(dot.coord[, categ[2]]), na.rm = TRUE)), flag = "0")# convert factor into numeric with leading zero for proper ranking
-))) # merge the 2 formatC() to create a new factor. The convertion to integer should recreate the correct group number
-}) # for tidy dot plots
-# tidy_group_coord is to be able to fuse table when creating the table for dot coordinates
-dot.coord <- data.frame(dot.coord, tidy_group_coord = dot.coord$group)
-}
-}
-if( ! (identical(dot.coord$y, dot.coord$y.check) & identical(dot.coord$group, dot.coord$categ.check))){
-tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\n(dot.coord$y AND dot.coord$y.check) AS WELL AS (dot.coord$group AND dot.coord$categ.check) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
-stop(tempo.cat)
-}else{
-if( ! identical(tempo.mean[order(tempo.mean$BOX, tempo.mean$PANEL), ]$BOX, unique(dot.coord[order(dot.coord$group, dot.coord$PANEL), c("group", "PANEL")])$group)){
-tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\n(tempo.mean$BOX, tempo.mean$PANEL) AND (dot.coord$group, dot.coord$PANEL) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
-stop(tempo.cat)
-}else{
-tempo <- unique(dot.coord[order(dot.coord$group, dot.coord$PANEL), c(categ, if( ! is.null(dot.color) & ! is.null(dot.categ)){if(dot.categ != ini.dot.categ){dot.categ}}, if( ! is.null(facet.categ)){facet.categ}), drop = FALSE])
-# names(tempo) <- paste0(names(tempo), ".mean")
-tempo.mean <- data.frame(tempo.mean[order(tempo.mean$BOX, tempo.mean$PANEL), ], tempo)
-}
-}
-# at that stage, categ color and dot color are correctly attributed in data1, box.coord and dot.coord
-# end y dot coordinates recovery (create ini.box.coord, dot.coord and modify data1)
-
-
-
-
-
-
-
-
-
-
-
-
-
-# stat output (will also serve for boxplot and mean display)
-ini.box.coord <- ini.box.coord[order(ini.box.coord$group), ]
-stat <- data.frame(MIN = ini.box.coord$ymin, QUART1 = ini.box.coord$lower, MEDIAN = ini.box.coord$middle, QUART3 = ini.box.coord$upper, MAX = ini.box.coord$ymax, NOTCHUPPER = ini.box.coord$notchupper, NOTCHLOWER = ini.box.coord$notchlower, OUTLIERS = ini.box.coord["outliers"], COLOR = ini.box.coord$fill, stringsAsFactors = TRUE) # ini.box.coord["outliers"] written like this because it is a list. X coordinates not put now because several features to set
-names(stat)[names(stat) == "outliers"] <- "OUTLIERS"
-tempo.mean <- tempo.mean[order(tempo.mean$BOX), ]
-if( ! fun_comp_2d(ini.box.coord[c("PANEL", "group")], tempo.mean[c("PANEL", "BOX")])$identical.content){
-tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nini.box.coord[c(\"PANEL\", \"group\")] AND tempo.mean[c(\"PANEL\", \"BOX\")] MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
-stop(tempo.cat)
-}else{
-stat <- data.frame(stat[c("MIN", "QUART1", "MEDIAN")], MEAN = tempo.mean$MEAN, stat[c("QUART3", "MAX", "NOTCHUPPER", "NOTCHLOWER", "OUTLIERS")], tempo.mean[colnames(tempo.mean) != "MEAN"], stat["COLOR"], stringsAsFactors = TRUE) # ini.box.coord["outliers"] written like this because it is a list
-}
-# end stat output (will also serve for boxplot and mean display)
-
-
-
-
-
-# ylim range
-if(is.null(y.lim)){
-if(any(data1[, y] %in% c(Inf, -Inf))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE data1 ARGUMENT CONTAINS -Inf OR Inf VALUES IN THE y COLUMN, THAT WILL NOT BE CONSIDERED IN THE PLOT RANGE")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-y.lim <- range(data1[, y], na.rm = TRUE, finite = TRUE) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only
-}else if(y.log != "no"){
-y.lim <- get(y.log)(y.lim)
-}
-if(y.log != "no"){
-if(any( ! is.finite(y.lim))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ny.lim ARGUMENT CANNOT HAVE ZERO OR NEGATIVE VALUES WITH THE y.log ARGUMENT SET TO ", y.log, ":\n", paste(y.lim, collapse = " "), "\nPLEASE, CHECK DATA VALUES (PRESENCE OF ZERO OR INF VALUES)")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-if(suppressWarnings(all(y.lim %in% c(Inf, -Inf)))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " COMPUTED y.lim CONTAINS Inf VALUES, BECAUSE VALUES FROM data1 ARGUMENTS ARE NA OR Inf ONLY\n\n================\n\n")
-stop(tempo.cat)
-}
-y.lim.order <- order(y.lim) # to deal with inverse axis
-y.lim <- sort(y.lim)
-y.lim[1] <- y.lim[1] - abs(y.lim[2] - y.lim[1]) * ifelse(diff(y.lim.order) > 0, y.bottom.extra.margin, y.top.extra.margin) # diff(y.lim.order) > 0 medians not inversed axis
-y.lim[2] <- y.lim[2] + abs(y.lim[2] - y.lim[1]) * ifelse(diff(y.lim.order) > 0, y.top.extra.margin, y.bottom.extra.margin) # diff(y.lim.order) > 0 medians not inversed axis
-if(y.include.zero == TRUE){ # no need to check y.log != "no" because done before
-y.lim <- range(c(y.lim, 0), na.rm = TRUE, finite = TRUE) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only
-}
-y.lim <- y.lim[y.lim.order]
-if(any(is.na(y.lim))){
-tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 4\n\n============\n\n")
-stop(tempo.cat)
-}
-# end ylim range
-
-
-
-
-
-
-# drawing
-# constant part
-tempo.gg.name <- "gg.indiv.plot."
-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 is directly put here to deal with additional variable of data, like when using facet_grid. No problem if add is a theme, will be dealt below
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::xlab(if(is.null(x.lab)){categ[1]}else{x.lab}))
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ylab(if(is.null(y.lab)){y}else{y.lab}))
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ggtitle(title))
-# text angle management
-tempo.just <- fun_gg_just(angle = text.angle, axis = ifelse(vertical == TRUE, "x", "y"))
-# end text angle management
-add.check <- TRUE
-if( ! is.null(add)){ # if add is NULL, then = 0
-if(grepl(pattern = "ggplot2::theme", add) == TRUE){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") \"ggplot2::theme\" STRING DETECTED IN THE add ARGUMENT -> article ARGUMENT WILL BE IGNORED")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-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
-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(
-text = ggplot2::element_text(size = text.size), 
-plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
-line = ggplot2::element_line(size = 0.5), 
-legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
-axis.line.y.left = ggplot2::element_line(colour = "black"), # draw lines for the y axis
-axis.line.x.bottom = ggplot2::element_line(colour = "black"), # draw lines for the x axis
-panel.grid.major.x = if(vertical == TRUE){NULL}else{ggplot2::element_line(colour = "grey85")},
-panel.grid.major.y = if(vertical == TRUE){ggplot2::element_line(colour = "grey85")}else{NULL},
-axis.text.x = if(vertical == TRUE){ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)}else{NULL},
-axis.text.y = if(vertical == TRUE){NULL}else{ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)},
-strip.background = ggplot2::element_rect(fill = NA, colour = NA) # for facet background
-))
-}else{
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
-text = ggplot2::element_text(size = text.size), 
-plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
-line = ggplot2::element_line(size = 0.5), 
-legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
-axis.line.y.left = ggplot2::element_line(colour = "black"), 
-axis.line.x.bottom = ggplot2::element_line(colour = "black"),
-axis.text.x = if(vertical == TRUE){ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)}else{NULL},
-axis.text.y = if(vertical == TRUE){NULL}else{ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)},
-strip.background = ggplot2::element_rect(fill = NA, colour = NA)
-))
-}
-}else if(add.check == TRUE & article == FALSE){
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
-text = ggplot2::element_text(size = text.size), 
-plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
-line = ggplot2::element_line(size = 0.5), 
-legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
-panel.background = ggplot2::element_rect(fill = "grey95"), 
-axis.line.y.left = ggplot2::element_line(colour = "black"), 
-axis.line.x.bottom = ggplot2::element_line(colour = "black"), 
-panel.grid.major.x = ggplot2::element_line(colour = "grey85"), 
-panel.grid.major.y = ggplot2::element_line(colour = "grey85"), 
-panel.grid.minor.x = ggplot2::element_blank(), 
-panel.grid.minor.y = ggplot2::element_blank(), 
-strip.background = ggplot2::element_rect(fill = NA, colour = NA),
-axis.text.x = if(vertical == TRUE){ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)}else{NULL},
-axis.text.y = if(vertical == TRUE){NULL}else{ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)}
-))
-}
-# Contrary to fun_gg_bar(), cannot plot the boxplot right now, because I need the dots plotted first
-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, group = categ[length(categ)]), position = ggplot2::position_dodge(width = NULL), color = NA, width = box.width, fill = NA)) # this is to set the graph (i.e., a blanck boxplot to be able to use x coordinates to plot dots before boxes)
-# end constant part
-
-
-
-
-# x coordinates management (for random plotting and for stat display)
-# boxs
-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 = categ.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
-box.coord <- box.coord[order(box.coord$group), ]
-if(stat.disp.mean == TRUE){ # for mean display
-if( ! identical(tempo.mean$BOX, box.coord$group)){
-tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\ntempo.mean$BOX AND box.coord$group DO NOT HAVE THE SAME VALUE ORDER\n\n============\n\n")
-stop(tempo.cat)
-}else{
-tempo <- c(categ, if( ! is.null(dot.color) & ! is.null(dot.categ)){if(dot.categ != ini.dot.categ){dot.categ}}, if( ! is.null(facet.categ)){facet.categ})
-for(i3 in tempo){
-names(tempo.mean)[names(tempo.mean) == i3] <- paste0(i3, ".mean")
-}
-box.coord <- data.frame(box.coord, tempo.mean)
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") MEAN VALUES INSTEAD OF MEDIAN VALUES DISPLAYED")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-
-}
-}
-# width commputations
-width.ini <- c(box.coord$xmax - box.coord$xmin)[1] # all the box widths are equal here. Only the first one taken
-width.correct <- width.ini * box.space / 2
-if( ! identical(box.coord$group, stat$BOX)){
-tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\n(box.coord$group AND stat$BOX) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
-stop(tempo.cat)
-}else{
-stat <- data.frame(
-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_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, 
-# tempo.mean[colnames(tempo.mean) != "MEAN"], # already added above
-stringsAsFactors = TRUE
-)
-stat$COLOR <- factor(stat$COLOR, levels = unique(categ.color))
-if( ! all(stat$NOTCHUPPER < stat$QUART3 & stat$NOTCHLOWER > stat$QUART1) & box.notch == TRUE){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") SOME NOTCHES ARE BEYOND BOX HINGES. TRY ARGUMENT box.notch = FALSE")
-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
-# end width commputations
-# end boxs
-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
-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)
-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
-names(tempo.data1)[names(tempo.data1) == categ[1]] <- paste0(categ[1], ".check")
-verif <- paste0(categ[1], ".check")
-}else if(length(categ) == 2){
-tempo.data1 <- unique(
-data.frame(
-data1[c(categ[1], categ[2])], 
-group = as.integer(factor(paste0(
-formatC(as.integer(data1[, categ[2]]), width = nchar(max(as.integer(data1[, categ[2]]), na.rm = TRUE)), flag = "0"), # convert factor into numeric with leading zero for proper ranking
-".", 
-formatC(as.integer(data1[, categ[1]]), width = nchar(max(as.integer(data1[, categ[1]]), na.rm = TRUE)), flag = "0")# convert factor into numeric with leading zero for proper ranking
-))) # merge the 2 formatC() to create a new factor. The convertion to integer should recreate the correct group number
-)
-) # categ[2] first if categ[2] is used to make the categories in ggplot and categ[1] is used to make the x-axis
-names(tempo.data1)[names(tempo.data1) == categ[1]] <- paste0(categ[1], ".check")
-names(tempo.data1)[names(tempo.data1) == categ[2]] <- paste0(categ[2], ".check")
-verif <- c(paste0(categ[1], ".check"), paste0(categ[2], ".check"))
-}else{
-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
-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)
-}
-# end random dots
-}
-# tidy dots
-# coordinates are recovered during plotting (see dot.coord.tidy1 below)
-# end tidy dots
-}
-# end x coordinates management (for random plotting and for stat display)
-
-
-
-
-
-# boxplot display before dot display if box.fill = TRUE
-coord.names <- NULL
-# creation of the data frame for (main box + legend) and data frame for means
-if(box.notch == FALSE){
-for(i3 in 1:length(categ)){
-if(i3 == 1){
-tempo.polygon <- data.frame(GROUPX = c(t(stat[, rep(categ[i3], 5)])), stringsAsFactors = TRUE)
-}else{
-tempo.polygon <- cbind(tempo.polygon, c(t(stat[, rep(categ[i3], 5)])), stringsAsFactors = TRUE)
-}
-}
-names(tempo.polygon) <- categ
-tempo.polygon <- data.frame(X = c(t(stat[, c("X_BOX_INF", "X_BOX_SUP", "X_BOX_SUP", "X_BOX_INF", "X_BOX_INF")])), Y = c(t(stat[, c("QUART1", "QUART1", "QUART3", "QUART3", "QUART1")])), COLOR = c(t(stat[, c("COLOR", "COLOR", "COLOR", "COLOR", "COLOR")])), BOX = as.character(c(t(stat[, c("BOX", "BOX", "BOX", "BOX", "BOX")]))), tempo.polygon, stringsAsFactors = TRUE)
-if( ! is.null(facet.categ)){
-for(i4 in 1:length(facet.categ)){
-tempo.polygon <- data.frame(tempo.polygon, c(t(stat[, c(facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4])])), stringsAsFactors = TRUE)
-names(tempo.polygon)[length(names(tempo.polygon))] <- facet.categ[i4]
-}
-}
-}else{
-for(i3 in 1:length(categ)){
-if(i3 == 1){
-tempo.polygon <- data.frame(GROUPX = c(t(stat[, rep(categ[i3], 11)])), stringsAsFactors = TRUE)
-}else{
-tempo.polygon <- cbind(tempo.polygon, c(t(stat[, rep(categ[i3], 11)])), stringsAsFactors = TRUE)
-}
-}
-names(tempo.polygon) <- categ
-tempo.polygon <- data.frame(X = c(t(stat[, c("X_BOX_INF", "X_BOX_SUP", "X_BOX_SUP", "X_NOTCH_SUP", "X_BOX_SUP", "X_BOX_SUP", "X_BOX_INF", "X_BOX_INF", "X_NOTCH_INF", "X_BOX_INF", "X_BOX_INF")])), Y = c(t(stat[, c("QUART1", "QUART1", "NOTCHLOWER", "MEDIAN", "NOTCHUPPER", "QUART3", "QUART3", "NOTCHUPPER", "MEDIAN", "NOTCHLOWER", "QUART1")])), COLOR = c(t(stat[, c("COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR")])), BOX = as.character(c(t(stat[, c("BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX")]))), tempo.polygon, stringsAsFactors = TRUE)
-if( ! is.null(facet.categ)){
-for(i4 in 1:length(facet.categ)){
-tempo.polygon <- data.frame(tempo.polygon, c(t(stat[, c(facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4])])), stringsAsFactors = TRUE)
-names(tempo.polygon)[length(names(tempo.polygon))] <- facet.categ[i4]
-}
-}
-}
-tempo.polygon$COLOR <- factor(tempo.polygon$COLOR, levels = unique(categ.color))
-if( ! is.null(categ.class.order)){
-for(i3 in 1:length(categ)){
-tempo.polygon[, categ[i3]] <- factor(tempo.polygon[, categ[i3]], levels = categ.class.order[[i3]])
-}
-}
-# modified name of dot.categ column (e.g., "Group1_DOT") must be included for boxplot using ridy dots
-if( ! is.null(dot.color) & ! is.null(dot.categ)){
-if(dot.categ != ini.dot.categ){
-tempo.polygon <- data.frame(tempo.polygon, GROUPX = tempo.polygon[, ini.dot.categ])
-names(tempo.polygon)[names(tempo.polygon) == "GROUPX"] <- dot.categ
-
-}
-}
-tempo.diamon.mean <- data.frame(X = c(t(stat[, c("X", "X_NOTCH_INF", "X", "X_NOTCH_SUP", "X")])), Y = c(t(cbind(stat["MEAN"] - (stat[, "X"] - stat[, "X_NOTCH_INF"]) * tempo.yx.ratio, stat["MEAN"], stat["MEAN"] + (stat[, "X"] - stat[, "X_NOTCH_INF"]) * tempo.yx.ratio, stat["MEAN"], stat["MEAN"] - (stat[, "X"] - stat[, "X_NOTCH_INF"]) * tempo.yx.ratio))), COLOR = c(t(stat[, c("COLOR", "COLOR", "COLOR", "COLOR", "COLOR")])), GROUP = c(t(stat[, c("BOX", "BOX", "BOX", "BOX", "BOX")])), stringsAsFactors = TRUE)
-if( ! is.null(facet.categ)){
-for(i3 in 1:length(facet.categ)){
-tempo.diamon.mean <- data.frame(tempo.diamon.mean, c(t(stat[, c(facet.categ[i3], facet.categ[i3], facet.categ[i3], facet.categ[i3], facet.categ[i3])])), stringsAsFactors = TRUE)
-names(tempo.diamon.mean)[length(names(tempo.diamon.mean))] <- facet.categ[i3]
-}
-}
-tempo.diamon.mean$COLOR <- factor(tempo.diamon.mean$COLOR, levels = unique(categ.color))
-# end creation of the data frame for (main box + legend) and data frame for means
-if(box.fill == TRUE){
-# 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, coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf}, alpha = box.alpha, outlier.shape = if( ! is.null(dot.color)){NA}else{21}, outlier.color = if( ! is.null(dot.color)){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. Finally, boxplot redrawn (see below)
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_polygon(
-data = tempo.polygon, 
-mapping = ggplot2::aes_string(x = "X", y = "Y", group = "BOX", fill = categ[length(categ)], color = categ[length(categ)]), 
-size = box.line.size, 
-alpha = box.alpha
-))
-coord.names <- c(coord.names, "main.box")
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X, xend = X, y = QUART3, yend = MAX, group = categ[length(categ)]), color = "black", size = box.line.size, alpha = box.alpha)) # 
-coord.names <- c(coord.names, "sup.whisker")
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X, xend = X, y = QUART1, yend = MIN, group = categ[length(categ)]), color = "black", size = box.line.size, alpha = box.alpha)) # 
-coord.names <- c(coord.names, "inf.whisker")
-if(box.whisker.width > 0){
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X_WHISK_INF, xend = X_WHISK_SUP, y = MAX, yend = MAX, group = categ[length(categ)]), color = "black", size = box.line.size, alpha = box.alpha, lineend = "round")) # 
-coord.names <- c(coord.names, "sup.whisker.edge")
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X_WHISK_INF, xend = X_WHISK_SUP, y = MIN, yend = MIN, group = categ[length(categ)]), color = "black", size = box.line.size, alpha = box.alpha, lineend = "round")) # 
-coord.names <- c(coord.names, "inf.whisker.edge")
-}
-if(box.mean == TRUE){
-# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(data = stat, mapping = ggplot2::aes_string(x = "X", y = "MEAN", group = categ[length(categ)]), shape = 23, stroke = box.line.size * 2, fill = stat$COLOR, size = box.mean.size, color = "black", alpha = box.alpha)) # group used in aesthetic to do not have it in the legend
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_polygon(
-data = tempo.diamon.mean, 
-mapping = ggplot2::aes(x = X, y = Y, group = GROUP), 
-fill = tempo.diamon.mean[, "COLOR"], 
-color = hsv(0, 0, 0, alpha = box.alpha), # outline of the polygon in black but with alpha
-size = box.line.size * 2, 
-alpha = box.alpha
-))
-coord.names <- c(coord.names, "mean")
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = if(box.notch == FALSE){X_BOX_INF}else{X_NOTCH_INF}, xend = if(box.notch == FALSE){X_BOX_SUP}else{X_NOTCH_SUP}, y = MEDIAN, yend = MEDIAN, group = categ[length(categ)]), color = "black", size = box.line.size * 2, alpha = box.alpha)) # 
-coord.names <- c(coord.names, "median")
-}
-# end boxplot display before dot display if box.fill = TRUE
-
-
-
-
-
-
-# dot display
-if( ! is.null(dot.color)){
-if(dot.tidy == FALSE){
-if(is.null(dot.categ)){
-if(dot.border.size == 0){
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(
-data = dot.coord.rd3, 
-mapping = ggplot2::aes_string(x = "dot.x", y = "y", group = categ[length(categ)]), 
-size = dot.size, 
-shape = 19, 
-color = dot.coord.rd3$dot.color, 
-alpha = dot.alpha
-)) # 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
-}else{
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(
-data = dot.coord.rd3, 
-mapping = ggplot2::aes_string(x = "dot.x", y = "y", group = categ[length(categ)]), 
-shape = 21, 
-stroke = dot.border.size, 
-color = if(is.null(dot.border.color)){dot.coord.rd3$dot.color}else{rep(dot.border.color, nrow(dot.coord.rd3))}, 
-size = dot.size, 
-fill = dot.coord.rd3$dot.color, 
-alpha = dot.alpha
-)) # 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
-}
-}else{
-if(dot.border.size == 0){
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(
-data = dot.coord.rd3, 
-mapping = ggplot2::aes_string(x = "dot.x", y = "y", alpha = dot.categ), 
-size = dot.size, 
-shape = 19, 
-color = 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
-}else{
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(
-data = dot.coord.rd3, 
-mapping = ggplot2::aes_string(x = "dot.x", y = "y", alpha = dot.categ), 
-size = dot.size, 
-shape = 21, 
-stroke = dot.border.size, 
-color = if(is.null(dot.border.color)){dot.coord.rd3$dot.color}else{rep(dot.border.color, nrow(dot.coord.rd3))}, 
-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.categ.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
-}
-coord.names <- c(coord.names, "dots")
-}else if(dot.tidy == TRUE){
-# here plot using group -> no scale
-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", group = "group"), # not dot.categ here because the classes of dot.categ create new separations
-position = ggplot2::position_dodge(width = box.width), 
-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()
-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.)
-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), 
-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()
-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.categ.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
-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.categ.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
-}
-# 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
-if(length(which(sapply(tempo.coord, FUN = nrow) == nrow(data1))) > if(is.null(dot.categ)){1}else{2}){ # if(is.null(dot.categ)){1}else{2} because 1 dotplot if dot.categ is NULL and 2 dotplots is not, with the second being a blank dotplot with wrong coordinates. Thus take the first in that situation
-tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nMORE THAN ", if(is.null(dot.categ)){1}else{2}, " COMPARTMENT WITH NROW EQUAL TO nrow(data1) IN THE tempo.coord LIST (FOR TIDY DOT COORDINATES). CODE HAS TO BE MODIFIED\n\n================\n\n")
-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
-# 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
-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
-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")
-verif <- paste0(categ[1], ".check")
-}else if(length(categ) == 2){
-tempo.data1 <- unique(
-data.frame(
-data1[c(categ[1], categ[2])], 
-group = as.integer(factor(paste0(
-formatC(as.integer(data1[, categ[2]]), width = nchar(max(as.integer(data1[, categ[2]]), na.rm = TRUE)), flag = "0"), # convert factor into numeric with leading zero for proper ranking
-".", 
-formatC(as.integer(data1[, categ[1]]), width = nchar(max(as.integer(data1[, categ[1]]), na.rm = TRUE)), flag = "0")# convert factor into numeric with leading zero for proper ranking
-))) # merge the 2 formatC() to create a new factor. The convertion to integer should recreate the correct group number
-)
-) # categ[2] first if categ[2] is used to make the categories in ggplot and categ[1] is used to make the x-axis
-names(tempo.data1)[names(tempo.data1) == categ[1]] <- paste0(categ[1], ".check")
-names(tempo.data1)[names(tempo.data1) == categ[2]] <- paste0(categ[2], ".check")
-verif <- c(paste0(categ[1], ".check"), paste0(categ[2], ".check"))
-}else{
-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
-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)
-}
-# end coordinates of tidy dots
-}
-}
-# end dot display
-
-
-
-# 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 = categ.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 = categ.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
-}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(
-data = tempo.polygon, 
-mapping = ggplot2::aes_string(x = "X", y = "Y", group = "BOX", color = categ[length(categ)]), 
-size = box.line.size, 
-alpha = box.alpha, 
-lineend = "round", 
-linejoin = "round"
-))
-coord.names <- c(coord.names, "main.box")
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = if(box.notch == FALSE){X_BOX_INF}else{X_NOTCH_INF}, xend = if(box.notch == FALSE){X_BOX_SUP}else{X_NOTCH_SUP}, y = MEDIAN, yend = MEDIAN, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size * 2, alpha = box.alpha)) # 
-coord.names <- c(coord.names, "median")
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X, xend = X, y = QUART3, yend = MAX, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size, alpha = box.alpha)) # 
-coord.names <- c(coord.names, "sup.whisker")
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X, xend = X, y = QUART1, yend = MIN, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size, alpha = box.alpha)) # 
-coord.names <- c(coord.names, "inf.whisker")
-if(box.whisker.width > 0){
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X_WHISK_INF, xend = X_WHISK_SUP, y = MAX, yend = MAX, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size, alpha = box.alpha, lineend = "round")) # 
-coord.names <- c(coord.names, "sup.whisker.edge")
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X_WHISK_INF, xend = X_WHISK_SUP, y = MIN, yend = MIN, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size, alpha = box.alpha, lineend = "round")) # 
-coord.names <- c(coord.names, "inf.whisker.edge")
-}
-if(box.mean == TRUE){
-# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(data = stat, mapping = ggplot2::aes_string(x = "X", y = "MEAN", group = categ[length(categ)]), shape = 23, stroke = box.line.size * 2, color = stat$COLOR, size = box.mean.size, fill = NA, alpha = box.alpha)) # 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::geom_path(
-data = tempo.diamon.mean, 
-mapping = ggplot2::aes(x = X, y = Y, group = GROUP), 
-color = tempo.diamon.mean[, "COLOR"], 
-size = box.line.size * 2, 
-alpha = box.alpha, 
-lineend = "round", 
-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 = categ.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 = categ.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
-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
-tempo.warn <- paste0("(", warn.count,") FROM FUNCTION ", function.name, ": GRAPHIC DEVICE USED ON A WINDOWS SYSTEM ->\nTRANSPARENCY OF THE LINES IS INACTIVATED IN THE LEGEND TO PREVENT A WINDOWS DEPENDENT BUG (SEE https://github.com/tidyverse/ggplot2/issues/2452)\nTO OVERCOME THIS ON WINDOWS, USE ANOTHER DEVICE (pdf() FOR INSTANCE)")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-# end boxplot display (if box.fill = FALSE, otherwise, already plotted above)
-
-
-
-
-# stat display
-# 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
-coord.names <- c(coord.names, "stat.display")
-}else if(stat.disp == "above"){
-# stat coordinates
-if( ! is.null(dot.color)){ # for text just above max dot
-if(dot.tidy == FALSE){
-tempo.stat.ini <- dot.coord.rd3
-}else if(dot.tidy == TRUE){
-tempo.stat.ini <- dot.coord.tidy3
-tempo.stat.ini$x.y <- tempo.stat.ini$x.x # this is just to be able to use tempo.stat.ini$x.y for untidy or tidy dots (remember that dot.coord.tidy3$x.y is not good, see above)
-}
-stat.coord1 <- 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 = min, na.rm = TRUE)
-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
-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)
-}
-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
-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)
-}
-}
-# end stat coordinates
-# stat display
-# performed twice: first for y values >=0, then y values < 0, because only a single value allowed for hjust anf vjust
-if(stat.disp.mean == FALSE){
-tempo.log.high <- if(diff(y.lim) > 0){box.coord$middle >= 0}else{box.coord$middle < 0}
-tempo.log.low <- if(diff(y.lim) > 0){box.coord$middle < 0}else{box.coord$middle >= 0}
-}else{
-tempo.log.high <- if(diff(y.lim) > 0){box.coord$MEAN >= 0}else{box.coord$MEAN < 0}
-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
-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
-}
-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
-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
-}
-# end stat display
-coord.names <- c(coord.names, "stat.display.positive", "stat.display.negative")
-}else{
-tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 9\n\n============\n\n")
-stop(tempo.cat)
-}
-}
-# end stat display
-
-
-
-# y scale management (cannot be before dot plot management)
-# the rescaling aspect is complicated and not intuitive. See:
-# explaination: https://github.com/tidyverse/ggplot2/issues/3948
-# the oob argument of scale_y_continuous() https://ggplot2.tidyverse.org/reference/scale_continuous.html
-# see also https://github.com/rstudio/cheatsheets/blob/master/data-visualization-2.1.pdf
-# secondary ticks
-final.plot <- ggplot2::ggplot_build(eval(parse(text = paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), ' + if(vertical == TRUE){ggplot2::coord_cartesian(ylim = if(diff(y.lim) < 0){rev(y.lim)}else{y.lim})}else{ggplot2::coord_flip(ylim = y.lim)}'))))
-tempo.coord <- final.plot$layout$panel_params[[1]]
-# 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")
-if(y.log != "no"){ # integer main ticks for log2 and log10
-tempo.scale <- (as.integer(min(y.lim, na.rm = TRUE)) - 1):(as.integer(max(y.lim, na.rm = TRUE)) + 1)
-}else{
-tempo <- if(is.null(attributes(tempo.coord$y$breaks))){tempo.coord$y$breaks}else{unlist(attributes(tempo.coord$y$breaks))}
-if(all(is.na(tempo))){
-tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nONLY NA IN tempo.coord$y$breaks\n\n============\n\n")
-stop(tempo.cat)
-}
-tempo.scale <- fun_scale(lim = y.lim, n = ifelse(is.null(y.tick.nb), length(tempo[ ! is.na(tempo)]), y.tick.nb)) # in ggplot 3.3.0, tempo.coord$y.major_source replaced by tempo.coord$y$breaks. If fact: n = ifelse(is.null(y.tick.nb), length(tempo[ ! is.na(tempo)]), y.tick.nb)) replaced by n = ifelse(is.null(y.tick.nb), 4, y.tick.nb))
-}
-y.second.tick.values <- NULL
-y.second.tick.pos <- NULL
-if(y.log != "no"){
-tempo <- fun_inter_ticks(lim = y.lim, log = y.log)
-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
-# 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")
-}else if(( ! is.null(y.second.tick.nb)) & y.log == "no"){
-# if(y.second.tick.nb > 0){ #inactivated because already checked before
-tempo <- fun_inter_ticks(lim = y.lim, log = y.log, breaks = tempo.scale, n = y.second.tick.nb)
-y.second.tick.values <- tempo$values
-y.second.tick.pos <- tempo$coordinates
-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 = if(vertical == TRUE){tempo.coord$x.range[1]}else{tempo.coord$y.range[1]}, 
-xend = if(vertical == TRUE){tempo.coord$x.range[1] + diff(tempo.coord$x.range) / 80}else{tempo.coord$y.range[1] + diff(tempo.coord$y.range) / 80}
-))
-coord.names <- c(coord.names, "y.second.tick.positions")
-}
-# end secondary ticks
-# for the ggplot2 bug with y.log, this does not work: eval(parse(text = ifelse(vertical == FALSE & y.log == "log10", "ggplot2::scale_x_continuous", "ggplot2::scale_y_continuous")))
-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)}, 
-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, 
-trans = ifelse(diff(y.lim) < 0, "reverse", "identity") # equivalent to ggplot2::scale_y_reverse() but create the problem of y-axis label disappearance with y.lim decreasing. Thus, do not use. Use ylim() below and after this
-))
-if(vertical == TRUE){
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::coord_cartesian(ylim = y.lim)) #problem of ggplot2::ylim() is taht it redraw new breaks # coord_cartesian(ylim = y.lim)) not used because bug -> y-axis label disappearance with y.lim decreasing # clip = "off" to have secondary ticks outside plot region does not work
-}else{
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::coord_flip(ylim = y.lim)) # clip = "off" to have secondary ticks outside plot region does not work # create the problem of y-axis label disappearance with y.lim decreasing
-
-}
-# end y scale management (cannot be before dot plot management)
-
-
-# legend management
-if( ! is.null(legend.width)){
-legend.final <- fun_gg_get_legend(ggplot_built = final.plot, fun.name = function.name, lib.path = lib.path) # get legend
-}
-# end legend management
-
-
-# drawing
-fin.plot <- suppressMessages(suppressWarnings(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + ")))))
-if(plot == TRUE){
-# following lines inactivated because of problem in warn.recov and message.recov
-# assign("env_fun_get_message", new.env())
-# assign("tempo.gg.name", tempo.gg.name, envir = env_fun_get_message)
-# assign("tempo.gg.count", tempo.gg.count, envir = env_fun_get_message)
-# assign("add", add, envir = env_fun_get_message)
-# two next line: for the moment, I cannot prevent the warning printing
-# warn.recov <- fun_get_message(paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), if(is.null(add)){NULL}else{add}), kind = "warning", header = FALSE, print.no = FALSE, env = env_fun_get_message) # for recovering warnings printed by ggplot() functions
-# message.recov <- fun_get_message('print(eval(parse(text = paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), if(is.null(add)){NULL}else{add}))))', kind = "message", header = FALSE, print.no = FALSE, env = env_fun_get_message) # for recovering messages printed by ggplot() functions
-# if( ! (return == TRUE & return.ggplot == TRUE)){ # because return() plots when return.ggplot is TRUE # finally not used -> see return.ggplot description
-if(is.null(legend.width)){
-suppressMessages(suppressWarnings(print(fin.plot)))
-}else{
-suppressMessages(suppressWarnings(gridExtra::grid.arrange(fin.plot, legend.final, ncol=2, widths=c(1, legend.width))))
-}
-# }
-# suppressMessages(suppressWarnings(print(eval(parse(text = paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), if(is.null(add)){NULL}else{add}))))))
-}else{
-# following lines inactivated because of problem in warn.recov and message.recov
-# message.recov <- NULL
-# warn.recov <- NULL
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") PLOT NOT SHOWN AS REQUESTED")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end drawing
-
-
-
-# outputs
-# following lines inactivated because of problem in warn.recov and message.recov
-# if( ! (is.null(warn) & is.null(warn.recov) & is.null(message.recov))){
-# warn <- paste0(warn, "\n\n", if(length(warn.recov) > 0 | length(message.recov) > 0){paste0(paste0("MESSAGES FROM ggplot2 FUNCTIONS: ", ifelse( ! is.null(warn.recov), unique(message.recov), ""), ifelse( ! is.null(message.recov), unique(message.recov), ""), collapse = "\n\n"), "\n\n")})
-# }else if( ! (is.null(warn) & is.null(warn.recov)) & is.null(message.recov)){
-# warn <- paste0(warn, "\n\n", if(length(warn.recov) > 0){paste0(paste0("MESSAGES FROM ggplot2 FUNCTIONS: ", unique(warn.recov), collapse = "\n\n"), "\n\n")})
-# }else if( ! (is.null(warn) & is.null(message.recov)) & is.null(warn.recov)){
-# warn <- paste0(warn, "\n\n", if(length(message.recov) > 0){paste0(paste0("MESSAGES FROM ggplot2 FUNCTIONS: ", unique(message.recov), collapse = "\n\n"), "\n\n")})
-# }
-if(warn.print == TRUE & ! is.null(warn)){
-warning(paste0("FROM ", function.name, " FUNCTION:\n\n", warn), call. = FALSE) # to recover the warning messages, use return = TRUE
-}
-if(return == TRUE){
-tempo.output <- ggplot2::ggplot_build(fin.plot)
-tempo.output$data <- tempo.output$data[-1] # remove the first data because corresponds to the initial empty boxplot
-if(length(tempo.output$data) != length(coord.names)){
-tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nlength(tempo.output$data) AND length(coord.names) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
-stop(tempo.cat)
-}else{
-names(tempo.output$data) <- coord.names
-tempo.output$data <- tempo.output$data[coord.names != "bad_remove"]
-}
-tempo <- tempo.output$layout$panel_params[[1]]
-output <- list(
-data = data1, 
-stat = stat, 
-removed.row.nb = removed.row.nb, 
-removed.rows = removed.rows, 
-plot = c(tempo.output$data, y.second.tick.values = list(y.second.tick.values)), 
-panel = facet.categ, 
-axes = list(
-x.range = tempo$x.range, 
-x.labels = if(is.null(attributes(tempo$x$breaks))){tempo$x$breaks}else{tempo$x$scale$get_labels()}, # is.null(attributes(tempo$x$breaks)) test if it is number (TRUE) or character (FALSE)
-x.positions = if(is.null(attributes(tempo$x$breaks))){tempo$x$breaks}else{unlist(attributes(tempo$x$breaks))}, 
-y.range = tempo$y.range, 
-y.labels = if(is.null(attributes(tempo$y$breaks))){tempo$y$breaks}else{tempo$y$scale$get_labels()}, 
-y.positions = if(is.null(attributes(tempo$y$breaks))){tempo$y$breaks}else{unlist(attributes(tempo$y$breaks))}
-), 
-warn = paste0("\n", warn, "\n\n"), 
-ggplot = if(return.ggplot == TRUE){fin.plot}else{NULL} # fin.plot plots the graph if return == TRUE
-)
-return(output) # this plots the graph if return.ggplot is TRUE and if no assignment
-}
-# end outputs
-# end main code
-}
-
-
-
-
-
-# add return.ggplot = FALSE, from boxplot
-# add facet from boxplot if data1 is a dataframe or list of length 1
-# error to fix: 1) accept integers as color, 2) fun_scale but xhuld be ok when importing the job from boxplot
-# inter.tick x and y do not work: see labbook CL
-# change the rule of categ
-# add dot.size and line.size as list except if one value, idem color and geom and alpha
-# http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/76-add-p-values-and-significance-levels-to-ggplots/
-# geom_step. Add "hv" or "vh", see also https://stackoverflow.com/questions/42633374/how-to-get-a-step-plot-using-geom-step-with-different-colors-for-the-segments
-# ERROR IN fun_scale(): lim ARGUMENT HAS A NULL RANGE (2 IDENTICAL VALUES) : remove this error if x.lim is not NULL range -> draw a line of dots
-# add categ.order
-# check that x and y are numeric ?
-# add categ.class.order replacing levels(factor(data1[[i1]][, categ[[i1]]])), thus check data1[[i1]][, categ[[i1]]]
-# for the length of ticks see ?unit in grid package and https://stackoverflow.com/questions/17311917/ggplot2-the-unit-of-size
-
-# Problem of 1: Ignoring unknown parameters: lineend
-# problem of 2nd tick values not printed
-
-
-
-fun_gg_scatter <- function(
-data1, 
-x, 
-y, 
-categ = NULL, 
-legend.name = NULL, 
-color = NULL, 
-geom = "geom_point", 
-alpha = 0.5, 
-dot.size = 2, 
-line.size = 0.5, 
-x.lim = NULL, 
-x.lab = NULL, 
-x.log = "no", 
-x.tick.nb = NULL, 
-x.second.tick.nb = NULL, 
-x.include.zero = FALSE, 
-x.left.extra.margin = 0.05, 
-x.right.extra.margin = 0.05, 
-x.text.angle = 0, 
-y.lim = NULL, 
-y.lab = 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, 
-y.text.angle = 0, 
-text.size = 12, 
-title = "", 
-title.text.size = 12, 
-legend.show = TRUE, 
-legend.width = 0.5, 
-raster = FALSE, 
-raster.ratio = 1, 
-raster.threshold = NULL, 
-article = TRUE, 
-grid = FALSE, 
-return = FALSE, 
-plot = TRUE, 
-add = NULL, 
-warn.print = TRUE, 
-lib.path = NULL
-){
-# AIM
-# ggplot2 scatterplot with the possibility to overlay dots from up to 3 different data frames (-> three different legends) and lines from up to 3 different data frames (-> three different legends) -> up to 6 overlays totally
-# 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)
-# ARGUMENTS
-# data1: a dataframe compatible with ggplot2, or a list of data frames
-# x: character string of the data1 column name for x-axis. If data1 is a list, then x must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Write NULL for each "geom_hline" in geom argument
-# y: character string of the data1 column name for y-axis. If data1 is a list, then y must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Write NULL for each "geom_vline" in geom argument
-# categ: character string of the data1 column name for categories. If categ == NULL, no categories -> no legend displayed. If data1 is a list, then categ must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Some of the list compartments can be NULL, and other not
-# legend.name: character string of the legend title. If legend.name == NULL and categ != NULL, then legend.name <- categ. If data1 is a list, then legend.name must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Some of the list compartments can be NULL, and other not # add with other legends below
-# color: vector of character string of the colors of categ arguments. If color == NULL, default colors of ggplot2. If non null, it can be either: (1) a single color string (all the dots of the corresponding data1 will have this color, whatever categ NULL or not), (2) if categ non null, a vector of string colors, one for each class of categ (each color will be associated according to the alphabetical order of categ classes), (3) if categ non null, 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 categ and a single class of categ 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 color. If data1 is a list, then color must be a list of character strings or integers, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Some of the compartments can be NULL. In that case, a different grey color will be used for each NULL compartment
-# geom: character string of the kind of plot. Either "geom_point" (scatterplot), "geom_line" (coordinates plotted then line connection from the lowest to highest coordinates), "geom_path" (line connection respecting the order in data1), "geom_step" line connection respecting the order in data1 but drawn in steps), "geom_hline" (horizontal line) or "geom_vline" (vertical line). BEWARE: for "geom_hline" or "geom_vline", (1) x or y argument must be NULL, respectively, (2) x.lim or y.lim argument must NOT be NULL, respectively, if only these kind of lines are drawn (if other geom present, then x.lim = NULL and y.lim = NULL will generate x.lim and y.lim defined by these other geom, which is not possible with "geom_hline" or "geom_vline"), (3) the function will draw n lines for n values in the x argument column name of the data1 data frame. If several colors required, the categ argument must be specified and the corresponding categ column name must exist in the data1 data frame with a different class name for each row. If data1 is a list, then geom must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc.
-# alpha: numeric value (from 0 to 1) of transparency. If data1 is a list, then alpha must be a list of numeric value, of same size as data1, with compartment 1 related to compartment 1 of data1, etc.
-# dot.size: numeric value of point size
-# line.size: numeric value of line size
-# x.lim: 2 numeric values for x-axis range. If NULL, range of x in data1. Order of the 2 values matters (for inverted axis). BEWARE: values of the x.lim must be already in the corresponding log if x.log argument is not "no" (see below)
-# x.lab: a character string or expression for x-axis legend. If NULL, x of the first data frame in data1. Warning message if the elements in x are different between data frames in data1
-# x.log: either "no", "log2" (values in the x argument column of the data1 data frame will be log2 transformed and x-axis will be log2 scaled) or "log10" (values in the x argument column of the data1 data frame will be log10 transformed and x-axis will be log10 scaled)
-# x.tick.nb: approximate number of desired label values on the x-axis (n argument of the fun_scale() function). If NULL, the number is managed by ggplot2
-# x.second.tick.nb: number of desired secondary ticks between main ticks. Ignored if x.log is other than "no" (log scale plotted). Use argument return = TRUE and see $plot$x.second.tick.values to have the values associated to secondary ticks. IF NULL, no secondary ticks
-# x.include.zero: logical. Does x.lim range include 0? Ignored if x.log is "log2" or "log10"
-# x.left.extra.margin: single proportion (between 0 and 1) indicating if extra margins must be added to x.lim. If different from 0, add the range of the axis * x.left.extra.margin (e.g., abs(x.lim[2] - x.lim[1]) * x.left.extra.margin) to the left of x-axis
-# x.right.extra.margin: idem as x.left.extra.margin but to the bottom of x-axis
-# x.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.
-# y.lim: 2 numeric values for y-axis range. If NULL, range of y in data1. Order of the 2 values matters (for inverted axis). BEWARE: values of the y.lim must be already in the corresponding log if y.log argument is not "no" (see below)
-# y.lab: a character string or expression for y-axis legend. If NULL, y of the first data frame in data1. Warning message if the elements in y are different between data frames in data1
-# 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)
-# y.tick.nb: approximate number of desired label values on the y-axis (n argument of the fun_scale() function). If NULL, the number is managed by ggplot2
-# 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.left.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.left.extra.margin (e.g., abs(y.lim[2] - y.lim[1]) * y.left.extra.margin) to the left of y-axis
-# y.right.extra.margin: idem as y.left.extra.margin but to the bottom of y-axis
-# y.text.angle: integer value of the text angle for the y-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.
-# text.size: numeric value of the size of the (1) axis numbers and axis legends and (2) texts in the graphic legend
-# title: character string of the graph title
-# title.text.size: numeric value of the title size (in points)
-# legend.show: logical. Show legend? Ignored if categ argument is NULL, because this already generate no legend
-# 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. If categ argument is NULL or legend.show argument is FALSE, an empty legend space is created, which can be useful when desiring graphs of exactly the same width, whatever they have legends or not. 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
-# raster: logical. Dots in raster mode? If FALSE, dots from each geom_point from geom argument are in vectorial mode (bigger pdf and long to display if millions of dots). If TRUE, dots from each geom_point from geom argument are in matricial mode (smaller pdf and easy display if millions of dots, but long to generate the layer). If TRUE, the raster.ratio argument is used to avoid an ellipsoid representation of the dots. If TRUE, solve the transparency problem with some GUI. Overriden by raster.threshold if non NULL
-# raster.ratio: single numeric value indicating the height / width ratio of the graphic device used (for instance provided by the $dim of the output of the fun_open() function). The default value is 1 because by default R opens a square graphic device. But this argument has to be set when using other device dimensions. Ignored if raster == FALSE
-# raster.threshold: positive integer value indicating the limit of the dot number above which geom_point from geom argument switch from vectorial mode to raster mode (see the raster argument). If any layer is raster, then raster.ratio argument is used to avoid an ellipsoid representation of the dots. Inactive the raster argument if non NULL
-# 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 and vertical lines in the background to better read the values? Not considered if article == FALSE
-# return: logical. Return the graph info?
-# 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()"
-# 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 TRUE, no print if no warning message generated
-# lib.path: character string indicating the absolute path of the required packages (see below). if NULL, the function will use the R library default folders
-# REQUIRED PACKAGES
-# ggplot2
-# if raster plots are drawn (see the raster and raster.threshold arguments):
-# Cairo
-# grid
-# REQUIRED FUNCTIONS FROM CUTE_LITTLE_R_FUNCTION
-# fun_gg_empty_graph()
-# fun_gg_palette()
-# fun_gg_point_rast()
-# fun_pack()
-# fun_check()
-# fun_round()
-# fun_scale()
-# fun_inter_ticks()
-# RETURN
-# a scatter plot is plot argument is TRUE
-# a list of the graph info if return argument is TRUE:
-# $data: the graphic info coordinates
-# $removed.row.nb: a list of the removed rows numbers in data frames (because of NA). NULL if no row removed
-# $removed.rows: a list of the removed rows in data frames (because of NA). NULL if no row removed
-# $axes: the x-axis and y-axis info
-# $warn: the warning messages. Use cat() for proper display. NULL if no warning
-# EXAMPLES
-# DEBUGGING
-# set.seed(1) ; obs1 <- data.frame(km = rnorm(1000, 10, 3), time = rnorm(1000, 10, 3), group1 = rep(c("A1", "A2"), 500)) ; obs2 <-data.frame(km = rnorm(1000, 15, 3), time = rnorm(1000, 15, 3), group2 = rep(c("G1", "G2"), 500)) ; set.seed(NULL) ; obs1$km[2:3] <- NA ; data1 = list(L1 = obs1, L2 = obs2) ; x = list(L1 = "km", L2 = "km") ; y = list(L1 = "time", L2 = "time") ; categ = list(L1 = "group1", L2 = "group2") ; legend.name = NULL ; color = list(L1 = 4:5, L2 = 7:8) ; geom = list(L1 = "geom_point", L2 = "geom_point") ; alpha = list(L1 = 0.5, L2 = 0.5) ; dot.size = 3 ; line.size = 0.5 ; x.lim = NULL ; x.lab = "KM" ; x.log = "no" ; x.tick.nb = 10 ; x.second.tick.nb = 1 ; x.left.extra.margin = 0 ; x.right.extra.margin = 0 ; y.lim = c(1, 25) ; y.lab = "TIME (s)" ; y.log = "no" ; y.tick.nb = 5 ; y.second.tick.nb = 2 ; y.top.extra.margin = 0 ; y.bottom.extra.margin = 0 ; x.include.zero = TRUE ; y.include.zero = TRUE ; x.text.angle = 0 ; y.text.angle = 0 ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.show = TRUE ; legend.width = 0.5 ; article = FALSE ; grid = FALSE ; raster = TRUE ; raster.ratio = 1 ; raster.threshold = NULL ; return = FALSE ; plot = TRUE ; add = NULL ; warn.print = TRUE ; lib.path = NULL
-# data1 <- list(L1 = data.frame(a = 1:6, b = (1:6)^2, group = c("A", "A", "A", "B", "B", "B")), L2 = data.frame(a = (1:6)*2, b = ((1:6)^2)*2, group = c("A1", "A1", "A1", "B1", "B1", "B1")), L3 = data.frame(a = (1:6)*3, b = ((1:6)^2)*3, group3 = c("A4", "A5", "A6", "A7", "B4", "B5"))) ; data1$L1$a[3] <- NA ; data1$L1$group[5] <- NA ; data1$L3$group3[4] <- NA ; data1 ; x = list(L1 = names(data1$L1)[1], L2 = names(data1$L2)[1], L3 = NULL) ; y = list(L1 = names(data1$L1)[2], L2 = names(data1$L2)[2], L3 = "a") ; categ = list(L1 = "group", L2 = NULL, L3 = NULL) ; legend.name = NULL ; color = NULL ; geom = list(L1 = "geom_point", L2 = "geom_point", L3 = "geom_hline") ; alpha = list(L1 = 0.5, L2 = 0.5, L3 = 0.5) ; dot.size = 1 ; line.size = 0.5 ; x.lim = c(14, 4) ; x.lab = NULL ; x.log = "log10" ; x.tick.nb = 10 ; x.second.tick.nb = 4 ; x.left.extra.margin = 0 ; x.right.extra.margin = 0 ; y.lim = c(60, 5) ; y.lab = NULL ; y.log = "log10" ; y.tick.nb = 10 ; y.second.tick.nb = 2 ; y.top.extra.margin = 0 ; y.bottom.extra.margin = 0  ; x.include.zero = TRUE ; y.include.zero = TRUE ; x.text.angle = 0 ; y.text.angle = 0 ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.show = TRUE ; legend.width = 0.5 ; article = TRUE ; grid = FALSE ; raster = FALSE ; raster.ratio = 1 ; raster.threshold = NULL ; return = TRUE ; plot = TRUE ; add = NULL ; warn.print = TRUE ; lib.path = NULL
-# data1 <- data.frame(km = 2:7, time = (2:7)^2, group = c("A", "A", "A", "B", "B", "B")) ; data1 ; x = "km"; y = "time"; categ = "group"; legend.name = NULL ; color = NULL ; geom = "geom_point"; alpha = 0.1 ; dot.size = 1 ; line.size = 0.5 ; x.lim = c(1,10) ; x.lab = NULL ; x.log = "log10" ; x.tick.nb = 10 ; x.second.tick.nb = 4 ; x.left.extra.margin = 0 ; x.right.extra.margin = 0 ; y.lim = NULL ; y.lab = expression(paste("TIME (", 10^-20, " s)")) ; y.log = "log10" ; y.tick.nb = 10 ; y.second.tick.nb = 2 ; y.top.extra.margin = 0 ; y.bottom.extra.margin = 0  ; x.include.zero = TRUE ; y.include.zero = TRUE ; x.text.angle = 0 ; y.text.angle = 0 ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.show = TRUE ; legend.width = 0.5 ; article = FALSE ; grid = FALSE ; raster = FALSE ; raster.ratio = 1 ; raster.threshold = NULL ; return = FALSE ; plot = TRUE ; add = NULL ; warn.print = TRUE ; lib.path = NULL
-# function name
-function.name <- paste0(as.list(match.call(expand.dots=FALSE))[[1]], "()")
-# end function name
-# required function checking
-req.function <- c(
-"fun_check", 
-"fun_gg_just", 
-"fun_gg_empty_graph", 
-"fun_gg_palette", 
-"fun_gg_point_rast", 
-"fun_round", 
-"fun_pack", 
-"fun_scale", 
-"fun_inter_ticks"
-)
-for(i1 in req.function){
-if(length(find(i1, mode = "function")) == 0){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": REQUIRED ", i1, "() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-stop(tempo.cat)
-}
-}
-# end required function checking
-# reserved words to avoid bugs (used in this function)
-reserved.words <- c("fake_x", "fake_y", "fake_categ", "color")
-# end reserved words to avoid bugs (used in this function)
-# primary argument checking
-arg.check <- NULL #
-text.check <- NULL #
-checked.arg.names <- NULL # for function debbuging: used by r_debugging_tools
-ee <- expression(arg.check <- c(arg.check, tempo$problem) , text.check <- c(text.check, tempo$text) , checked.arg.names <- c(checked.arg.names, tempo$fun.name))
-tempo1 <- fun_check(data = data1, class = "data.frame", na.contain = TRUE, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = data1, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, ": data1 ARGUMENT MUST BE A DATA FRAME OR A LIST OF DATA FRAMES")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-if( ! is.null(x)){
-tempo1 <- fun_check(data = x, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = x, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, ": x ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(y)){
-tempo1 <- fun_check(data = y, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = y, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, ": y ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(categ)){
-tempo1 <- fun_check(data = categ, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = categ, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, ": categ ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(legend.name)){
-tempo1 <- fun_check(data = legend.name, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = legend.name, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, ": legend.name ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(color)){
-tempo1 <- fun_check(data = color, class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = color, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, ": color ARGUMENT MUST BE A VECTOR OF CHARACTER STRING OR A LIST OF CHARACTER VECTORS")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(geom)){
-tempo1 <- fun_check(data = geom, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = geom, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, ": geom ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-tempo1 <- fun_check(data = alpha, prop = TRUE, length = 1, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = alpha, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("ERROR IN ", function.name, ": alpha ARGUMENT MUST BE A SINGLE NUMERIC VALUE BETWEEN 0 AND 1 OR A LIST OF SUCH VALUES")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-tempo <- fun_check(data = dot.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = line.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-if( ! is.null(x.lim)){
-tempo <- fun_check(data = x.lim, class = "vector", mode = "numeric", length = 2, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & any(x.lim %in% c(Inf, -Inf))){
-tempo.cat <- paste0("ERROR IN ", function.name, ": x.lim ARGUMENT CANNOT CONTAIN -Inf OR Inf VALUES")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(x.lab)){
-if(all(class(x.lab) %in% "expression")){ # to deal with math symbols
-tempo <- fun_check(data = x.lab, class = "expression", length = 1, fun.name = function.name) ; eval(ee)
-}else{
-tempo <- fun_check(data = x.lab, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-}
-tempo <- fun_check(data = x.log, options = c("no", "log2", "log10"), length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(x.tick.nb)){
-tempo <- fun_check(data = x.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & x.tick.nb < 0){
-tempo.cat <- paste0("ERROR IN ", function.name, ": x.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(x.second.tick.nb)){
-tempo <- fun_check(data = x.second.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & x.second.tick.nb <= 0){
-tempo.cat <- paste0("ERROR IN ", function.name, ": x.second.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-tempo <- fun_check(data = x.include.zero, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = x.left.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = x.right.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = x.text.angle, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, neg.values = TRUE, fun.name = function.name) ; eval(ee)
-if( ! is.null(y.lim)){
-tempo <- fun_check(data = y.lim, class = "vector", mode = "numeric", length = 2, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & any(y.lim %in% c(Inf, -Inf))){
-tempo.cat <- paste0("ERROR IN ", function.name, ": y.lim ARGUMENT CANNOT CONTAIN -Inf OR Inf VALUES")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(y.lab)){
-if(all(class(y.lab) %in% "expression")){ # to deal with math symbols
-tempo <- fun_check(data = y.lab, class = "expression", length = 1, fun.name = function.name) ; eval(ee)
-}else{
-tempo <- fun_check(data = y.lab, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-}
-tempo <- fun_check(data = y.log, options = c("no", "log2", "log10"), length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(y.tick.nb)){
-tempo <- fun_check(data = y.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & y.tick.nb < 0){
-tempo.cat <- paste0("ERROR IN ", function.name, ": y.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-if( ! is.null(y.second.tick.nb)){
-tempo <- fun_check(data = y.second.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE & y.second.tick.nb <= 0){
-tempo.cat <- paste0("ERROR IN ", function.name, ": y.second.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-tempo <- fun_check(data = y.include.zero, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = y.top.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = y.bottom.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = y.text.angle, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, neg.values = TRUE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = text.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = title, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = title.text.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = legend.show, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(legend.width)){
-tempo <- fun_check(data = legend.width, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-}
-tempo <- fun_check(data = raster, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = raster.ratio, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
-if( ! is.null(raster.threshold)){
-tempo <- fun_check(data = raster.threshold, class = "vector", typeof = "integer", neg.values = FALSE, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
-}
-tempo <- fun_check(data = article, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = grid, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = return, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = plot, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(add)){
-tempo <- fun_check(data = add, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-tempo <- fun_check(data = warn.print, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
-if( ! is.null(lib.path)){
-tempo <- fun_check(data = lib.path, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
-if(tempo$problem == FALSE){
-if( ! all(dir.exists(lib.path))){ # separation to avoid the problem of tempo$problem == FALSE and lib.path == NA
-tempo.cat <- paste0("ERROR IN ", function.name, ": DIRECTORY PATH INDICATED IN THE lib.path ARGUMENT DOES NOT EXISTS:\n", paste(lib.path, collapse = "\n"))
-text.check <- c(text.check, tempo.cat)
-arg.check <- c(arg.check, TRUE)
-}
-}
-}
-if(any(arg.check) == TRUE){
-stop(paste0("\n\n================\n\n", paste(text.check[arg.check], collapse = "\n"), "\n\n================\n\n"), call. = FALSE) #
-}
-# source("C:/Users/Gael/Documents/Git_versions_to_use/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_check_dev)) # activate this line and use the function (with no arguments left as NULL) to check arguments status and if they have been checked using fun_check()
-# end primary argument checking
-
-
-
-
-
-
-
-
-# second round of checking and data preparation
-# check list lengths (and names of data1 compartments if non name present)
-warn <- NULL
-warn.count <- 0
-if(all(class(data1) == "list")){
-if(length(data1) > 6){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": data1 ARGUMENT MUST BE A LIST OF 6 DATA FRAMES MAXIMUM (6 OVERLAYS MAX)\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-if(is.null(names(data1))){
-names(data1) <- paste0("L", 1:length(data1))
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL NAME COMPARTMENT OF data1 LIST -> NAMES RESPECTIVELY ATTRIBUTED TO EACH COMPARTMENT:\n", paste(names(data1), collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-if( ! is.null(x)){
-if( ! (all(class(x) == "list") & length(data1) == length(x))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": x ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}else{
-x <- vector("list", length(data1))
-}
-if( ! is.null(y)){
-if( ! (all(class(y) == "list") & length(data1) == length(y))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": y ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}else{
-y <- vector("list", length(data1))
-}
-if( ! is.null(categ)){
-if( ! (all(class(categ) == "list") & length(data1) == length(categ))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": categ ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-if( ! is.null(legend.name)){
-if( ! (all(class(legend.name) == "list") & length(data1) == length(legend.name))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": legend.name ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-if( ! is.null(color)){
-if( ! (all(class(color) == "list") & length(data1) == length(color))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": color ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-if( ! (all(class(geom) == "list") & length(data1) == length(geom))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": geom ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-if( ! (all(class(alpha) == "list") & length(data1) == length(alpha))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": alpha ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-# end check list lengths (and names of data1 compartments if non name present)
-# conversion into lists
-if(all(is.data.frame(data1))){
-data1 <- list(L1 = data1)
-if(all(class(x) == "list")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": x ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-x <- list(L1 = x)
-}
-if(all(class(y) == "list")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": y ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-y <- list(L1 = y)
-}
-if( ! is.null(categ)){
-if(all(class(categ) == "list")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": categ ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-categ <- list(L1 = categ)
-}
-}
-if( ! is.null(legend.name)){
-if(all(class(legend.name) == "list")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": legend.name ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-legend.name <- list(L1 = legend.name)
-}
-}
-if( ! is.null(color)){
-if(all(class(color) == "list")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": color ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-color <- list(L1 = color)
-}
-}
-if(all(class(geom) == "list")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": geom ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-geom <- list(L1 = geom)
-}
-if(all(class(alpha) == "list")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": alpha ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-alpha <- list(L1 = alpha)
-}
-}else if( ! all(sapply(data1, FUN = "class") == "data.frame")){ # if not a data frame, data1 can only be a list, as tested above
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": data1 ARGUMENT MUST BE A DATA FRAME OR A LIST OF DATA FRAMES\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-# data, x, y, geom, alpha are list now
-# if non NULL, categ, legend.name, color are list now
-# end conversion into lists
-# legend name filling
-if(is.null(legend.name) & ! is.null(categ)){
-legend.name <- categ
-}else if(is.null(legend.name) & is.null(categ)){
-legend.name <- vector("list", length(data1)) # null list
-}
-# legend.name not NULL anymore (list)
-# end legend name filling
-# ini categ for legend display
-fin.lg.disp <- vector("list", 6) # will be used at the end to display or not legends
-fin.lg.disp[] <- FALSE
-legend.disp <- vector("list", length(data1))
-if(is.null(categ) | legend.show == FALSE){
-legend.disp[] <- FALSE
-}else{
-for(i2 in 1:length(data1)){
-if(is.null(categ[[i2]])){
-legend.disp[[i2]] <- FALSE
-}else{
-legend.disp[[i2]] <- TRUE
-}
-}
-}
-# end ini categ for legend display
-# integer colors into gg_palette
-tempo.check.color <- NULL
-for(i1 in 1:length(data1)){
-if(any(is.na(color[[i1]]))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": color ARGUMENT CANNOT CONTAIN NA\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-tempo.check.color <- c(tempo.check.color, fun_check(data = color[[i1]], data.name = ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem)
-}
-tempo.check.color <- ! tempo.check.color # invert TRUE and FALSE because if integer, then problem = FALSE
-if(any(tempo.check.color == TRUE)){ # convert integers into colors
-tempo.integer <- unlist(color[tempo.check.color])
-tempo.color <- fun_gg_palette(max(tempo.integer, na.rm = TRUE))
-for(i1 in 1:length(data1)){
-if(tempo.check.color[i1] == TRUE){
-color[[i1]] <-tempo.color[color[[i1]]]
-}
-}
-}
-# end integer colors into gg_palette
-
-
-# second round of argument checking
-compart.null.color <- 0 # will be used to attribute a color when color is non NULL but a compartment of color is NULL
-data1.ini <- data1 # to report NA removal
-removed.row.nb <- vector("list", length = length(data1)) # to report NA removal
-removed.rows <- vector("list", length = length(data1)) # to report NA removal
-for(i1 in 1:length(data1)){
-tempo <- fun_check(data = data1[[i1]], data.name = ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "data.frame", na.contain = TRUE, fun.name = function.name) ; eval(ee)
-# reserved word checking
-if(any(names(data1[[i1]]) %in% reserved.words)){ # I do not use fun_name_change() because cannot control y before creating "fake_y". But ok because reserved are not that common
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": COLUMN NAMES OF ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " ARGUMENT CANNOT BE ONE OF THESE WORDS\n", paste(reserved.words, collapse = " "), "\nTHESE ARE RESERVED FOR THE ", function.name, " FUNCTION\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-# end reserved word checking
-# check of geom now because required for y argument
-tempo <- fun_check(data = geom[[i1]], data.name = ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), options = c("geom_point", "geom_line", "geom_path", "geom_step", "geom_hline", "geom_vline"), length = 1, fun.name = function.name) ; eval(ee)
-# end check of geom now because required for y argument
-if(is.null(x[[i1]])){
-if(all(geom[[i1]] != "geom_hline")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": x ARGUMENT CANNOT BE NULL EXCEPT IF ", ifelse(length(geom) == 1, "x", paste0("geom NUMBER ", i1)), " ARGUMENT IS \"geom_hline\"\nHERE geom ARGUMENT IS: ", paste(geom[[i1]], collapse = " "), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-x[[i1]] <- "fake_x"
-data1[[i1]] <- cbind(data1[[i1]], fake_x = NA)
-data1[[i1]][, "fake_x"] <- as.numeric(data1[[i1]][, "fake_x"])
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL ", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x")), " ARGUMENT ASSOCIATED TO ", ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), " ARGUMENT ", geom[[i1]], " -> FAKE COLUMN ADDED TO DATA FRAME ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", NAMED \"fake_x\" FOR FINAL DRAWING")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}else{
-if(all(geom[[i1]] == "geom_hline")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": x ARGUMENT MUST BE NULL IF ", ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), " ARGUMENT IS \"geom_hline\"\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-tempo <- fun_check(data = x[[i1]], data.name = ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x ARGUMENT")), class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-if(is.null(y[[i1]])){
-if(all(geom[[i1]] != "geom_vline")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": y ARGUMENT CANNOT BE NULL EXCEPT IF ", ifelse(length(geom) == 1, "y", paste0("geom NUMBER ", i1)), " ARGUMENT IS \"geom_vline\"\nHERE geom ARGUMENT IS: ", paste(geom[[i1]], collapse = " "), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-y[[i1]] <- "fake_y"
-data1[[i1]] <- cbind(data1[[i1]], fake_y = NA)
-data1[[i1]][, "fake_y"] <- as.numeric(data1[[i1]][, "fake_y"])
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL ", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y")), " ARGUMENT ASSOCIATED TO ", ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), " ARGUMENT ", geom[[i1]], " -> FAKE COLUMN ADDED TO DATA FRAME ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", NAMED \"fake_y\" FOR FINAL DRAWING")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}else{
-if(all(geom[[i1]] == "geom_vline")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": y ARGUMENT MUST BE NULL IF ", ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), " ARGUMENT IS \"geom_vline\"\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-tempo <- fun_check(data = y[[i1]], data.name = ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y ARGUMENT")), class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
-}
-if( ! (x[[i1]] %in% names(data1[[i1]]))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x")), " ARGUMENT MUST BE A COLUMN NAME OF ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-if( ! (y[[i1]] %in% names(data1[[i1]]))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y")), " ARGUMENT MUST BE A COLUMN NAME OF ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-# na detection and removal (done now to be sure of the correct length of categ)
-if(x[[i1]] == "fake_x" & y[[i1]] == "fake_y"){ # because the code cannot accept to be both "fake_x" and "fake_y" at the same time
-tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 2\nTHE CODE CANNOT ACCEPT x AND y TO BE \"fake_x\" AND \"fake_y\" IN THE SAME DATA FRAME ", i1, " \n\n============\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-if(any(is.na(data1[[i1]][, c(if(x[[i1]] == "fake_x"){NULL}else{x[[i1]]}, if(y[[i1]] == "fake_y"){NULL}else{y[[i1]]})]))){
-tempo.removed.row.nb <- unlist(lapply(lapply(c(data1[[i1]][c(if(x[[i1]] == "fake_x"){NULL}else{x[[i1]]}, if(y[[i1]] == "fake_y"){NULL}else{y[[i1]]})]), FUN = is.na), FUN = which))
-removed.row.nb[[i1]] <- c(removed.row.nb[[i1]], tempo.removed.row.nb)
-# report of removed rows will be performed at the very end
-data1[[i1]] <- data1[[i1]][-tempo.removed.row.nb, ]
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NA DETECTED IN COLUMN ", if(x[[i1]] == "fake_x"){""}else{ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x ARGUMENT"))}, if(x[[i1]] != "fake_x" & y[[i1]] != "fake_y"){" AND "}, if(y[[i1]] == "fake_y"){""}else{ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y ARGUMENT"))}, " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ". CORRESPONDING ROWS HAVE BEEN REMOVED (SEE $removed.row.nb AND $removed.rows)")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end na detection and removal (done now to be sure of the correct length of categ)
-tempo <- fun_check(data = data1[[i1]][, x[[i1]]], data.name = ifelse(length(x) == 1, "x OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF x ARGUMENT", " IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "vector", mode = "numeric", na.contain = ifelse(x[[i1]] == "fake_x", TRUE, FALSE), fun.name = function.name) ; eval(ee)
-tempo <- fun_check(data = data1[[i1]][, y[[i1]]], data.name = ifelse(length(y) == 1, "y OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF y ARGUMENT", " IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "vector", mode = "numeric", na.contain = ifelse(y[[i1]] == "fake_y", TRUE, FALSE), fun.name = function.name) ; eval(ee)
-if(( ! is.null(categ)) & ( ! is.null(categ[[i1]]))){ # if categ[[i1]] = NULL, fake_categ will be created later on
-tempo <- fun_check(data = categ[[i1]], data.name = ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")),, class = "vector", mode = "character", length = 1, fun.name = function.name)
-if( ! (categ[[i1]] %in% names(data1[[i1]]))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ")), " ARGUMENT MUST BE A COLUMN NAME OF ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-# na detection and removal (done now to be sure of the correct length of categ)
-if(any(is.na(data1[[i1]][, categ[[i1]]]))){
-tempo.removed.row.nb <- unlist(lapply(lapply(c(data1[[i1]][categ[[i1]]]), FUN = is.na), FUN = which))
-removed.row.nb[[i1]] <- c(removed.row.nb[[i1]], tempo.removed.row.nb)
-# report of removed rows will be performed at the very end
-data1[[i1]] <- data1[[i1]][-tempo.removed.row.nb, ]
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", THE CATEGORY COLUMN:\n", paste(categ[[i1]], collapse = " "), "\nCONTAINS NA")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end na detection and removal (done now to be sure of the correct length of categ)
-tempo1 <- fun_check(data = data1[[i1]][, categ[[i1]]], data.name = ifelse(length(categ) == 1, "categ OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF categ ARGUMENT IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "vector", mode = "character", na.contain = FALSE, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = data1[[i1]][, categ[[i1]]], data.name = ifelse(length(categ) == 1, "categ OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF categ ARGUMENT IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "factor", na.contain = FALSE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(categ) == 1, "categ OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF categ ARGUMENT IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " MUST BE A FACTOR OR CHARACTER VECTOR\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else if(tempo1$problem == FALSE){
-data1[[i1]][, categ[[i1]]] <- factor(data1[[i1]][, categ[[i1]]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", THE CHARACTER COLUMN HAS BEEN CONVERTED TO FACTOR")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-
-}
-# OK: all the non NULL categ columns of data1 are factors from here
-if(geom[[i1]] == "geom_vline" | geom[[i1]] == "geom_hline"){
-if(length(unique(data1[[i1]][, categ[[i1]]])) != nrow(data1[[i1]])){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(geom) == 1, "geom OF data1 ARGUMENT", paste0("geom NUMBER ", i1, " OF DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " ARGUMENT IS ", geom[[i1]], ", MEANING THAT ", ifelse(length(categ) == 1, "categ OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF categ ARGUMENT IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " MUST HAVE A DIFFERENT CLASS PER LINE OF data1 (ONE x VALUE PER CLASS)\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-}else if(( ! is.null(categ)) & is.null(categ[[i1]])){ # if categ[[i1]] = NULL, fake_categ will be created. BEWARE: is.null(categ[[i1]]) means no legend display (see above), because categ has not been precised. This also means a single color for data1[[i1]]
-if(length(color[[i1]]) > 1){ # 0 means is.null(color[[i1]]) and 1 is ok -> single color for data1[[i1]]
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ")), " ARGUMENT BUT CORRESPONDING COLORS IN ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " HAS LENGTH OVER 1\n", paste(color[[i1]], collapse = " "), "\nWHICH IS NOT COMPATIBLE WITH NULL CATEG -> COLOR RESET TO A SINGLE COLOR")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-color[[i1]] <- NULL # will provide a single color below
-}
-categ[[i1]] <- "fake_categ"
-data1[[i1]] <- cbind(data1[[i1]], fake_categ = "")
-# inactivated because give a different color to different "Line_" categ while a single color for all the data1[[i1]] required. Thus, put back after the color management
-# if(geom[[i1]] == "geom_hline" | geom[[i1]] == "geom_vline"){
-# data1[[i1]][, "fake_categ"] <- paste0("Line_", 1:nrow(data1[[i1]]))
-# }else{
-data1[[i1]][, "fake_categ"] <- data1[[i1]][, "fake_categ"] # as.numeric("") create a vector of NA but class numeric
-# }
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ")), " ARGUMENT -> FOR DATA FRAME ", ifelse(length(data1) == 1, "data1 ARGUMENT:", paste0("NUMBER ", i1, " OF data1 ARGUMENT:")), "\n- FAKE \"fake_categ\" COLUMN ADDED FILLED WITH \"\"(OR WITH \"Line_...\" FOR LINES)\n- SINGLE COLOR USED FOR PLOTTING\n- NO LEGEND DISPLAYED")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-if( ! is.null(legend.name[[i1]])){
-tempo <- fun_check(data = legend.name[[i1]], data.name = ifelse(length(legend.name) == 1, "legend.name", paste0("legend.name NUMBER ", i1)),, class = "vector", mode = "character", length = 1, fun.name = function.name)
-}
-if( ! is.null(color)){ # if color is NULL, will be filled later on
-# check the nature of color
-if(is.null(color[[i1]])){
-compart.null.color <- compart.null.color + 1
-color[[i1]] <- grey(compart.null.color / 8) # cannot be more than 7 overlays. Thus 7 different greys. 8/8 is excluded because white dots
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL COLOR IN ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", SINGLE COLOR ", paste(color[[i1]], collapse = " "), " HAS BEEN ATTRIBUTED")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-tempo1 <- fun_check(data = color[[i1]], data.name = ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
-tempo2 <- fun_check(data = color[[i1]], data.name = ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
-if(tempo1$problem == TRUE & tempo2$problem == TRUE){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " MUST BE A FACTOR OR CHARACTER VECTOR OR INTEGER VECTOR\n\n================\n\n") # integer possible because dealt above
-stop(tempo.cat, call. = FALSE)
-}else if( ! (all(color[[i1]] %in% colors() | grepl(pattern = "^#", color[[i1]])))){ # check that all strings of low.color start by #
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # AND/OR COLOR NAMES GIVEN BY colors(): ", paste(unique(color[[i1]]), collapse = " "), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-if(any(is.na(color[[i1]]))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", THE COLORS:\n", paste(unique(color[[i1]]), collapse = " "), "\nCONTAINS NA")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end check the nature of color
-# check the length of color
-if(is.null(categ) & length(color[[i1]]) != 1){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST BE A SINGLE COLOR IF categ IS NULL\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else if( ! is.null(categ)){
-# No problem of NA management by ggplot2 because already removed
-if(categ[[i1]] == "fake_categ" & length(color[[i1]]) != 1){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST BE A SINGLE COLOR IF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IS NULL\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else if(length(color[[i1]]) == length(unique(data1[[i1]][, categ[[i1]]]))){ # here length(color) is equal to the different number of categ
-data1[[i1]][, categ[[i1]]] <- factor(data1[[i1]][, categ[[i1]]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", THE FOLLOWING COLORS:\n", paste(color[[i1]], collapse = " "), "\nHAVE BEEN ATTRIBUTED TO THESE CLASSES:\n", paste(levels(factor(data1[[i1]][, categ[[i1]]])), collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else if(length(color[[i1]]) == length(data1[[i1]][, categ[[i1]]])){# here length(color) is equal to nrow(data1[[i1]]) -> Modif to have length(color) equal to the different number of categ (length(color) == length(levels(data1[[i1]][, categ[[i1]]])))
-data1[[i1]] <- cbind(data1[[i1]], color = color[[i1]])
-tempo.check <- unique(data1[[i1]][ , c(categ[[i1]], "color")])
-if( ! (nrow(data1[[i1]]) == length(color[[i1]]) & nrow(tempo.check) == length(unique(data1[[i1]][ , categ[[i1]]])))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT HAS THE LENGTH OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " COLUMN VALUES\nBUT IS INCORRECTLY ASSOCIATED TO EACH CLASS OF THIS categ:\n", paste(unique(mapply(FUN = "paste", data1[[i1]][ ,categ[[i1]]], data1[[i1]][ ,"color"])), collapse = "\n"), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-data1[[i1]][, categ[[i1]]] <- factor(data1[[i1]][, categ[[i1]]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
-color[[i1]] <- unique(color[[i1]][order(data1[[i1]][, categ[[i1]]])]) # Modif to have length(color) equal to the different number of categ (length(color) == length(levels(data1[[i1]][, categ[[i1]]])))
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count, ") FROM FUNCTION ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT HAS THE LENGTH OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " COLUMN VALUES\nCOLORS HAVE BEEN RESPECTIVELY ASSOCIATED TO EACH CLASS OF categ AS:\n", paste(levels(factor(data1[[i1]][, categ[[i1]]])), collapse = " "), "\n", paste(color[[i1]], collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}else if(length(color[[i1]]) == 1){
-data1[[i1]][, categ[[i1]]] <- factor(data1[[i1]][, categ[[i1]]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
-color[[i1]] <- rep(color[[i1]], length(levels(data1[[i1]][, categ[[i1]]])))
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", COLOR HAS LENGTH 1 MEANING THAT ALL THE DIFFERENT CLASSES OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), "\n", paste(levels(factor(data1[[i1]][, categ[[i1]]])), collapse = " "), "\nWILL HAVE THE SAME COLOR\n", paste(color[[i1]], collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else{
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST BE (1) LENGTH 1, OR (2) THE LENGTH OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " COLUMN VALUES, OR (3) THE LENGTH OF THE CLASSES IN THIS COLUMN. HERE IT IS COLOR LENGTH ", length(color[[i1]]), " VERSUS CATEG LENGTH ", length(data1[[i1]][, categ[[i1]]]), " AND CATEG CLASS LENGTH ", length(unique(data1[[i1]][, categ[[i1]]])), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-}
-if((geom[[i1]] == "geom_hline" | geom[[i1]] == "geom_vline") & ! is.null(categ[[i1]])){ # add here after the color management, to deal with the different lines to plot inside any data[[i1]]
-if(categ[[i1]] == "fake_categ"){
-data1[[i1]][, "fake_categ"] <- factor(paste0("Line_", formatC(1:nrow(data1[[i2]]), width = nchar(nrow(data1[[i2]])), flag = "0")))
-}
-}
-tempo <- fun_check(data = alpha[[i1]], data.name = ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
-# management of log scale
-if(x.log != "no"){
-data1[[i1]][, x[[i1]]] <- suppressWarnings(get(x.log)(data1[[i1]][, x[[i1]]]))
-}
-if(y.log != "no"){
-data1[[i1]][, y[[i1]]] <- suppressWarnings(get(y.log)(data1[[i1]][, y[[i1]]]))
-}
-# end management of log scale
-}
-if(length(data1) > 1){
-if(length(unique(unlist(x))) > 1){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE x ARGUMENT DOES NOT CONTAIN IDENTICAL COLUMN NAMES:\n", paste(unlist(x), collapse = " "), "\nX-AXIS OVERLAYING DIFFERENT VARIABLES?")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-if(length(data1) > 1){
-if(length(unique(unlist(y))) > 1){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE y ARGUMENT DOES NOT CONTAIN IDENTICAL COLUMN NAMES:\n", paste(unlist(y), collapse = " "), "\nY-AXIS OVERLAYING DIFFERENT VARIABLES?")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-if(sum(geom %in% "geom_point") > 3){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": geom ARGUMENT CANNOT HAVE MORE THAN THREE \"geom_point\" ELEMENTS\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else if(length(geom) - sum(geom %in% "geom_point") > 3){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": geom ARGUMENT CANNOT HAVE MORE THAN THREE LINE ELEMENTS\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-if(x.log != "no" & ! is.null(x.lim)){
-if(any(x.lim <= 0)){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nx.lim ARGUMENT CANNOT HAVE ZERO OR NEGATIVE VALUES WITH THE x.log ARGUMENT SET TO ", x.log, ":\n", paste(x.lim, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if(any( ! is.finite(if(x.log == "log10"){log10(x.lim)}else{log2(x.lim)}))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nx.lim ARGUMENT RETURNS INF WITH THE x.log ARGUMENT SET TO ", x.log, "\nAS SCALE COMPUTATION IS ", ifelse(x.log == "log10", "log10", "log2"), ":\n", paste(if(x.log == "log10"){log10(x.lim)}else{log2(x.lim)}, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-if(x.log != "no" & x.include.zero == TRUE){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") x.log ARGUMENT SET TO ", x.log, " AND x.include.zero ARGUMENT SET TO TRUE -> x.include.zero ARGUMENT RESET TO FALSE BECAUSE 0 VALUE CANNOT BE REPRESENTED IN LOG SCALE")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-x.include.zero <- FALSE
-}
-if(y.log != "no" & ! is.null(y.lim)){
-if(any(y.lim <= 0)){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ny.lim ARGUMENT CANNOT HAVE ZERO OR NEGATIVE VALUES WITH THE y.log ARGUMENT SET TO ", y.log, ":\n", paste(y.lim, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}else if(any( ! is.finite(if(y.log == "log10"){log10(y.lim)}else{log2(y.lim)}))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ny.lim ARGUMENT RETURNS INF WITH THE y.log ARGUMENT SET TO ", y.log, "\nAS SCALE COMPUTATION IS ", ifelse(y.log == "log10", "log10", "log2"), ":\n", paste(if(y.log == "log10"){log10(y.lim)}else{log2(y.lim)}, collapse = " "))
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-if(y.log != "no" & y.include.zero == TRUE){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") y.log ARGUMENT SET TO ", y.log, " AND y.include.zero ARGUMENT SET TO TRUE -> y.include.zero ARGUMENT RESET TO FALSE BECAUSE 0 VALUE CANNOT BE REPRESENTED IN LOG SCALE")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-y.include.zero <- FALSE
-}
-# end management of log scale
-if( ! is.null(add)){
-if( ! grepl(pattern = "^\\+", add)){ # check that the add string start by +
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": add ARGUMENT MUST START WITH \"+\": ", paste(unique(add), collapse = " "), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else if( ! grepl(pattern = "ggplot2::", add)){ #
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": add ARGUMENT MUST CONTAIN \"ggplot2::\" IN FRONT OF EACH GGPLOT2 FUNCTION: ", paste(unique(add), collapse = " "), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else if( ! grepl(pattern = ")$", add)){ # check that the add string finished by )
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": add ARGUMENT MUST FINISH BY \")\": ", paste(unique(add), collapse = " "), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-# end second round of argument checking
-# end second round of checking and data preparation
-
-
-
-
-
-# package checking
-fun_pack(req.package = c("ggplot2", "gridExtra"), lib.path = lib.path)
-# packages Cairo and grid tested by fun_gg_point_rast()
-# end package checking
-
-
-
-
-# main code
-# axes management
-if(is.null(x.lim)){
-if(any(unlist(mapply(FUN = "[[", data1, x, SIMPLIFY = FALSE)) %in% c(Inf, -Inf))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE x COLUMN IN data1 CONTAINS -Inf OR Inf VALUES THAT WILL NOT BE CONSIDERED IN THE PLOT RANGE")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-x.lim <- suppressWarnings(range(unlist(mapply(FUN = "[[", data1, x, SIMPLIFY = FALSE)), na.rm = TRUE, finite = TRUE)) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only. y.lim added here. If NULL, ok if y argument has values
-}else if(x.log != "no"){
-x.lim <- get(x.log)(x.lim)
-}
-if(x.log != "no"){
-if(any( ! is.finite(x.lim))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\nx.lim ARGUMENT CANNOT HAVE ZERO OR NEGATIVE VALUES WITH THE x.log ARGUMENT SET TO ", x.log, ":\n", paste(x.lim, collapse = " "), "\nPLEASE, CHECK DATA VALUES (PRESENCE OF ZERO OR INF VALUES)")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-if(suppressWarnings(all(x.lim %in% c(Inf, -Inf)))){ # happen when x is only NULL
-if(all(unlist(geom) == "geom_vline")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " NOT POSSIBLE TO ONLY DRAW geom_vline KIND OF LINES IF x.lim ARGUMENT IS SET TO NULL, SINCE NO X-AXIS DEFINED (", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x")), " ARGUMENT MUST BE NULL FOR THESE KIND OF LINES)\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " x.lim ARGUMENT MADE OF NA, -Inf OR Inf ONLY: ", paste(x.lim, collapse = " "), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-x.lim.order <- order(x.lim) # to deal with inverse axis
-# print(x.lim.order)
-x.lim <- sort(x.lim)
-x.lim[1] <- x.lim[1] - abs(x.lim[2] - x.lim[1]) * ifelse(diff(x.lim.order) > 0, x.right.extra.margin, x.left.extra.margin) # diff(x.lim.order) > 0 means not inversed axis
-x.lim[2] <- x.lim[2] + abs(x.lim[2] - x.lim[1]) * ifelse(diff(x.lim.order) > 0, x.left.extra.margin, x.right.extra.margin) # diff(x.lim.order) > 0 means not inversed axis
-if(x.include.zero == TRUE){ # no need to check x.log != "no" because done before
-x.lim <- range(c(x.lim, 0), na.rm = TRUE, finite = TRUE) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only
-}
-x.lim <- x.lim[x.lim.order]
-if(any(is.na(x.lim))){
-tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 3\n\n============\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-if(is.null(y.lim)){
-if(any(unlist(mapply(FUN = "[[", data1, y, SIMPLIFY = FALSE)) %in% c(Inf, -Inf))){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") THE y COLUMN IN data1 CONTAINS -Inf OR Inf VALUES THAT WILL NOT BE CONSIDERED IN THE PLOT RANGE")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-y.lim <- suppressWarnings(range(unlist(mapply(FUN = "[[", data1, y, SIMPLIFY = FALSE)), na.rm = TRUE, finite = TRUE)) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only. y.lim added here. If NULL, ok if y argument has values
-}else if(y.log != "no"){
-y.lim <- get(y.log)(y.lim)
-}
-if(y.log != "no"){
-if(any( ! is.finite(y.lim))){
-tempo.cat <- paste0("ERROR IN ", function.name, "\ny.lim ARGUMENT CANNOT HAVE ZERO OR NEGATIVE VALUES WITH THE y.log ARGUMENT SET TO ", y.log, ":\n", paste(y.lim, collapse = " "), "\nPLEASE, CHECK DATA VALUES (PRESENCE OF ZERO OR INF VALUES)")
-stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
-}
-}
-if(suppressWarnings(all(y.lim %in% c(Inf, -Inf)))){ # happen when y is only NULL
-if(all(unlist(geom) == "geom_vline")){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " NOT POSSIBLE TO ONLY DRAW geom_vline KIND OF LINES IF y.lim ARGUMENT IS SET TO NULL, SINCE NO Y-AXIS DEFINED (", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y")), " ARGUMENT MUST BE NULL FOR THESE KIND OF LINES)\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else{
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " y.lim ARGUMENT MADE OF NA, -Inf OR Inf ONLY: ", paste(y.lim, collapse = " "), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-y.lim.order <- order(y.lim) # to deal with inverse axis
-y.lim <- sort(y.lim)
-y.lim[1] <- y.lim[1] - abs(y.lim[2] - y.lim[1]) * ifelse(diff(y.lim.order) > 0, y.bottom.extra.margin, y.top.extra.margin) # diff(y.lim.order) > 0 means not inversed axis
-y.lim[2] <- y.lim[2] + abs(y.lim[2] - y.lim[1]) * ifelse(diff(y.lim.order) > 0, y.top.extra.margin, y.bottom.extra.margin) # diff(y.lim.order) > 0 means not inversed axis
-if(y.include.zero == TRUE){ # no need to check y.log != "no" because done before
-y.lim <- range(c(y.lim, 0), na.rm = TRUE, finite = TRUE) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only
-}
-y.lim <- y.lim[y.lim.order]
-if(any(is.na(y.lim))){
-tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 4\n\n============\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-# end axes management
-
-
-
-
-# create a fake categ if NULL to deal with legend display
-if(is.null(categ)){
-categ <- vector("list", length(data1))
-categ[] <- "fake_categ"
-for(i2 in 1:length(data1)){
-data1[[i2]] <- cbind(data1[[i2]], fake_categ = "")
-if(geom[[i2]] == "geom_hline" | geom[[i2]] == "geom_vline"){
-data1[[i2]][, "fake_categ"] <- factor(paste0("Line_", 1:nrow(data1[[i2]])))
-}
-}
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL categ ARGUMENT -> FAKE \"fake_categ\" COLUMN ADDED TO EACH DATA FRAME OF data1, AND FILLED WITH \"\"")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end create a fake categ if NULL to deal with legend display
-
-
-
-
-# vector of color with length as in data1
-if(is.null(color)){
-color <- vector("list", length(data1))
-length.categ.list <- lapply(lapply(mapply(FUN = "[[", data1, categ, SIMPLIFY = FALSE), FUN = unique), FUN = function(x){length(x[ ! is.na(x)])})
-length.categ.list[sapply(categ, FUN = "==", "fake_categ")] <- 1 # when is.null(color), a single color for all the dots or lines of data[[i1]] that contain "fake_categ" category
-total.categ.length <- sum(unlist(length.categ.list), na.rm = TRUE)
-tempo.color <- fun_gg_palette(total.categ.length)
-tempo.count <- 0
-for(i3 in 1:length(data1)){
-color[[i3]] <- tempo.color[(1:length.categ.list[[i3]]) + tempo.count]
-tempo.count <- tempo.count + length.categ.list[[i3]]
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") NULL color ARGUMENT -> COLORS RESPECTIVELY ATTRIBUTED TO EACH CLASS OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i3, " OF categ ARGUMENT")), " (", categ[[i3]], ") IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i3, " OF data1 ARGUMENT")), ":\n", paste(color[[i3]], collapse = " "), "\n", paste(if(all(levels(data1[[i3]][, categ[[i3]]]) == "")){'\"\"'}else{levels(data1[[i3]][, categ[[i3]]])}, collapse = " "))
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-# end vector of color with length as in data1
-
-
-
-
-# last check
-for(i1 in 1:length(data1)){
-if(categ[[i1]] != "fake_categ" & length(color[[i1]]) != length(unique(data1[[i1]][, categ[[i1]]]))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " LAST CHECK: ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST HAVE THE LENGTH OF LEVELS OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\nHERE IT IS COLOR LENGTH ", length(color[[i1]]), " VERSUS CATEG LEVELS LENGTH ", length(unique(data1[[i1]][, categ[[i1]]])), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}else if(categ[[i1]] == "fake_categ" & length(color[[i1]]) != 1){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " LAST CHECK: ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST HAVE LENGTH 1 WHEN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IS NULL\nHERE IT IS COLOR LENGTH ", length(color[[i1]]), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-# end last check
-
-
-
-
-
-# conversion of geom_hline and geom_vline
-for(i1 in 1:length(data1)){
-if(geom[[i1]] == "geom_hline" | geom[[i1]] == "geom_vline"){
-final.data.frame <- data.frame()
-for(i3 in 1:nrow(data1[[i1]])){
-tempo.data.frame <- rbind(data1[[i1]][i3, ], data1[[i1]][i3, ])
-if(geom[[i1]] == "geom_hline"){
-tempo.data.frame[, x[[i1]]] <- x.lim
-}else if(geom[[i1]] == "geom_vline"){
-tempo.data.frame[, y[[i1]]] <- y.lim
-}else{
-tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 5\n\n============\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-# 3 lines below inactivated because I put that above
-# if(is.null(categ[[i1]])){
-# data1[, "fake_categ"] <- paste0("Line_", i3)
-# }
-final.data.frame <- rbind(final.data.frame, tempo.data.frame)
-}
-data1[[i1]] <- final.data.frame
-geom[[i1]] <- "geom_line"
-if(length(color[[i1]]) == 1){
-color[[i1]] <- rep(color[[i1]], length(unique(data1[[i1]][ , categ[[i1]]])))
-}else if(length(color[[i1]]) != length(unique(data1[[i1]][ , categ[[i1]]]))){
-tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " geom_hline AND geom_vline CONVERSION TO FIT THE XLIM AND YLIM LIMITS OF THE DATA: ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST HAVE THE LENGTH OF LEVELS OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\nHERE IT IS COLOR LENGTH ", length(color[[i1]]), " VERSUS CATEG LEVELS LENGTH ", length(unique(data1[[i1]][, categ[[i1]]])), "\n\n================\n\n")
-stop(tempo.cat, call. = FALSE)
-}
-}
-}
-# end conversion of geom_hline and geom_vline
-
-
-
-
-# kind of geom_point (vectorial or raster)
-scatter.kind <- vector("list", length = length(data1)) # list of same length as data1, that will be used to use either ggplot2::geom_point() (vectorial dot layer) or fun_gg_point_rast() (raster dot layer)
-fix.ratio <- FALSE
-if(is.null(raster.threshold)){
-if(raster == TRUE){
-scatter.kind[] <- "fun_gg_point_rast" # not important to fill everything: will be only used when geom == "geom_point"
-fix.ratio <- TRUE
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") RASTER PLOT GENERATED -> ASPECT RATIO OF THE PLOT REGION SET BY THE raster.ratio ARGUMENT (", fun_round(raster.ratio, 2), ") TO AVOID A BUG OF ELLIPSOID DOT DRAWING")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}else{
-scatter.kind[] <- "ggplot2::geom_point"
-}
-}else{
-for(i2 in 1:length(data1)){
-if(geom[[i2]] == "geom_point"){
-if(nrow(data1[[i2]]) <= raster.threshold){
-scatter.kind[[i2]] <- "ggplot2::geom_point"
-}else{
-scatter.kind[[i2]] <- "fun_gg_point_rast"
-fix.ratio <- TRUE
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i2, " OF data1 ARGUMENT")), " LAYER AS RASTER (NOT VECTORIAL)")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-}
-if(any(unlist(scatter.kind) == "fun_gg_point_rast")){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") RASTER PLOT GENERATED -> ASPECT RATIO OF THE PLOT REGION SET BY THE raster.ratio ARGUMENT (", fun_round(raster.ratio, 2), ") TO AVOID A BUG OF ELLIPSOID DOT DRAWING")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-# end kind of geom_point (vectorial or raster)
-
-
-
-
-# no need loop part
-coord.names <- NULL
-tempo.gg.name <- "gg.indiv.plot."
-tempo.gg.count <- 0
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ggplot())
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::xlab(if(is.null(x.lab)){x[[1]]}else{x.lab}))
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ylab(if(is.null(y.lab)){y[[1]]}else{y.lab}))
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ggtitle(title))
-# text angle management
-x.tempo.just <- fun_gg_just(angle = x.text.angle, axis = "x")
-y.tempo.just <- fun_gg_just(angle = y.text.angle, axis = "y")
-# end text angle management
-add.check <- TRUE
-if( ! is.null(add)){ # if add is NULL, then = 0
-if(grepl(pattern = "ggplot2::theme", add) == TRUE){
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") \"ggplot2::theme\" STRING DETECTED IN THE add ARGUMENT -> INTERNAL GGPLOT2 THEME FUNCTIONS theme() AND theme_classic() HAVE BEEN INACTIVATED, TO BE USED BY THE USER.
-\nIT IS RECOMMENDED TO USE \"+ theme(aspect.ratio = raster.ratio)\" IF RASTER MODE IS ACTIVATED")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-add.check <- FALSE
-}
-}
-if(add.check == TRUE & article == TRUE){
-# BEWARE: not possible to add several times theme(). 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(
-text = ggplot2::element_text(size = text.size), 
-plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
-legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
-line = ggplot2::element_line(size = 0.5), 
-axis.line.y.left = ggplot2::element_line(colour = "black"), # draw lines for the y axis
-axis.line.x.bottom = ggplot2::element_line(colour = "black"), # draw lines for the x axis
-panel.grid.major.x = ggplot2::element_line(colour = "grey75"),
-panel.grid.major.y = ggplot2::element_line(colour = "grey75"),
-axis.text.x = ggplot2::element_text(angle = x.tempo.just$angle, hjust = x.tempo.just$hjust, vjust = x.tempo.just$vjust),
-axis.text.y = ggplot2::element_text(angle = y.tempo.just$angle, hjust = y.tempo.just$hjust, vjust = y.tempo.just$vjust), 
-aspect.ratio = if(fix.ratio == TRUE){raster.ratio}else{NULL} # for raster
-))
-}else{
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
-text = ggplot2::element_text(size = text.size), 
-plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
-line = ggplot2::element_line(size = 0.5), 
-legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
-axis.line.y.left = ggplot2::element_line(colour = "black"), 
-axis.line.x.bottom = ggplot2::element_line(colour = "black"), 
-axis.text.x = ggplot2::element_text(angle = x.tempo.just$angle, hjust = x.tempo.just$hjust, vjust = x.tempo.just$vjust),
-axis.text.y = ggplot2::element_text(angle = y.tempo.just$angle, hjust = y.tempo.just$hjust, vjust = y.tempo.just$vjust), 
-aspect.ratio = if(fix.ratio == TRUE){raster.ratio}else{NULL} # for raster
-))
-}
-}else if(add.check == TRUE & article == FALSE){
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
-text = ggplot2::element_text(size = text.size), 
-plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
-line = ggplot2::element_line(size = 0.5), 
-legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
-panel.background = ggplot2::element_rect(fill = "grey95"), 
-axis.line.y.left = ggplot2::element_line(colour = "black"), 
-axis.line.x.bottom = ggplot2::element_line(colour = "black"), 
-panel.grid.major.x = ggplot2::element_line(colour = "grey75"), 
-panel.grid.major.y = ggplot2::element_line(colour = "grey75"), 
-panel.grid.minor.x = ggplot2::element_blank(), 
-panel.grid.minor.y = ggplot2::element_blank(), 
-strip.background = ggplot2::element_rect(fill = "white", colour = "black"), 
-axis.text.x = ggplot2::element_text(angle = x.tempo.just$angle, hjust = x.tempo.just$hjust, vjust = x.tempo.just$vjust),
-axis.text.y = ggplot2::element_text(angle = y.tempo.just$angle, hjust = y.tempo.just$hjust, vjust = y.tempo.just$vjust), 
-aspect.ratio = if(fix.ratio == TRUE){raster.ratio}else{NULL} # for raster
-# do not work -> legend.position = "none" # to remove the legend completely: https://www.datanovia.com/en/blog/how-to-remove-legend-from-a-ggplot/
-))
-}
-# end no need loop part
-
-# add categ.class.order replacing levels(factor(data1[[i1]][, categ[[i1]]])), thus check data1[[i1]][, categ[[i1]]]
-
-# loop part
-point.count <- 0
-line.count <- 0
-lg.order <- vector(mode = "list", length = 6) # order of the legend
-lg.order <- lapply(lg.order, as.numeric) # order of the legend
-lg.color <- vector(mode = "list", length = 6) # color of the legend
-lg.alpha <- vector(mode = "list", length = 6) # order of the legend
-lg.alpha <- lapply(lg.alpha, as.numeric) # alpha of the legend
-for(i1 in 1:length(data1)){
-if(geom[[i1]] == "geom_point"){
-point.count <- point.count + 1
-if(point.count == 1){
-fin.lg.disp[[1]] <- legend.disp[[point.count + line.count]]
-lg.order[[1]] <- point.count + line.count
-lg.color[[1]] <- color[[i1]]
-lg.alpha[[1]] <- alpha[[i1]]
-class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
-for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
-tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = scatter.kind[[i1]]))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], fill = categ[[i1]]), size = dot.size, color = color[[i1]][i5], alpha = alpha[[i1]])) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
-coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_fill_manual(name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = as.character(color[[i1]]), breaks = class.categ, guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], linetype = 0)))) # values are the values of fill, breaks reorder the classes according to class.categ in the legend, order argument of guide_legend determines the order of the different aesthetics in the legend (not order of classes)
-}
-if(point.count == 2){
-fin.lg.disp[[2]] <- legend.disp[[point.count + line.count]]
-lg.order[[2]] <- point.count + line.count
-lg.color[[2]] <- color[[i1]]
-lg.alpha[[2]] <- alpha[[i1]]
-class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
-for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
-tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = scatter.kind[[i1]]))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], shape = categ[[i1]]), size = dot.size, color = color[[i1]][i5], alpha = alpha[[i1]])) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
-coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_shape_manual(name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(19, length(color[[i1]])), breaks = class.categ, guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], linetype = 0)))) # values are the values of shape, breaks reorder the classes according to class.categ in the legend
-}
-if(point.count == 3){
-fin.lg.disp[[3]] <- legend.disp[[point.count + line.count]]
-lg.order[[3]] <- point.count + line.count
-lg.color[[3]] <- color[[i1]]
-lg.alpha[[3]] <- alpha[[i1]]
-class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
-for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
-tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = scatter.kind[[i1]]))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], stroke = categ[[i1]]), size = dot.size, color = color[[i1]][i5], alpha = alpha[[i1]])) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
-coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "stroke", name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(0.5, length(color[[i1]])), breaks = class.categ, guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], linetype = 0)))) # values are the values of stroke, breaks reorder the classes according to class.categ in the legend
-}
-}else{
-line.count <- line.count + 1
-if(line.count == 1){
-fin.lg.disp[[4]] <- legend.disp[[point.count + line.count]]
-lg.order[[4]] <- point.count + line.count
-lg.color[[4]] <- color[[i1]]
-if(plot == TRUE & fin.lg.disp[[4]] == 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
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") GRAPHIC DEVICE USED ON A WINDOWS SYSTEM ->\nTRANSPARENCY OF THE LINES IS INACTIVATED IN THE LEGEND TO PREVENT A WINDOWS DEPENDENT BUG (SEE https://github.com/tidyverse/ggplot2/issues/2452)\nTO OVERCOME THIS ON WINDOWS, USE ANOTHER DEVICE (pdf() FOR INSTANCE)")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-lg.alpha[[4]] <- 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
-}else{
-lg.alpha[[4]] <- alpha[[i1]]
-}
-class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
-for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
-tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste("ggplot2::", geom[[i1]], sep ="")))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], linetype = categ[[i1]]), color = color[[i1]][i5], size = line.size, lineend = "round", alpha = alpha[[i1]])) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
-coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "linetype", name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(1, length(color[[i1]])), breaks = class.categ, guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], shape = NA)))) # values are the values of linetype. 1 means solid. Regarding the alpha bug, I have tried different things without success: alpha in guide alone, in geom alone, in both, with different values, breaks reorder the classes according to class.categ in the legend
-}
-if(line.count == 2){
-fin.lg.disp[[5]] <- legend.disp[[point.count + line.count]]
-lg.order[[5]] <- point.count + line.count
-lg.color[[5]] <- color[[i1]]
-if(plot == TRUE & fin.lg.disp[[5]] == 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
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") GRAPHIC DEVICE USED ON A WINDOWS SYSTEM ->\nTRANSPARENCY OF THE LINES IS INACTIVATED IN THE LEGEND TO PREVENT A WINDOWS DEPENDENT BUG (SEE https://github.com/tidyverse/ggplot2/issues/2452)\nTO OVERCOME THIS ON WINDOWS, USE ANOTHER DEVICE (pdf() FOR INSTANCE)")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-lg.alpha[[5]] <- 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
-}else{
-lg.alpha[[5]] <- alpha[[i1]]
-}
-class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
-for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
-tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste("ggplot2::", geom[[i1]], sep ="")))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], alpha = categ[[i1]]), color = color[[i1]][i5], size = line.size, lineend = "round")) # beware: a single color allowed for color argument outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
-coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "alpha", name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(alpha[[i1]], length(color[[i1]])), breaks = class.categ, guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], shape = NA)))) # values are the values of linetype. 1 means solid. Regarding the alpha bug, I have tried different things without success: alpha in guide alone, in geom alone, in both, with different values, breaks reorder the classes according to class.categ in the legend
-}
-if(line.count == 3){
-fin.lg.disp[[6]] <- legend.disp[[point.count + line.count]]
-lg.order[[6]] <- point.count + line.count
-lg.color[[6]] <- color[[i1]]
-if(plot == TRUE & fin.lg.disp[[6]] == 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
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") GRAPHIC DEVICE USED ON A WINDOWS SYSTEM ->\nTRANSPARENCY OF THE LINES IS INACTIVATED IN THE LEGEND TO PREVENT A WINDOWS DEPENDENT BUG (SEE https://github.com/tidyverse/ggplot2/issues/2452)\nTO OVERCOME THIS ON WINDOWS, USE ANOTHER DEVICE (pdf() FOR INSTANCE)")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-lg.alpha[[6]] <- 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
-}else{
-lg.alpha[[6]] <- alpha[[i1]]
-}
-class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
-for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
-tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste("ggplot2::", geom[[i1]], sep ="")))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], size = categ[[i1]]), color = color[[i1]][i5], alpha = alpha[[i1]], lineend = "round")) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
-coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "size", name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(line.size, length(color[[i1]])), breaks = class.categ, guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], shape = NA)))) # values are the values of linetype. 1 means solid. Regarding the alpha bug, I have tried different things without success: alpha in guide alone, in geom alone, in both, breaks reorder the classes according to class.categ in the legend
-}
-}
-}
-# end loop part
-
-
-
-
-# legend display
-tempo.legend.final <- 'ggplot2::guides(fill = if(fin.lg.disp[[1]] == TRUE){ggplot2::guide_legend(order = lg.order[[1]], override.aes = list(alpha = lg.alpha[[1]], color = lg.color[[1]]))}else{FALSE}, shape = if(fin.lg.disp[[2]] == TRUE){ggplot2::guide_legend(order = lg.order[[2]], override.aes = list(alpha = lg.alpha[[2]], color = lg.color[[2]]))}else{FALSE}, stroke = if(fin.lg.disp[[3]] == TRUE){ggplot2::guide_legend(order = lg.order[[3]], override.aes = list(alpha = lg.alpha[[2]], color = lg.color[[3]]))}else{FALSE}, linetype = if(fin.lg.disp[[4]] == TRUE){ggplot2::guide_legend(order = lg.order[[4]], override.aes = list(alpha = lg.alpha[[4]], color = lg.color[[4]]))}else{FALSE}, alpha = if(fin.lg.disp[[5]] == TRUE){ggplot2::guide_legend(order = lg.order[[5]], override.aes = list(alpha = lg.alpha[[5]], color = lg.color[[5]]))}else{FALSE}, size = if(fin.lg.disp[[6]] == TRUE){ggplot2::guide_legend(order = lg.order[[6]], override.aes = list(alpha = lg.alpha[[6]], color = lg.color[[6]]))}else{FALSE})' # clip = "off" to have secondary ticks outside plot region does not work
-if( ! is.null(legend.width)){
-if(any(unlist(legend.disp))){ # means some TRUE
-tempo.graph.info <- ggplot2::ggplot_build(eval(parse(text = paste0(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), ' + ', tempo.legend.final)))) # will be recovered later again, when ylim will be considered
-legend.final <- fun_gg_get_legend(ggplot_built = tempo.graph.info, fun.name = function.name) # get legend
-fin.lg.disp[] <- FALSE  # remove all the legends. Must be done even if fin.lg.disp is not appearing in the code thenafter. Otherwise twice the legend
-if(is.null(legend.final) & plot == TRUE){ # even if any(unlist(legend.disp)) is TRUE
-legend.final <- fun_gg_empty_graph() # empty graph instead of legend
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") LEGEND REQUESTED (NON NULL categ ARGUMENT OR legend.show ARGUMENT SET TO TRUE)\nBUT IT SEEMS THAT THE PLOT HAS NO LEGEND -> EMPTY LEGEND SPACE CREATED BECAUSE OF THE NON NULL legend.width ARGUMENT\n")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}else if(plot == TRUE){ # means all FALSE
-legend.final <- fun_gg_empty_graph() # empty graph instead of legend
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") LEGEND REQUESTED (NON NULL categ ARGUMENT OR legend.show ARGUMENT SET TO TRUE)\nBUT IT SEEMS THAT THE PLOT HAS NO LEGEND -> EMPTY LEGEND SPACE CREATED BECAUSE OF THE NON NULL legend.width ARGUMENT\n")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-}
-if( ! any(unlist(legend.disp))){
-fin.lg.disp[] <- FALSE # remove all the legends. Must be done even if fin.lg.disp is not appearing in the code thenafter. Otherwise twice the legend
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = tempo.legend.final)))
-# end legend display
-
-
-
-
-
-# scale management
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::coord_cartesian(xlim = x.lim, ylim = y.lim)) # clip = "off" to have secondary ticks outside plot region does not work
-tempo.coord <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))$layout$panel_params[[1]]
-# x-axis ticks and inv
-if(is.null(x.tick.nb) & x.log != "no"){ # integer main ticks for log2 and log10
-tempo.scale <- (as.integer(min(x.lim, na.rm = TRUE)) - 1):(as.integer(max(x.lim, na.rm = TRUE)) + 1)
-}else{
-tempo <- if(is.null(attributes(tempo.coord$x$breaks))){tempo.coord$x$breaks}else{unlist(attributes(tempo.coord$x$breaks))}
-tempo.scale <- fun_scale(lim = x.lim, n = ifelse(is.null(x.tick.nb), length(tempo[ ! is.na(tempo)]), x.tick.nb)) # in ggplot 3.3.0, tempo.coord$x.major_source replaced by tempo.coord$x$breaks
-}
-# end x-axis ticks and inv
-# x-axis secondary ticks (after ggplot2::coord_cartesian() or ggplot2::coord_flip())
-x.second.tick.values <- NULL
-x.tempo.tick.pos <- NULL
-if(x.log != "no"){
-tempo <- fun_inter_ticks(lim = x.lim, log = x.log)
-x.second.tick.values <- tempo$values
-x.tempo.tick.pos <- tempo$coordinates
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", x = x.tempo.tick.pos, xend = x.tempo.tick.pos, y = tempo.coord$y.range[1], yend = tempo.coord$y.range[1] + abs(diff(tempo.coord$y.range)) / 80))
-coord.names <- c(coord.names, "x.second.tick.positions")
-}else if(( ! is.null(x.second.tick.nb)) & x.log == "no"){
-# if(x.second.tick.nb > 0){ #inactivated because already checked before
-tempo <- fun_inter_ticks(lim = x.lim, log = x.log, breaks = tempo.scale, n = x.second.tick.nb)
-x.second.tick.values <- tempo$values
-x.second.tick.pos <- tempo$coordinates
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(
-geom = "segment", 
-x = x.second.tick.pos, 
-xend = x.second.tick.pos, 
-y = tempo.coord$y.range[1], 
-yend = tempo.coord$y.range[1] + abs(diff(tempo.coord$y.range)) / 80
-))
-coord.names <- c(coord.names, "x.second.tick.positions")
-}
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_x_continuous(
-breaks = tempo.scale, 
-minor_breaks = x.tempo.tick.pos, # add the grid of the minor ticks
-labels = if(x.log == "log10"){
-scales::trans_format("identity",  scales::math_format(10^.x))
-}else if(x.log == "log2"){
-scales::trans_format("identity",  scales::math_format(2^.x))
-}else if(x.log == "no"){
-ggplot2::waiver()
-}else{
-tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 6\n\n============\n\n") ; stop(tempo.cat, call. = FALSE)
-}, 
-expand = c(0, 0), # remove space after after axis limits
-limits = NA, # indicate that limits must correspond to data limits
-trans = ifelse(diff(x.lim) < 0, "reverse", "identity") # equivalent to ggplot2::scale_x_reverse()
-))
-# end x-axis secondary ticks (after ggplot2::coord_cartesian() or ggplot2::coord_flip())
-# y-axis ticks and inv
-if(is.null(y.tick.nb) & y.log != "no"){ # integer main ticks for log2 and log10
-tempo.scale <- (as.integer(min(y.lim, na.rm = TRUE)) - 1):(as.integer(max(y.lim, na.rm = TRUE)) + 1)
-}else{
-tempo <- if(is.null(attributes(tempo.coord$y$breaks))){tempo.coord$y$breaks}else{unlist(attributes(tempo.coord$y$breaks))}
-tempo.scale <- fun_scale(lim = y.lim, n = ifelse(is.null(y.tick.nb), length(tempo[ ! is.na(tempo)]), y.tick.nb)) # in ggplot 3.3.0, tempo.coord$y.major_source replaced by tempo.coord$y$breaks
-}
-# end y-axis ticks and inv
-# y-axis secondary ticks (after ggplot2::coord_cartesian() or ggplot2::coord_flip())
-y.second.tick.values <- NULL
-y.tempo.tick.pos <- NULL
-if(y.log != "no"){
-tempo <- fun_inter_ticks(lim = y.lim, log = y.log)
-y.second.tick.values <- tempo$values
-y.tempo.tick.pos <- tempo$coordinates
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", y = y.tempo.tick.pos, yend = y.tempo.tick.pos, x = tempo.coord$x.range[1], xend = tempo.coord$x.range[1] + abs(diff(tempo.coord$x.range)) / 80))
-coord.names <- c(coord.names, "y.second.tick.positions")
-}else if(( ! is.null(y.second.tick.nb)) & y.log == "no"){
-# if(y.second.tick.nb > 0){ #inactivated because already checked before
-tempo <- fun_inter_ticks(lim = y.lim, log = y.log, breaks = tempo.scale, n = y.second.tick.nb)
-y.second.tick.values <- tempo$values
-y.second.tick.pos <- tempo$coordinates
-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] + abs(diff(tempo.coord$x.range)) / 80
-))
-coord.names <- c(coord.names, "y.second.tick.positions")
-}
-# end y-axis secondary ticks (after ggplot2::coord_cartesian() or ggplot2::coord_flip())
-assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_y_continuous(
-breaks = tempo.scale, 
-minor_breaks = y.tempo.tick.pos, # add the grid of the minor ticks
-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\nERROR IN ", function.name, ": CODE INCONSISTENCY 7\n\n============\n\n") ; stop(tempo.cat, call. = FALSE)
-}, 
-expand = c(0, 0), # remove space after after axis limits
-limits = NA, # indicate that limits must correspond to data limits
-trans = ifelse(diff(y.lim) < 0, "reverse", "identity") # equivalent to ggplot2::scale_y_reverse()
-))
-# end scale management
-
-
-
-
-# drawing
-fin.plot <- eval(parse(text = paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "),if(is.null(add)){NULL}else{add})))
-if(plot == TRUE){
-if( ! is.null(legend.width)){ # any(unlist(legend.disp)) == TRUE removed to have empty legend space # not & any(unlist(fin.lg.disp)) == TRUE here because converted to FALSE
-suppressMessages(suppressWarnings(gridExtra::grid.arrange(fin.plot, legend.final, ncol=2, widths=c(1, legend.width))))
-}else{
-suppressMessages(suppressWarnings(print(fin.plot)))
-}
-}else{
-warn.count <- warn.count + 1
-tempo.warn <- paste0("(", warn.count,") PLOT NOT SHOWN AS REQUESTED")
-warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
-}
-# end drawing
-
-
-
-# outputs
-if(warn.print == TRUE & ! is.null(warn)){
-warning(paste0("FROM ", function.name, " FUNCTION:\n\n", warn), call. = FALSE) # to recover the warning messages, use return = TRUE
-}
-if(return == TRUE){
-output <- ggplot2::ggplot_build(fin.plot)
-# output$data <- output$data[-1] # yes for boxplot but not for scatter # remove the first data because corresponds to the initial empty boxplot
-if(length(output$data) != length(coord.names)){
-tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, ": length(output$data) AND length(coord.names) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
-stop(tempo.cat)
-}else{
-names(output$data) <- coord.names
-}
-if(is.null(unlist(removed.row.nb))){
-removed.row.nb <- NULL
-removed.rows <- NULL
-}else{
-for(i3 in 1:length(data1)){
-if( ! is.null(removed.row.nb[[i3]])){
-removed.row.nb[[i3]] <- sort(removed.row.nb[[i3]])
-removed.rows[[i3]] <- data1.ini[[i3]][removed.row.nb[[i3]], ]
-}
-}
-}
-tempo <- output$layout$panel_params[[1]]
-output <- list(
-data = data1, 
-removed.row.nb = removed.row.nb, 
-removed.rows = removed.rows, 
-plot = c(output$data, x.second.tick.values = list(x.second.tick.values), y.second.tick.values = list(y.second.tick.values)), 
-axes = list(
-x.range = tempo$x.range, 
-x.labels = if(is.null(attributes(tempo$x$breaks))){tempo$x$breaks}else{tempo$x$scale$get_labels()}, # is.null(attributes(tempo$x$breaks)) test if it is number (TRUE) or character (FALSE)
-x.positions = if(is.null(attributes(tempo$x$breaks))){tempo$x$breaks}else{unlist(attributes(tempo$x$breaks))}, 
-y.range = tempo$y.range, 
-y.labels = if(is.null(attributes(tempo$y$breaks))){tempo$y$breaks}else{tempo$y$scale$get_labels()}, 
-y.positions = if(is.null(attributes(tempo$y$breaks))){tempo$y$breaks}else{unlist(attributes(tempo$y$breaks))}
-), 
-warn = paste0("\n", warn, "\n\n")
-)
-return(output)
-}
-# end outputs
-# end main code
-}
-
-
-
diff --git a/fun_gg_boxplot.docx b/fun_gg_boxplot.docx
index a040f7aff10efb4b8d2befaa9f6dbda0ec2d2161..a63c1056ae5b559bf88703c3c4aab979934d91b8 100644
GIT binary patch
delta 90150
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%0Am4e}^A{met&7%u;21$KRL(hGYJL^u#x7
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%0DW**5
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

delta 87005
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%0A(derAp$*h=$fk%k5k%
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

diff --git a/scatter.docx b/scatter.docx
index b12b41679545f391f11d713882e91da024e95d3b..53db8b89d6a5b16c90287123adf391607693f481 100644
GIT binary patch
delta 89576
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

delta 89638
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

-- 
GitLab