目录
R语言之可视化①误差棒
R语言之可视化②点图
R语言之可视化③点图续
R语言之可视化④点韦恩图upsetR
R语言之可视化⑤R图形系统
R语言之可视化⑥R图形系统续
R语言之可视化⑦easyGgplot2散点图
R语言之可视化⑧easyGgplot2散点图续
R语言之可视化⑨火山图
R语言之可视化⑩坐标系统
R语言之可视化①①热图绘制heatmap
R语言之可视化①②热图绘制2
R语言之可视化①③散点图+拟合曲线
R语言之可视化①④一页多图(1)
R语言之可视化①⑤ROC曲线
R语言之可视化①⑥一页多图(2)
R语言之可视化①⑦调色板
R语言之可视化①⑧子图组合patchwork包
R语言之可视化①⑨之ggplot2中的图例修改
R语言之可视化(20)之geom_label()和geom_text()
R语言之可视化(21)令人眼前一亮的颜色包
R语言之可视化(22)绘制堆积条形图
R语言之可视化(23)高亮某一元素
R语言之可视化(24)生成带P值得箱线图
R语言之可视化(25)绘制相关图(ggcorr包)
R语言之可视化(26)ggplot2绘制饼图
本文主要使用函数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
更改饼图填充颜色
可以使用以下函数手动更改饼图填充颜色:
- scale_fill_manual()*:使用自定义颜色
- scale_fill_brewer():使用来自 RColorBrewer *包的调色板
- scale_fill_grey()*:使用灰色调色板
# 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)
网友评论