This function takes a data table, categorical X and numeric Y variables, and plots a graph with a jitterplot or scatterplot and bars showing means with SD error bars. It uses stat_summary with geom = "bar", and geom_point with position = position_jitter(width = 0.05).

plot_scatterbar_sd(
  data,
  xcol,
  ycol,
  symsize = 2.5,
  symthick = 1,
  bwid = 0.7,
  ewid = 0.3,
  jitter = 0,
  b_alpha = 1,
  s_alpha = 1,
  ColPal = "all_grafify",
  ColSeq = TRUE,
  ColRev = FALSE,
  TextXAngle = 0,
  fontsize = 20
)

Arguments

data

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

xcol

name of the column to plot on X axis. This should be a categorical variable.

ycol

name of the column to plot on quantitative Y axis. This should be a quantitative variable.

symsize

size of point symbols, default set to 2.

symthick

thickness of symbol border, default set to 1.

bwid

width of bars, default set to 0.7.

ewid

width of error bars, default set to 0.3.

jitter

extent of jitter (scatter) of symbols, default is 0 (i.e. aligned symbols). To reduce symbol overlap, try 0.1-0.3 or higher.

b_alpha

fractional opacity of bars, default set to 1 (i.e. maximum opacity & zero transparency).

s_alpha

fractional opacity of symbols, default set to 1 (i.e. maximum opacity & zero transparency).

ColPal

grafify colour palette to apply, default "all_grafify"; alternatives: "okabe_ito", "bright", "pale", "vibrant", "contrast", "muted" "dark", "light".

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 choice, default F (FALSE); can be set to T (TRUE).

TextXAngle

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

fontsize

parameter of base_size of fonts in theme_classic, default set to size 20.

Value

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

Details

Standard deviation (SD) is plotted through stat_summary calculated using mean_sdl from the ggplot2 package (get help with ?mean_sdl), and 1x SD is plotted (fun.arg = list(mult = 1). The X variable is mapped to the fill aesthetic in the bar geometry and colour aesthetic in geom_point.

Colours can be changed using ColPal, ColRev or ColSeq arguments. Colours available can be seen quickly with plot_grafify_palette. 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.

Three types of plots are available for scatter/jitter symbols and either bars+SD, boxplot or violin plots: plot_scatterbar_sd, plot_scatterbox and plot_scatterviolin. These are related to the three "dot" versions that use a different geometry for symbols: plot_dotbox, plot_dotbar_sd and plot_dotviolin.

Examples

#with jitter
plot_scatterbar_sd(data = data_cholesterol, 
xcol = Treatment, ycol = Cholesterol, 
jitter = 0.1)

#white bars
plot_scatterbar_sd(data = data_cholesterol, 
xcol = Treatment, ycol = Cholesterol,
b_alpha = 0)