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.

  1. plot_4d_point_sd (mean & SD, SEM or CI95 error bars)

  2. plot_4d_scatterbar (bar & SD, SEM or CI95 error bars)

  3. plot_4d_scatterbox (box & whiskers)

  4. 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,
  ...
)

Arguments

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 ggplot2facet_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 ggplot2stat_summary or ggplot2geom_point.

Value

This function returns a ggplot2 object of class "gg" and "ggplot".

Details

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.

Examples

#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)