How to Make Violin Plots in R
Violin plots are a hybrid of density plots and box plots that can help you get a sense of the distribution of variables.
#ggplot2 #datavizualization #rprogramming
Code used in this code clip:
library(tidyverse)
library(plotly)
library(IRdisplay)
data <- diamonds
colors <- c("#FFFFFF","#F5FCC2","#E0ED87","#CCDE57",
"#B3C732","#94A813","#718200")
# Violin plot with ggplot2
data %>% ggplot(aes(x="", y = carat)) +
geom_violin() +
geom_boxplot(width=0.1) +
theme(axis.title.x = element_blank())
# Side by side violin plot with ggplot2
data %>% ggplot(aes(x=color, y = carat, fill = color)) +
geom_violin(draw_quantiles = TRUE) +
geom_boxplot(width = 0.05) +
theme(axis.title.x = element_blank()) +
scale_fill_manual(values = colors)
# Violin plot with plotly
p <- data %>% plot_ly(x = "", y = ~carat, type = 'violin',
box = list(visible = TRUE, width = 0.2))
htmlwidgets::saveWidget(p, "p.html")
display_html('<iframe src="p.html" width=600 height=600 frameborder="0"></iframe>')
# Code for creating the plot outside a notebook environment with a plotly account:
# Sys.setenv("plotly_username"="yourusername")
# Sys.setenv("plotly_api_key"="yourapikey")
# chart_link <- api_create(p, filename="violin_test")
# chart_link
Code Clips are basic code explanations in 3 minutes or less. They are intended to be short reference guides that provide quick breakdowns and copy/paste access to code needed to accomplish common data science tasks. Think Stack Overflow with a video explanation.
* Note: YouTube does not allow greater than or less than symbols in the text description, so the code above may not be exactly the same as the code shown in the video! For R that means I may use = for assignment and the special Unicode large < and > symbols in place of the standard sized ones for dplyr pipes and comparisons. These special symbols should work as expected for R code on Windows, but may need to be replaced with standard greater than and less than symbols for other operating systems.
Other Videos By DataDaft
2019-11-26 | Python Programming Practice: LeetCode #1 -- Two Sum |
2019-11-25 | Introduction to R: Probability Distributions |
2019-11-20 | How to Make Word Clouds in R |
2019-11-19 | How to Make a Donut Chart in R |
2019-11-15 | Dragon Ball Power Levels Over Time (1 Second = 1 Episode) |
2019-11-14 | How to Plot Functions in R |
2019-11-13 | How to Make a Bubble Plot in R |
2019-11-12 | How to Combine and Split Strings in R |
2019-11-06 | How to Make a Line Plot in R |
2019-11-04 | How to Make a Scatter Plot Matrix in R |
2019-11-01 | How to Make Violin Plots in R |
2019-10-31 | How to Make Pie Charts in R |
2019-10-29 | How to Make Boxplots in R |
2019-10-15 | How to Make Stacked and Grouped Bar Plots in R |
2019-10-14 | How To Make a Bar Plot in R |
2019-10-14 | How to Make a Scatterplot in R |
2019-10-10 | How to Make a Density Plot in R |
2019-10-09 | How To Make a Histogram in R |
2019-10-08 | U.S. Major Sports League Worldwide Web Search Volume (01/2004 - 10/2019) |
2019-10-07 | dplyr: Joins |
2019-10-06 | dplyr: Grouping |