Package 'ggtukey'

Title: Compact Letter Displays for Multiple Comparisons in 'ggplot2'
Description: Provides a simple interface to visualize paired comparisons in 'ggplot2' by adding compact letter displays (i.e. Tukey letters).
Authors: Ethan Bass [aut, cre]
Maintainer: Ethan Bass <[email protected]>
License: GPL (>= 3)
Version: 0.4.0
Built: 2024-11-01 03:24:37 UTC
Source: https://github.com/ethanbass/ggtukey

Help Index


Create ggplot boxplot with compact letter display

Description

Performs pairwise comparisons using TukeyHSD and produces boxplots with compact letter display showing significance pairwise differences. Letters are produced by multcompLetters. Plots are produced by ggplot2. Raw data can also be overlaid in various ways according to the value of raw.

Usage

boxplot_letters(
  data,
  x,
  y,
  fill,
  group,
  test = c("tukey", "kruskalmc"),
  type = c("two-way", "one-way"),
  where = c("box", "whisker", "mean", "median", "se", "sd", "cl_normal", "cl_boot"),
  raw = c("none", "points", "dots", "jitter"),
  pt_col = "slategray",
  ...,
  hjust = 0,
  vjust = -0.2,
  lab_size = 4,
  na.rm = TRUE,
  threshold = 0.05
)

Arguments

data

A data.frame in "long" format.

x

variable to plot on x axis.

y

variable to plot on y axis.

fill

column or color to fill boxplots

group

A grouping variable (to allow faceting).

test

Which test to run for pairwise comparisons. Either tukey (the default) or kruskalmc.

type

If a grouping variable is provided, determines whether to run separate tests for each facet (one-way) or a single (two-way) test (with an interaction term between x and group). Defaults to two-way. This argument only applies if the Tukey test is selected, since there is no two-way Kruskal-Wallis test.

where

Where to put the letters. Either above the box (box) or upper whisker (whisker) of a boxplot; at the mean or median; or at the top of the error bars calculated from the standard error (se), standard deviation sd, or 95% confidence intervals returned by smean.cl.normal, or smean.cl.boot.

raw

Whether to plot raw data and (if so), how. The current options are none, geom_point, geom_dotplot, or geom_jitter.

pt_col

Color of points, if raw data is plotted.

...

Additional arguments to geom_point, geom_dotplot, or geom_jitter, according to the value of raw.

hjust

Horizontal adjustment of label. Argument to geom_text.

vjust

Vertical adjustment of label. Argument to geom_text.

lab_size

Label size. Argument to geom_text.

na.rm

Logical. Whether to remove observations with NAs for the provided factors (i.e. x and group) before plotting.

threshold

Statistical threshold for significance. Defaults to 0.05.

Details

Allows group variable for faceting

Value

Returns the specified plot as a ggplot object.

Note

Adapted from a helpful blog post by Justin Mathias.

Author(s)

Ethan Bass

Examples

set.seed(1)
data <- data.frame("Category" = c(rep("Low", 10), rep("Medium", 10), rep("High", 10)),
                   "Value" = c(rnorm(10, 5), rnorm(10, 5.5), rnorm(10, 10)),
                   "Size" = c("Big","Small"))
boxplot_letters(data, Category, Value)
boxplot_letters(data, x=Category, y=Value, group=Size)

Create Compact Letter Display Layer Groups with at least one letter in common are not significantly different.

Description

Create Compact Letter Display Layer Groups with at least one letter in common are not significantly different.

Usage

geom_tukey(
  test = c("tukey", "kruskalmc"),
  type = c("two-way", "one-way"),
  threshold = 0.05,
  where = c("box", "whisker", "mean", "median", "se", "sd", "cl_normal", "cl_boot"),
  hjust = 0,
  vjust = -0.2,
  geom = "text",
  size = 4,
  color = "black",
  fill = "white",
  alpha = 1,
  na.rm = TRUE
)

Arguments

test

Which test to run for pairwise comparisons. Either tukey (the default) or kruskalmc.

type

If a grouping variable is provided, determines whether to run separate tests for each facet (one-way) or one (two-way) test with an interaction term between x and group. Defaults to two-way.

threshold

Statistical threshold for significance. Defaults to 0.05.

where

Where to put the letters. Either above the box (box) or upper whisker (whisker) of a boxplot; at the mean or median; or at the top of the error bars calculated from the standard error (se), standard deviation sd, or 95% confidence intervals returned by smean.cl.normal, or smean.cl.boot.

hjust

Horizontal adjustment of the label. (Argument to geom_text).

vjust

Vertical adjustment of the label. (Argument to geom_text).

geom

Which geom to use to plot letters. Options are text and label.

size

Label size. Argument to geom_text.

color

Label color.

fill

Label fill (only applies if geom == "label").

alpha

Label transparency. Defaults to 1.

na.rm

Logical. Whether to remove observations with NAs for the provided factors (i.e. x and group) before plotting. Defaults to TRUE.

Note

Thank you to Hiroaki Yutani and Simon P. Couch for a couple of very helpful blog posts (1, 2) describing the ggplot_add syntax.

Author(s)

Ethan Bass

References

  • Piepho, Hans-Peter. An Algorithm for a Letter-Based Representation of All-Pairwise Comparisons. Journal of Computational and Graphical Statistics 13, no. 2 (June 1, 2004): 456–66. doi:10.1198/1061860043515.

  • Piepho, Hans-Peter. “Letters in Mean Comparisons: What They Do and Don’t Mean.” Agronomy Journal 110, no. 2 (2018): 431–34. doi:10.2134/agronj2017.10.0580

  • Graves S, Piepho H, Dorai-Raj LSwhfS (2019). multcompView: Visualizations of Paired Comparisons. R package version 0.1-8. https://CRAN.R-project.org/package=multcompView

Examples

library(ggplot2)
set.seed(1)
data <- data.frame("Category" = c(rep("Low", 10), rep("Medium", 10), rep("High", 10)),
                  "Value" = c(rnorm(10, 5), rnorm(10, 5.5), rnorm(10, 10)),
                  "Size" = c("Big","Small"))
data |> ggplot(aes(x=Category, y=Value)) + geom_boxplot() + facet_wrap(~Size) + geom_tukey()
data |> ggplot(aes(x=Size, y=Value)) + geom_boxplot() + facet_wrap(~Category) + geom_tukey()

Check whether color specifications exists.

Description

Function to check whether all specified colors are actual colors.

Usage

is.color(x, return.colors = FALSE)

Arguments

x

Vector of any of the three kinds of R color specifications, i.e., either a color name (as listed by palettecolors()), a hexadecimal string of the form '#rrggbb' or '#rrggbbaa' (see rgb), or a positive integer i meaning palette()[i].

return.colors

Logical: logical values (FALSE, default) or returning colors (TRUE)

Value

Logical value (or colors)

Note

Adapted from plotfunctions packaage https://cran.r-project.org/web/packages/plotfunctions/index.html

Author(s)

Jacolien van Rij

Examples

# correct color definitions:
is.color(c('#FF0000FF', '#00FF00FF', '#0000FFFF'))
is.color(c('red', 'steelblue', 'green3'))
is.color(c(1,7,28))
# mixtures are possible too:
is.color(c('#FF0000FF', 'red', 1, '#FF0000', rgb(.1,0,0)))

# return colors:
# note that 28 is converted to 4...
is.color(c(1,7,28), return.colors=TRUE)
is.color(c('#FF0000CC', 'red', 1, '#FF0000'), return.colors=TRUE)

# 4 incorrect colors, 1 correct:
test <- c('#FH0000', 3, '#FF00991', 'lavendel', '#AABBCCFFF')
is.color(test)
is.color(test, return.colors=TRUE)