`R/plot_4d_point_sd.R`

`plot_4d_point_sd.Rd`

There are 4 related functions for 2-way ANOVA type plots. In addition to a categorical variable along the X-axis, a grouping factor is passed to either `points`

, `bars`

or `boxes`

argument in these functions. A blocking factor (or any other categorical variable) can be optionally passed to the `shapes`

argument.

`plot_4d_point_sd`

(mean & SD, SEM or CI95 error bars)`plot_4d_scatterbar`

(bar & SD, SEM or CI95 error bars)`plot_4d_scatterbox`

(box & whiskers)`plot_4d_scatterviolin`

(box & whiskers, violin)

```
plot_4d_point_sd(
data,
xcol,
ycol,
points,
shapes,
facet,
ErrorType = "SD",
symsize = 3.5,
s_alpha = 1,
symshape = 22,
all_alpha = 0.3,
all_size = 2.5,
all_shape = 0,
all_jitter = 0,
ewid = 0.2,
group_wid = 0.8,
TextXAngle = 0,
LogYTrans,
LogYBreaks = waiver(),
LogYLabels = waiver(),
LogYLimits = NULL,
facet_scales = "fixed",
fontsize = 20,
symthick,
ethick,
ColPal = c("okabe_ito", "all_grafify", "bright", "contrast", "dark", "fishy", "kelly",
"light", "muted", "pale", "r4", "safe", "vibrant"),
ColSeq = TRUE,
ColRev = FALSE,
...
)
```

- data
a data table, e.g. data.frame or tibble.

- xcol
name of the column with the variable to plot on X axis (will be converted to a factor/categorical variable).

- ycol
name of the column to plot on quantitative variable on the Y axis.

- points
name of the column with grouping within the factor plotted on X-axis (will be converted to a factor/categorical variable).

- shapes
name of the column that contains matched observations (e.g. subject IDs, experiment number) or another variable to pass on to symbol shapes (will be converted to a factor/categorical variable). If not provided, the shapes for all groups is the same, and can be changed with

`all_shapes`

,`all_alpha`

,`all_size`

etc.- facet
add another variable from the data table to create faceted graphs using

`ggplot2`

facet_wrap.- ErrorType
select the type of error bars to display. Default is "SD" (standard deviation). Other options are "SEM" (standard error of the mean) and "CI95" (95% confidence interval based on t distributions).

- symsize
size of symbols, default set to 3.5.

- s_alpha
fractional opacity of symbols, default set to 1 (i.e. fully opaque).

- symshape
The mean is shown with symbol of the shape number 21 (default, filled circle). Pick a number between 0-25 to pick a different type of symbol from ggplot2.

- all_alpha
fractional opacity of all data points (default = 0.3).

- all_size
size of symbols of all data points, if shown (default = 2.5).

- all_shape
all data points are shown with symbols of the shape number 0 (default, open square). Pick a number between 0-25 to pick a different type of symbol from ggplot2. This argument only has an effect if

`shapes`

argument is used.- all_jitter
reduce overlap of all data points, if shown, by setting a value between 0-1 (default = 0).

- ewid
width of error bars, default set to 0.2.

- group_wid
space between the factors along X-axis, i.e., dodge width. Default

`group_wid = 0.8`

(range 0-1), which can be set to 0 if you'd like the two plotted as`position = position_identity()`

.- TextXAngle
orientation of text on X-axis; default 0 degrees. Change to 45 or 90 to remove overlapping text.

- LogYTrans
transform Y axis into "log10" or "log2"

- LogYBreaks
argument for

`ggplot2[scale_y_continuous]`

for Y axis breaks on log scales, default is`waiver()`

, or provide a vector of desired breaks.- LogYLabels
argument for

`ggplot2[scale_y_continuous]`

for Y axis labels on log scales, default is`waiver()`

, or provide a vector of desired labels.- LogYLimits
a vector of length two specifying the range (minimum and maximum) of the Y axis.

- facet_scales
whether or not to fix scales on X & Y axes for all facet facet graphs. Can be

`fixed`

(default),`free`

,`free_y`

or`free_x`

(for Y and X axis one at a time, respectively).- fontsize
parameter of

`base_size`

of fonts in`theme_classic`

, default set to size 20.- symthick
size (in 'pt' units) of outline of symbol lines (

`stroke`

), default =`fontsize`

/22.- ethick
thickness of error bar lines; default

`fontsize`

/22.- ColPal
grafify colour palette to apply, default "okabe_ito"; see

`graf_palettes`

for available palettes.- ColSeq
logical TRUE or FALSE. Default TRUE for sequential colours from chosen palette. Set to FALSE for distant colours, which will be applied using

`scale_fill_grafify2`

.- ColRev
whether to reverse order of colour within the selected palette, default F (FALSE); can be set to T (TRUE).

- ...
any additional arguments to pass to

`ggplot2`

stat_summary or`ggplot2`

geom_point.

This function returns a `ggplot2`

object of class "gg" and "ggplot".

These can be especially useful when the fourth variable `shapes`

is a random factor or blocking factor (up to 25 levels are allowed; there will be an error with more levels). The `shapes`

argument can be left blank to plot ordinary 2-way ANOVAs without blocking.

In `plot_4d_point_sd`

and `plot_4d_scatterbar`

, the default error bar is SD (can be changed to SEM or CI95). In `plot_4d_point_sd`

, a large coloured symbol is plotted at the mean, all other data are shown as smaller symbols. Boxplot uses `geom_boxplot`

to depict median (thicker line), box (interquartile range (IQR)) and the whiskers (1.5*IQR).

Colours can be changed using `ColPal`

, `ColRev`

or `ColSeq`

arguments.
`ColPal`

can be one of the following: "okabe_ito", "dark", "light", "bright", "pale", "vibrant, "muted" or "contrast".
`ColRev`

(logical TRUE/FALSE) decides whether colours are chosen from first-to-last or last-to-first from within the chosen palette.
`ColSeq`

(logical TRUE/FALSE) decides whether colours are picked by respecting the order in the palette or the most distant ones using `colorRampPalette`

.

The resulting `ggplot2`

graph can take additional geometries or other layers.

```
#4d version for 2-way data with blocking
plot_4d_point_sd(data = data_2w_Tdeath,
xcol = Genotype,
ycol = PI,
points = Time,
shapes = Experiment)
#4d version without blocking factor
#`shapes` can be left blank
plot_4d_point_sd(data = data_2w_Festing,
xcol = Strain,
ycol = GST,
points = Treatment)
```