This function takes a data table, X and Y variables, and plots a graph with a dotplot, box-whiskers and violinplot using geom_violin, geom_boxplot geom_dotplot geometries.

plot_dotviolin(
  data,
  xcol,
  ycol,
  dotsize = 1.5,
  dotthick = 1,
  bvthick = 1,
  bwid = 0.2,
  trim = TRUE,
  scale = "width",
  b_alpha = 1,
  v_alpha = 1,
  d_alpha = 1,
  ColPal = "all_grafify",
  ColRev = FALSE,
  ColSeq = TRUE,
  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.

dotsize

size of dots relative to binwidth used by geom_dotplot. Default set to 1.5, increase/decrease as needed.

dotthick

thickness of dot border (stroke parameter of geom_dotplot), default set to 1.

bvthick

thickness of violin and boxplot lines; default 1.

bwid

width of boxplots; default 0.2

trim

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

scale

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

b_alpha

fractional opacity of violins, default set to 1 (i.e. maximum opacity & zero transparency). For white boxplots inside violins, set b_alpha = 0.

v_alpha

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

d_alpha

fractional opacity of dots, 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".

ColRev

whether to reverse order of colour choice, default F (FALSE); can be set to T (TRUE).

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.

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.

...

any additional arguments to pass to ggplot2geom_boxplot, ggplot2geom_dotplot or ggplot2geom_violin.

Value

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

Details

Note that the geom_violin options are set as follows: scale = "width". The trim = T set by default can be changed when calling the function. The boxplot shows IQR, and whiskers show 1.5*IQR; the median is marked with a thicker horizontal line.

The X variable is mapped to the fill aesthetic in both violinplot and dotplot. 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.

The size of dots can be adjusted using the parameter, which is dotsize = 1 by default.

This function is related to plot_scatterbar_sd, plot_dotbar_sd and plot_dotviolin.

Examples


#plot with trim = FALSE
plot_dotviolin(data = data_t_pdiff, 
xcol = Condition, ycol = Mass, 
dotsize = 2, trim = FALSE)
#> Bin width defaults to 1/30 of the range of the data. Pick better value with `binwidth`.


#white boxplots
plot_dotviolin(data = data_t_pdiff, 
xcol = Condition, ycol = Mass,
trim = FALSE, b_alpha = 0, 
ColPal = "pale", ColSeq = FALSE)
#> Bin width defaults to 1/30 of the range of the data. Pick better value with `binwidth`.