Title: A 'ggplot2' Extension to Make Normal Violin Plots
Version: 0.2.1
Description: Uses 'ggplot2' to create normally distributed violin plots with specified means and standard deviations. This function can be useful in showing hypothetically normal distributions and confidence intervals.
License: CC0
URL: https://github.com/wjschne/ggnormalviolin, https://wjschne.github.io/ggnormalviolin/
BugReports: https://github.com/wjschne/ggnormalviolin/issues
Imports: dplyr, ggplot2, grid, magrittr, scales
Suggests: knitr, quarto, ragg, rmarkdown, spelling, testthat
VignetteBuilder: quarto
Encoding: UTF-8
Language: en-US
RoxygenNote: 7.3.2
NeedsCompilation: no
Packaged: 2025-03-29 15:31:00 UTC; renee
Author: W. Joel Schneider ORCID iD [aut, cre]
Maintainer: W. Joel Schneider <w.joel.schneider@gmail.com>
Repository: CRAN
Date/Publication: 2025-03-29 15:50:02 UTC

Pipe operator

Description

See magrittr::%>% for details.

Usage

lhs %>% rhs

Arguments

lhs

A value or the magrittr placeholder.

rhs

A function call using the magrittr semantics.

Value

The result of calling 'rhs(lhs)'.


GeomNormalViolin

Description

GeomNormalViolin

Format

An object of class GeomNormalViolin (inherits from Geom, ggproto, gg) of length 5.


StatNormViolin

Description

StatNormViolin

Format

An object of class StatNormalViolin (inherits from Stat, ggproto, gg) of length 5.


Creates normal violins with specified means and standard deviations

Description

Creates normal violins with specified means and standard deviations

Usage

geom_normalviolin(
  mapping = NULL,
  data = NULL,
  mu = NULL,
  sigma = NULL,
  nsigma = 4,
  p_tail = 0,
  p_lower_tail = p_tail/2,
  p_upper_tail = p_tail/2,
  tail_fill = "black",
  tail_alpha = 0.4,
  width = 0.6,
  upper_limit = NA,
  lower_limit = NA,
  face_left = TRUE,
  face_right = TRUE,
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE,
  ...
)

Arguments

mapping

Set of aesthetic mappings created by ggplot2::aes().

data

The data to be displayed in this layer

mu

A vector of means

sigma

A vector of standard deviations

nsigma

The number of standard deviations each violin should extend

p_tail

The 2-tailed proportion that should be highlighted. Can be overridden with p_lower_tail and/or p_upper_tail

p_lower_tail

The proportion of the distribution that should be highlighted in the lower tail. Defaults to half of 'p_tail'.

p_upper_tail

The proportion of the distribution that should be highlighted in the upper tail. Defaults to half of 'p_tail'.

tail_fill

fill color for tails

tail_alpha

alpha value for tails

width

Width of normal violin

upper_limit

upper limit for polygons. Needed in case setting limits in scale_y_continuous or ylim distorts the polygons.

lower_limit

lower limit for polygons. Needed in case setting limits in scale_y_continuous or ylim distorts the polygons.

face_left

Display left half of violins. Defaults to 'TRUE'

face_right

Display right half of violins. Defaults to 'TRUE'

na.rm

If FALSE, the default, missing values are removed with a warning. If TRUE, missing values are silently removed.

show.legend

logical. Should this layer be included in the legends? NA, the default, includes if any aesthetics are mapped. FALSE never includes, and TRUE always includes. It can also be a named logical vector to finely select the aesthetics to display.

inherit.aes

If 'FALSE', overrides the default aesthetics, rather than combining with them.

...

Other arguments passed to 'ggplot2::layer'

Value

A ggplot2 layer that can be added to a plot created with [ggplot()][ggplot2::ggplot()].

Aesthetics

geom_normviolin understands the following aesthetics (required aesthetics are in bold):

Examples

library(ggplot2)
d <- data.frame(
  dist = c("A", "B"),
  dist_mean = c(80, 90),
  dist_sd = c(15, 10))

ggplot(data = d, aes(
  x = dist,
  mu = dist_mean,
  sigma = dist_sd,
  fill = dist)) +
  geom_normalviolin() +
  theme(legend.position = "none")