How to Make Pie Charts in R
Pie charts are common data visualization to show categories in data as proportions of a whole. Pie charts are often maligned in the data visualization community, since the same data displayed by a pie chart can almost always be better represented using a bar chart or similar visualization that allows for more precise comparisons between groups. Use with caution!
#Rprogramming #Datavizualization #ggplot2
Code used in this clip:
library(tidyverse)
library(plotly)
library(IRdisplay)
colors <- c("#FFFFFF","#F5FCC2","#E0ED87","#CCDE57",
"#B3C732","#94A813","#718200")
data <- diamonds %>%
group_by(color) %>%
summarize(counts = n(),
percentage = n()/nrow(diamonds))
data
# Pie chart with ggplot2
pie <- ggplot(data = data, aes(x="", y = percentage, fill = color)) +
geom_col(color = "black") +
coord_polar("y", start = 0) +
geom_text(aes(label = paste0(round(percentage*100), "%")),
position = position_stack(vjust = 0.5)) +
theme(panel.background = element_blank(),
axis.line = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
plot.title = element_text(hjust = 0.5, size = 18)) +
ggtitle("Pie chart of Diamond Color (ggplot2)") +
scale_fill_manual(values = colors)
pie
# Pie chart with plotly
p <- plot_ly(data = data, labels = ~color, values = ~percentage,
type = 'pie', sort= FALSE,
marker= list(colors=colors, line = list(color="black", width=1))) %>%
layout(title="Pie chart of Diamond Color (with Plotly)")
# Display chart in notebook window
htmlwidgets::saveWidget(p, "p.html")
display_html('<iframe src="p.html" width=500 height=500 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="pie_test")
# chart_link
# Resources and code I used to help make this video:
https://www.r-bloggers.com/how-to-make-a-pie-chart-in-r/
https://plot.ly/r/pie-charts/
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-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 |
2019-10-05 | dplyr: summarize |