One of 4 related functions for plotting 1-way ANOVA designs with a blocking factor.

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

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

  3. plot_3d_scatterbox (box & whiskers)

  4. plot_3d_scatterviolin (box & whiskers, violin)

plot_3d_scatterviolin(
  data,
  xcol,
  ycol,
  shapes,
  facet,
  symsize = 3,
  s_alpha = 0.8,
  b_alpha = 0,
  v_alpha = 1,
  bwid = 0.3,
  vadjust = 1,
  jitter = 0.1,
  TextXAngle = 0,
  scale = "width",
  trim = TRUE,
  LogYTrans,
  LogYBreaks = waiver(),
  LogYLabels = waiver(),
  LogYLimits = NULL,
  facet_scales = "fixed",
  fontsize = 20,
  symthick,
  bthick,
  vthick,
  bvthick,
  ColPal = c("okabe_ito", "all_grafify", "bright", "contrast", "dark", "fishy", "kelly",
    "light", "muted", "pale", "r4", "safe", "vibrant"),
  ColSeq = TRUE,
  ColRev = FALSE,
  SingleColour = "NULL",
  ...
)

Arguments

data

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

xcol

name of the column with the categorical factor to be plotted on X axis. If your table has numeric X, enter xcol = factor(name of colum).

ycol

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

shapes

name of the column with the second categorical factor in a two-way ANOVA design.

facet

add another variable from the data table to create faceted graphs using ggplot2facet_wrap.

symsize

size of symbols, default set to 3.

s_alpha

fractional opacity of symbols, default set to 0.8 (i.e. 80% opacity). Set s_alpha = 0 to not show scatter plot.

b_alpha

fractional opacity of boxes. Default is set to 0, which results in white boxes inside violins. Change to any value >0 up to 1 for different levels of transparency.

v_alpha

fractional opacity of violins, default set to 1.

bwid

width of boxes (default 0.3).

vadjust

number to adjust the smooth/wigglyness of violin plot (default is 1).

jitter

extent of jitter (scatter) of symbols, default is 0.1. Increase to reduce symbol overlap, set to 0 for aligned symbols.

TextXAngle

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

scale

set to "area" by default, can be changed to "count" or "width".

trim

set whether tips of violin plot should be trimmed at high/low data. Default trim = T, can be changed to F.

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.

bthick

thickness (in 'pt' units) of boxplots; default = fontsize/22.

vthick

thickness (in 'pt' units) of violins; default = fontsize/22.

bvthick

thickness (in 'pt' units) of both violins and boxplots; 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).

SingleColour

a colour hexcode (starting with #), a number between 1-154, or names of colours from grafify or base R palettes to fill along X-axis aesthetic. Accepts any colour other than "black"; use grey_lin11, which is almost black.

...

any additional arguments to pass to ggplot2geom_boxplot or ggplot2geom_violin.

Value

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

Details

The blocking factor (or any other categorical variable) can be mapped to the shapes argument (up to 25 levels allowed). Variables passed to xcol and shapes are internally converted to factors even if they are numeric or other type of variables.

In plot_3d_point_sd and plot_3d_scatterbar, the default error bar is SD (can be changed to SEM or CI95). In plot_3d_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

#3d version for 1-way data with blocking
plot_3d_scatterviolin(data = data_1w_death, 
xcol = Genotype, ycol = Death, 
shapes = Experiment)

#use plot_scatterviolin without a blocking factor