# Install packages
if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
# Load packages
library(ggplot2)
Circular Pie Chart
Another form of the pie chart.
Setup
System Requirements: Cross-platform (Linux/MacOS/Windows)
Programming language: R
Dependent packages:
ggplot2
Data Preparation
# Load data
<- read.table("files/Hiplot/024-circular-pie-chart-data.txt", header = T)
data
# convert data structure
$draw_percent <- data[["values"]] / sum(data[["values"]]) * 100
data$draw_class <- 1
data<- data
data2 "values"]] <- 0
data2[[$draw_class <- 0
data2<- rbind(data, data2)
data <- data[data[["values"]] > 0,]
filtered_data
# View data
head(data)
labels values draw_percent draw_class
1 A 20 16.666667 1
2 B 30 25.000000 1
3 C 15 12.500000 1
4 D 10 8.333333 1
5 E 45 37.500000 1
6 A 0 16.666667 0
Visualization
# Circular Pie Chart
<- ggplot(data, aes(x = draw_class, y = values, fill = labels)) +
p geom_bar(position = "stack", stat = "identity", width = 0.7) +
geom_text(data = filtered_data, aes(label = sprintf("%.2f%%", draw_percent)),
position = position_stack(vjust = 0.5), size = 3) +
coord_polar(theta = "y") +
xlab("") +
ylab("Pie Chart") +
scale_fill_manual(values = c("#e64b35ff","#4dbbd5ff","#00a087ff","#3c5488ff","#f39b7fff")) +
theme_minimal() +
theme(text = element_text(family = "Arial"),
plot.title = element_text(size = 12,hjust = 0.5),
axis.title = element_text(size = 12),
axis.text = element_text(size = 10),
axis.text.x = element_text(color = "black"),
axis.text.y = element_blank(),
legend.position = "right",
legend.direction = "vertical",
legend.title = element_text(size = 10),
legend.text = element_text(size = 10),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
p
