How to Make a Donut Chart in R

Channel:
Subscribers:
53,300
Published on ● Video Link: https://www.youtube.com/watch?v=bef14rFYvFk



Category:
Guide
Duration: 2:53
3,793 views
59


Donut charts are the slightly slimmer cousin of pie charts used to display groups that make up proportions of a whole. As with pie charts, the information in donut chart can usually be more accurately displayed with a bar chart, so realize that using them might attract the ire of the data visualization police in the same way that pie charts do.

Code used in this code clip:

#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

# Donut chart with ggplot2

donut <- ggplot(data = data, aes(x=2, 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("Donut Chart of Diamond Color (ggplot2)") +
scale_fill_manual(values = colors) +
xlim(0.5, 2.5)

donut

# Donut chart with plotly
donut <- plot_ly(data = data, labels = ~color, values = ~percentage,
type = 'pie', sort= FALSE,
marker= list(colors=colors, line = list(color="black", width=1))) %>%
layout(title="Donut Chart of Diamond Color (with Plotly)")

# Display chart in notebook window
htmlwidgets::saveWidget(donut, "donut.html")
display_html('<iframe src="donut.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(donut, filename="donut_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.







Tags:
donut chart in r
donut chart in ggplot2
donut chart in plotly
donut plot in r
how to make a donut chart