Learn R Programming

simplevis (version 6.2.0)

gg_boxplot_col: Boxplot ggplot that is coloured

Description

Boxplot ggplot that is coloured

Usage

gg_boxplot_col(
  data,
  x_var,
  y_var = NULL,
  col_var,
  pal = NULL,
  pal_na = "#7F7F7F",
  pal_rev = FALSE,
  alpha_fill = 0.5,
  alpha_line = 1,
  alpha_point = 1,
  size_line = 0.5,
  size_point = 1.5,
  size_width = 0.5,
  title = NULL,
  title_wrap = 80,
  subtitle = NULL,
  subtitle_wrap = 80,
  x_expand = ggplot2::waiver(),
  x_labels = snakecase::to_sentence_case,
  x_na_rm = FALSE,
  x_rev = FALSE,
  x_title = NULL,
  x_title_wrap = 50,
  y_balance = FALSE,
  y_expand = c(0, 0),
  y_labels = scales::label_comma(),
  y_breaks_n = 5,
  y_title = NULL,
  y_title_wrap = 50,
  y_zero = FALSE,
  y_zero_line = NULL,
  col_labels = snakecase::to_sentence_case,
  col_legend_none = FALSE,
  col_na_rm = FALSE,
  col_rev = FALSE,
  col_title = NULL,
  col_title_wrap = 25,
  caption = NULL,
  caption_wrap = 80,
  theme = gg_theme(gridlines_h = TRUE),
  stat = "boxplot",
  ymin_var = NULL,
  ylower_var = NULL,
  ymiddle_var = NULL,
  yupper_var = NULL,
  ymax_var = NULL,
  mobile = FALSE
)

Arguments

data

An ungrouped summarised tibble or dataframe generally in a structure to be transformed to boxplot statistics (or alternatively in a structure of summary boxplot statistics). Required input.

x_var

Unquoted categorical variable to be on the x scale (i.e. character, factor, logical). Required input.

y_var

Unquoted numeric variable to be on the y scale for when stat = "boxplot" is selected.

col_var

Unquoted categorical variable to colour the fill of the boxes. Required input.

pal

Character vector of hex codes.

pal_na

The hex code or name of the NA colour to be used.

pal_rev

Reverses the palette. Defaults to FALSE.

alpha_fill

The opacity of the fill. Defaults to 0.5.

alpha_line

The opacity of the outline. Defaults to 1.

alpha_point

The opacity of the outlier points. Defaults to 1.

size_line

The size of the outlines of boxplots. Defaults to 0.5.

size_point

The size of the outlier points. Defaults to 1.5.

size_width

Width of boxes. Defaults to 0.5.

title

Title string.

title_wrap

Number of characters to wrap the title to. Defaults to 75.

subtitle

Subtitle string.

subtitle_wrap

Number of characters to wrap the subtitle to. Defaults to 75.

x_expand

A vector of range expansion constants used to add padding to the x scale, as per the ggplot2 expand argument in ggplot2 scales functions.

x_labels

A function or named vector to modify x scale labels. If NULL, categorical variable labels are converted to sentence case. Use ggplot2::waiver() to keep x labels untransformed.

x_na_rm

TRUE or FALSE of whether to include x_var NA values. Defaults to FALSE.

x_rev

For a categorical x variable, TRUE or FALSE of whether the x variable variable is reversed. Defaults to FALSE.

x_title

x scale title string. Defaults to NULL, which converts to sentence case with spaces. Use "" if you would like no title.

x_title_wrap

Number of characters to wrap the x title to. Defaults to 50.

y_balance

For a numeric y variable, add balance to the y scale so that zero is in the centre of the y scale.

y_expand

A vector of range expansion constants used to add padding to the y scale, as per the ggplot2 expand argument in ggplot2 scales functions.

y_labels

A function or named vector to modify y scale labels. Use ggplot2::waiver() to keep y labels untransformed.

y_breaks_n

For a numeric or date x variable, the desired number of intervals on the x scale, as calculated by the pretty algorithm. Defaults to 5.

y_title

y scale title string. Defaults to NULL, which converts to sentence case with spaces. Use "" if you would like no title.

y_title_wrap

Number of characters to wrap the y title to. Defaults to 50.

y_zero

For a numeric y variable, TRUE or FALSE of whether the minimum of the y scale is zero. Defaults to TRUE.

y_zero_line

For a numeric y variable, TRUE or FALSE whether to add a zero reference line to the y scale. Defaults to TRUE if there are positive and negative values in y_var. Otherwise defaults to FALSE.

col_labels

A function or named vector to modify colour scale labels. Defaults to snakecase::to_sentence_case. Use ggplot2::waiver() to keep colour labels untransformed.

col_legend_none

TRUE or FALSE of whether to remove the legend.

col_na_rm

TRUE or FALSE of whether to include col_var NA values. Defaults to FALSE.

col_rev

TRUE or FALSE of whether the colour scale is reversed. Defaults to FALSE.

col_title

Colour title string for the legend. Defaults to NULL, which converts to sentence case with spaces. Use "" if you would like no title.

col_title_wrap

Number of characters to wrap the colour title to. Defaults to 25. Not applicable where mobile equals TRUE.

caption

Caption title string.

caption_wrap

Number of characters to wrap the caption to. Defaults to 80.

theme

A ggplot2 theme.

stat

String of "boxplot" or "identity". Defaults to "boxplot".

ymin_var

Unquoted numeric variable for minimum of whisker on the y scale for when stat = "identity" is selected.

ylower_var

Unquoted numeric variable for minimum of box on the y scale for when stat = "identity" is selected.

ymiddle_var

Unquoted numeric variable for middle of box on the y scale for when stat = "identity" is selected.

yupper_var

Unquoted numeric variable for maximum of box on the y scale for when stat = "identity" is selected.

ymax_var

Unquoted numeric variable for maximum of whisker on the y scale for when stat = "identity" is selected.

mobile

Whether the plot is to be displayed on a mobile device. Defaults to FALSE.

Value

A ggplot object.

Examples

Run this code
# NOT RUN {
library(simplevis)
library(dplyr)
library(palmerpenguins)

gg_boxplot_col(penguins, 
               x_var = species, 
               y_var = body_mass_g, 
               col_var = sex, 
               col_na_rm = TRUE)

#For ggplotly, pipe in plotly::layout(boxmode = "group") layer

plot_data <- penguins %>%
  group_by(species, sex) %>%
  summarise_boxplot_stats(body_mass_g)

outliers <- penguins %>% 
  group_by(species, sex) %>% 
  summarise_boxplot_outliers(body_mass_g)

size_width <- 0.5

gg_boxplot_col(plot_data,
               x_var = species,
               ymin_var = min,
               ylower_var = lower,
               ymiddle_var = middle,
               yupper_var = upper,
               ymax_var = max,
               col_var = sex,
               size_width = size_width,
               stat = "identity",
               y_title = "Body mass g",
               y_breaks_n = 4, 
               col_na_rm = TRUE) +
               ggplot2::geom_point(ggplot2::aes(x = species, y = body_mass_g, col = sex), 
                     size = 0.75, 
                     position = ggplot2::position_dodge(width = size_width),
                     data = outliers)

# }

Run the code above in your browser using DataLab