本文主要使用函数coord_polar()用于生成饼图,它只是极坐标中的堆积条形图。
创建数据:
df <- data.frame(
group = c("Male", "Female", "Child"),
value = c(25, 25, 50)
)
head(df)
## group value
## 1 Male 25
## 2 Female 25
## 3 Child 50
首先使用柱状图来做可视化
library(ggplot2)
# Barplot
bp<- ggplot(df, aes(x="", y=value, fill=group))+
geom_bar(width = 1, stat = "identity")
bp
生成一个原始饼图
pie <- bp + coord_polar("y", start=0)
pie
可以使用以下函数手动更改饼图填充颜色:
# Use custom color palettes
pie + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# use brewer color palettes
pie + scale_fill_brewer(palette="Dark2")
pie + scale_fill_brewer(palette="Blues")+
theme_minimal()
# Use grey scale
pie + scale_fill_grey() + theme_minimal()
head(PlantGrowth)
## weight group
## 1 4.17 ctrl
## 2 5.58 ctrl
## 3 5.18 ctrl
## 4 6.11 ctrl
## 5 4.50 ctrl
## 6 4.61 ctrl
创建每组中观察计数的饼图:
ggplot(PlantGrowth, aes(x=factor(1), fill=group))+
geom_bar(width = 1)+
coord_polar("y")
创建一个空白主题:
blank_theme <- theme_minimal()+
theme(
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.border = element_blank(),
panel.grid=element_blank(),
axis.ticks = element_blank(),
plot.title=element_text(size=14, face="bold")
)
1.应用空白主题 2.删除轴刻度标记 3.添加文本注释
# Apply blank theme
library(scales)
pie + scale_fill_grey() + blank_theme +
theme(axis.text.x=element_blank()) +
geom_text(aes(y = value/3 + c(0, cumsum(value)[-length(value)]),
label = percent(value/100)), size=5)
# Use brewer palette
pie + scale_fill_brewer("Blues") + blank_theme +
theme(axis.text.x=element_blank())+
geom_text(aes(y = value/3 + c(0, cumsum(value)[-length(value)]),
label = percent(value/100)), size=5)