Use geom_violin() to quickly plot a visual summary of variables, using the Boston dataset from the MASS library.
1. Upload the relevant libraries:
require(tidyr) require(ggplot2) require(RColorBrewer) require(randomcoloR) require(MASS)
2. Load data and use the tidyr package to transform wide into long format:
data(Boston) dt.long <- gather(Boston, "variable", "value", crim:medv)
3. Create some color palettes:
col <- colorRampPalette(c("red", "blue"))(14) # col.bp <- brewer.pal(9, "Set1") # brewer.pal only has a max of 9 colors col.rc <- as.vector(distinctColorPalette(14))
4. Plot(s):
- With the standard colors produced by ggplot2:
ggplot(dt.long,aes(factor(variable), value))+ geom_violin(aes(fill=factor(variable)))+ geom_boxplot(alpha=0.3, color="black", width=.1)+ labs(x = "", y = "")+ theme_bw()+ theme(legend.title = element_blank())+ facet_wrap(~variable, scales="free")
- With the color palette produced by colorRampPalette:
ggplot(dt.long,aes(factor(variable), value))+ geom_violin(aes(fill=factor(variable)))+ geom_boxplot(alpha=0.3, color="black", width=.1)+ labs(x = "", y = "")+ scale_fill_manual(values = col, name="")+ theme_bw()+ facet_wrap(~variable, scales="free")
- With the color palette produced by randomcoloR library:
ggplot(dt.long,aes(factor(variable), value))+ geom_violin(aes(fill=factor(variable)))+ geom_boxplot(alpha=0.3, color="black", width=.1)+ labs(x = "", y = "")+ scale_fill_manual(values = col.rc, name="")+ theme_bw()+ facet_wrap(~variable, scales="free")