R/plot_4d_scatterbar.R
plot_4d_scatterbar.Rd
The functions plot_3d_scatterbar
, plot_3d_scatterbox
, plot_4d_scatterbar
and plot_4d_scatterbox
are useful for plotting one-way or two-way ANOVA designs with randomised blocks or repeated measures. The blocks or subjects can be mapped to the shapes
argument in both functions (up to 25 levels can be mapped to shapes
; there will be an error if this number is exceeded). The 3d versions use the categorical variable (xcol
) for grouping (e.g. one-way ANOVA designs), and 4d versions take an additional grouping variable (e.g. two-way ANOVA designs) that is passed to either boxes
or bars
argument.
plot_4d_scatterbar(
data,
xcol,
ycol,
bars,
shapes,
symsize = 2.5,
symthick = 1,
jitter = 0.1,
ewid = 0.2,
fontsize = 20,
b_alpha = 1,
s_alpha = 1,
ColPal = "all_grafify",
ColRev = FALSE,
ColSeq = TRUE,
TextXAngle = 0
)
a data table, e.g. data.frame or tibble.
name of the column with the categorical factor to plot on X axis. If column is numeric, enter as factor(col)
.
name of the column to plot on quantitative variable on the Y axis.
name of the column containing grouping within the factor plotted on X axis. Can be categorical or numeric X. If your table has numeric X and you want to plot as factor, enter xcol = factor(name of colum)
.
name of the column that contains matched observations, e.g. subject IDs, experiment ID.
size of symbols, default set to 3.
size of outline of symbol lines (stroke = 1.0
), default set to 1.0
extent of jitter (scatter) of symbols, default is 0.1. Increase to reduce symbol overlap, set to 0 for aligned symbols.
width of error bars, default set to 0.2.
parameter of base_size
of fonts in theme_classic
, default set to size 20.
fractional opacity of bars, default set to 1 (i.e. maximum opacity & zero transparency).
fractional opacity of symbols, default set to 1 (i.e. maximum opacity & zero transparency).
grafify colour palette to apply, default "all_grafify"; alternatives: "okabe_ito", "bright", "pale", "vibrant", "contrast", "muted" "dark", "light".
whether to reverse order of colour choice, default F (FALSE); can be set to T (TRUE).
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
.
orientation of text on X-axis; default 0 degrees. Change to 45 or 90 to remove overlapping text.
This function returns a ggplot2
object of class "gg" and "ggplot".
These functions rely on ggplot
with geom_point
and geom_bar
(through stat_summary
) or geom_boxplot
geometries.
Variables other than the quantitative variable (ycol
) will be automatically converted to categorical variables even if they are numeric in the data table.
Shapes are always plotted in black colour, and their opacity can be changed with the s_alpha
argument and overlap can be reduced with the jitter
argument. Other arguments are similar to other plot functions as briefly explained below.
Bars depict means using stat_summary
with geom = "bar", fun = "mean"
, and bar width is set to 0.7 (cannot be changed). Error bar width can be changed with the ewid
argument.
Boxplot geometry uses geom_boxplot
with position = position_dodge(width = 0.9), width = 0.6
. The thick line within the boxplot depicts the median, the box the IQR (interquantile range) and the whiskers show 1.5*IQR.
In 4d versions, the two grouping variables (i.e. xcol
and either boxes
or bars
) are passed to ggplot aesthetics through group = interaction{ xcol, shapes}
.
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
.
All four functions can be expanded further, for example with facet_grid
or facet_wrap
.
#3d version for 1-way data with blocking
plot_3d_scatterbox(data = data_1w_death,
xcol = Genotype, ycol = Death, shapes = Experiment)
#compare above graph to
plot_scatterbox(data = data_1w_death, xcol = Genotype, ycol = Death)
#4d version for 2-way data with blocking
plot_4d_scatterbox(data = data_2w_Tdeath,
xcol = Genotype,
ycol = PI,
boxes = Time,
shapes = Experiment)
plot_4d_scatterbar(data = data_2w_Festing,
xcol = Strain,
ycol = GST,
bars = Treatment,
shapes = Block)