Plotting one-way or two-way ANOVAs

Graphs with more than two variables with or without blocking factor/repeated-measures (e.g. factorial ANOVAs)

Code for two-way ANOVAs in ggplot2 can be quite long. grafify simplifies this a lot. You will need just 4 lines of code for a two-way ANOVA in R using grafify.

Data format

See the data help page and ensure data table is in the long-format.

Saving graphs

See Saving graphs for tips on how to save plots for making figures.

Experimental designs

The d in the name stands for dimensions or variables in the data. plot_3d... functions are for 1-way ANOVA with randomised blocks/repeated measures and plot_4d_... for 2-way ANOVA without or with randomised blocks; plot_4d_... require a second categorical factor that is mapped to bars or boxes through the points, bars or boxes argument.

These functions are generally useful when a third variable needs to be plotted to shapes of symbols. This is handy for plotting experiments with randomised blocks or repeated measures, where the shape of the symbol (shapes argument) is mapped to a “blocking factor” variable in the data table.

Three or more variables

Also see the vignette on graphing three or more variables. This page is an abridged version for plotting simple/ordinary and randomised-block design ANOVAs.

One-way ANOVAs

Simple one-way ANOVA

Any of the plot_ function can be used for this. See the vignette on plotting data with two variables.

One-way ANOVA with randomised-blocks

Use any of the plot_3d_ functions for this. The shapes argument will be mapped to the blocking variable. This variable cannot be left blank. If you don’t have a blocking variable, use the plot_ functions.

In some graphs below I have used fontsize = 18 to fit the the output better on the web page.

plot_3d_point_sd(data_1w_death,
                 Genotype,          #categorical X variable
                 Death,             #numeric Y variable
                 Experiment,        #blocking factor 
                 fontsize = 18)+    #font size
  labs(title = "1way RB, mean/SD")
#no blocking variable
plot_point_sd(data_1w_death,
              Genotype,          #categorical X variable
              Death,             #numeric Y variable
              fontsize = 18)+    #font size
  labs(title = "1way RB, mean/SEM")

In these graphs, the shape of the small and large symbols can be changed.

plot_point_sd(data_1w_death,
              Genotype,          #categorical X variable
              Death,             #numeric Y variable 
              all_shape = 0)+    #change shape of small symbols
  labs(title = "1way RB, mean/SEM",
       subtitle = "(all_shape = 0)")

If you don’t want to use many different colours along the X axis, use the Single_colour argument.

plot_3d_scatterbox(data_1w_death, #data table   
                   Genotype,      #X variable
                   Death,         #Y variable
                   Experiment,    #shape variable
                   SingleColour = "pale_red", #colour
                   fontsize = 18)+           #font size
  labs(title = "1w RB ANOVA, single colour")

Two-way ANOVAs

All of the plot_4d_ functions can be used for two-way ANOVAs. They can also plot up to two additional variables.

Simple two-way ANOVA

Here use the plot_4d_point_sd, plot_4d_scatterbar, plot_4d_scatterbox or plot_4d_scatterbox as shown in the three or more variables vignette without supplying a value to the shape argument. This is new since v4.0 of grafify.

plot_4d_point_sd(data_2w_Tdeath,           #data table
                 Genotype,                 #categorical X variable
                 PI,                       #numeric Y variable
                 Time,                     #2nd categorical factor
                 fontsize = 18)+           #font size
  labs(title = "2way, mean/SD",
       subtitle = "(simple 2way ANOVA)")
plot_4d_scatterbox(data_2w_Tdeath,           #data table
                   Genotype,                 #categorical X variable
                   PI,                       #numeric Y variable
                   Time,                     #2nd categorical factor
                   fontsize = 18)+           #font size
  labs(title = "2way, scatter/box",
       subtitle = "(simple 2way ANOVA)")

Two-way ANOVA with randomised blocks

Same as above but supply the blocking factor to the shapes argument. See more examples in the three or more variables vignette.

Compare these graphs with the ones above.

plot_4d_point_sd(data_2w_Tdeath,           #data table
                 Genotype,                 #categorical X variable
                 PI,                       #numeric Y variable
                 Time,                     #2nd categorical factor
                 Experiment,               #blocking factor
                 fontsize = 18)+           #font size
  labs(title = "2way/RM, mean/SD",
       subtitle = "(shapes = randomised blocks)")
plot_4d_scatterbox(data_2w_Tdeath,           #data table
                   Genotype,                 #categorical X variable
                   PI,                       #numeric Y variable
                   Time,                     #2nd categorical factor
                   Experiment,                #blocking factor
                   fontsize = 18)+           #font size
  labs(title = "2way/RM, scatter/box",
       subtitle = "(shapes = randomised blocks)")