Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
#warning = FALSE, message = FALSE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(ggrain)
## ----most basic raincloud possible--------------------------------------------
ggplot(iris, aes(1, Sepal.Width)) +
geom_rain() +
theme_classic() +
theme(axis.title.x = element_blank(),
axis.text.x = element_blank(), axis.ticks.x = element_blank())
## ----rainclouds by species grouped--------------------------------------------
ggplot(iris, aes(1, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5) +
theme_classic() +
scale_fill_brewer(palette = 'Dark2')
## ----rainclouds by Species colored--------------------------------------------
ggplot(iris, aes(1, Sepal.Width, fill = Species, color = Species)) +
geom_rain(alpha = .6,
boxplot.args = list(color = "black", outlier.shape = NA)) +
theme_classic() +
scale_fill_brewer(palette = 'Dark2') +
scale_color_brewer(palette = 'Dark2')
## ----rainclouds by Species colored dogded-------------------------------------
ggplot(iris, aes(1, Sepal.Width, fill = Species, color = Species)) +
geom_rain(alpha = .5, rain.side = 'l',
boxplot.args = list(color = "black", outlier.shape = NA),
boxplot.args.pos = list(
position = ggpp::position_dodgenudge(x = .1, width = 0.1), width = 0.1
)) +
theme_classic() +
scale_fill_brewer(palette = 'Dark2') +
scale_color_brewer(palette = 'Dark2') +
guides(fill = 'none', color = 'none')
## ----rainclouds by species----------------------------------------------------
ggplot(iris, aes(Species, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5) +
theme_classic() +
scale_fill_brewer(palette = 'Dark2') +
guides(fill = 'none', color = 'none')
## ----rainclouds by time flip--------------------------------------------------
ggplot(iris, aes(Species, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5) +
theme_classic() +
scale_fill_brewer(palette = 'Dark2') +
guides(fill = 'none', color = 'none') +
coord_flip()
## ----rainclouds by time flip nudged-------------------------------------------
ggplot(iris, aes(Species, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5,
boxplot.args.pos = list(
width = 0.05, position = position_nudge(x = 0.13)),
violin.args.pos = list(
side = "r",
width = 0.7, position = position_nudge(x = 0.2))) +
theme_classic() +
scale_fill_brewer(palette = 'Dark2') +
guides(fill = 'none', color = 'none') +
coord_flip()
## ----rainclouds by time colored by group--------------------------------------
ggplot(iris, aes(Species, Sepal.Width, fill = Species)) +
geom_rain(alpha = .6,
cov = "Sepal.Length") +
theme_classic() +
scale_fill_brewer(palette = 'Dark2') +
guides(fill = 'none', color = 'none') +
scale_color_viridis_c(option = "A", direction = -1)
## ----making long iris data----------------------------------------------------
set.seed(42) # the magic number
iris_subset <- iris[iris$Species %in% c('versicolor', 'virginica'),]
iris.long <- cbind(rbind(iris_subset, iris_subset, iris_subset),
data.frame(time = c(rep("t1", dim(iris_subset)[1]), rep("t2", dim(iris_subset)[1]), rep("t3", dim(iris_subset)[1])),
id = c(rep(1:dim(iris_subset)[1]), rep(1:dim(iris_subset)[1]), rep(1:dim(iris_subset)[1]))))
# adding .5 and some noise to the versicolor species in t2
iris.long$Sepal.Width[iris.long$Species == 'versicolor' & iris.long$time == "t2"] <- iris.long$Sepal.Width[iris.long$Species == 'versicolor' & iris.long$time == "t2"] + .5 + rnorm(length(iris.long$Sepal.Width[iris.long$Species == 'versicolor' & iris.long$time == "t2"]), sd = .2)
# adding .8 and some noise to the versicolor species in t3
iris.long$Sepal.Width[iris.long$Species == 'versicolor' & iris.long$time == "t3"] <- iris.long$Sepal.Width[iris.long$Species == 'versicolor' & iris.long$time == "t3"] + .8 + rnorm(length(iris.long$Sepal.Width[iris.long$Species == 'versicolor' & iris.long$time == "t3"]), sd = .2)
# now we subtract -.2 and some noise to the virginica species
iris.long$Sepal.Width[iris.long$Species == 'virginica' & iris.long$time == "t2"] <- iris.long$Sepal.Width[iris.long$Species == 'virginica' & iris.long$time == "t2"] - .2 + rnorm(length(iris.long$Sepal.Width[iris.long$Species == 'virginica' & iris.long$time == "t2"]), sd = .2)
# now we subtract -.4 and some noise to the virginica species
iris.long$Sepal.Width[iris.long$Species == 'virginica' & iris.long$time == "t3"] <- iris.long$Sepal.Width[iris.long$Species == 'virginica' & iris.long$time == "t3"] - .4 + rnorm(length(iris.long$Sepal.Width[iris.long$Species == 'virginica' & iris.long$time == "t3"]), sd = .2)
iris.long$Sepal.Width <- round(iris.long$Sepal.Width, 1) # rounding Sepal.Width so t2 data is on the same resolution
iris.long$time <- factor(iris.long$time, levels = c('t1', 't2', 't3'))
## ----rainclouds by time by group----------------------------------------------
ggplot(iris.long[iris.long$time %in% c('t1', 't2'),], aes(time, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5) +
theme_classic() +
scale_fill_manual(values=c("dodgerblue", "darkorange")) +
guides(fill = 'none', color = 'none')
## ----rainclouds by time by group flipped--------------------------------------
ggplot(iris.long[iris.long$time %in% c('t1', 't2'),], aes(time, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5, rain.side = 'f',
boxplot.args.pos = list(width = .1,
position = ggpp::position_dodgenudge(width = .1, #width needed now in ggpp version 0.5.g
x = c(-.13, -.13, # pre versicolor, pre virginica
.13, .13))), # post; post
violin.args.pos = list(width = .7,
position = position_nudge(x = c(rep(-.2, 256*2), rep(-.2, 256*2),# pre; pre
rep(.2, 256*2), rep(.2, 256*2))))) + #post; post
theme_classic() +
scale_fill_manual(values=c("dodgerblue", "darkorange")) +
guides(fill = 'none', color = 'none')
## ----rainclouds by time by group flipped long id------------------------------
ggplot(iris.long[iris.long$time %in% c('t1', 't2'),], aes(time, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5, rain.side = 'f2x2', id.long.var = "id") +
theme_classic() +
scale_fill_manual(values=c("dodgerblue", "darkorange")) +
guides(fill = 'none', color = 'none')
## ----rainclouds by time by group flipped long id colored----------------------
ggplot(iris.long[iris.long$time %in% c('t1', 't2'),], aes(time, Sepal.Width, fill = Species, color = Species)) +
geom_rain(alpha = .5, rain.side = 'f2x2', id.long.var = "id",
violin.args = list(color = NA, alpha = .7)) +
theme_classic() +
scale_fill_manual(values=c("dodgerblue", "darkorange")) +
scale_color_manual(values=c("dodgerblue", "darkorange")) +
guides(fill = 'none', color = 'none')
## ----rainclouds long cov------------------------------------------------------
ggplot(iris.long, aes(time, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5, rain.side = 'f', id.long.var = "id", cov = "Sepal.Length",
boxplot.args = list(outlier.shape = NA, alpha = .8),
violin.args = list(alpha = .8, color = NA),
boxplot.args.pos = list(width = .1,
position = ggpp::position_dodgenudge(width = .1,
x = c(-.13, -.13, # t1 old, t1 young
-.13, .13,
.13, .13))),
violin.args.pos = list(width = .7,
position = position_nudge(x = c(rep(-.2, 256*2), rep(-.2, 256*2),# t1
rep(-.2, 256*2), rep(.2, 256*2), # t2
rep(.2, 256*2), rep(.2, 256*2))))) +
theme_classic() +
scale_fill_manual(values=c("dodgerblue", "darkorange")) +
scale_color_viridis_c(option = "A", direction = -1) +
guides(fill = 'none', color = 'none')
## ----rainclouds by time by group flipped long id colored mean-----------------
ggplot(iris.long[iris.long$time %in% c('t1', 't2'),], aes(time, Sepal.Width, fill = Species)) +
geom_rain(alpha = .5, rain.side = 'f2x2') +
theme_classic() +
stat_summary(fun = mean, geom = "line", aes(group = Species, color = Species)) +
stat_summary(fun = mean, geom = "point",
aes(group = Species, color = Species)) +
scale_fill_manual(values=c("dodgerblue", "darkorange")) +
scale_color_manual(values=c("dodgerblue", "darkorange")) +
guides(fill = 'none', color = 'none')
## ----rainclouds sig, eval = F, echo = T---------------------------------------
# ggplot(iris.long[iris.long$Species == 'versicolor' & iris.long$time %in% c('t1', 't2'),], aes(time, Sepal.Width, fill = Species)) +
# geom_rain(alpha = .5, rain.side = 'f1x1') +
# ggsignif::geom_signif(
# comparisons = list(c("t1", "t2")),
# map_signif_level = TRUE) +
# scale_fill_manual(values=c("darkorange", "darkorange")) +
# theme_classic()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.