geom_violin(mapping = NULL, data = NULL, stat = "ydensity",
position = "dodge", trim = TRUE, scale = "area", ...)
TRUE
(default), trim the tails of the violins
to the range of the data. If FALSE
, don't trim the tails.aes
or aes_string
. Only needs to be set
at the layer level if you are overriding the plot defaults.p + geom_violin() qplot(factor(cyl), mpg, data = mtcars, geom = "violin")
p + geom_violin() + geom_jitter(height = 0) p + geom_violin() + coord_flip() qplot(factor(cyl), mpg, data = mtcars, geom = "violin") + coord_flip()
# Scale maximum width proportional to sample size: p + geom_violin(scale = "count")
# Scale maximum width to 1 for all violins: p + geom_violin(scale = "width")
# Default is to trim violins to the range of the data. To disable: p + geom_violin(trim = FALSE)
# Use a smaller bandwidth for closer density fit (default is 1). p + geom_violin(adjust = .5)
# Add aesthetic mappings # Note that violins are automatically dodged when any aesthetic is # a factor p + geom_violin(aes(fill = cyl)) p + geom_violin(aes(fill = factor(cyl))) p + geom_violin(aes(fill = factor(vs))) p + geom_violin(aes(fill = factor(am)))
# Set aesthetics to fixed value p + geom_violin(fill = "grey80", colour = "#3366FF") qplot(factor(cyl), mpg, data = mtcars, geom = "violin", colour = I("#3366FF"))
# Scales vs. coordinate transforms ------- # Scale transformations occur before the density statistics are computed. # Coordinate transformations occur afterwards. Observe the effect on the # number of outliers. library(plyr) # to access round_any m <- ggplot(movies, aes(y = votes, x = rating, group = round_any(rating, 0.5))) m + geom_violin() m + geom_violin() + scale_y_log10() m + geom_violin() + coord_trans(y = "log10") m + geom_violin() + scale_y_log10() + coord_trans(y = "log10")
# Violin plots with continuous x: # Use the group aesthetic to group observations in violins qplot(year, budget, data = movies, geom = "violin") qplot(year, budget, data = movies, geom = "violin", group = round_any(year, 10, floor))