#本地测试数据读入(Fig1):
dt <- read.csv('donut_dt.csv',header = T,check.names = F)
head(dt)
#相关R包载入:
library(ggplot2)
library(cols4all)
1. 堆叠柱形图绘制
p <- ggplot(dt, aes(x = 3, #给一个数值向量作为柱子x轴的中心坐标
y = Percentage,
fill = Celltype)) + #将颜色映射到celltype
geom_col(width = 1.5, #柱形图柱子宽度
color = 'white') + #描边颜色
facet_grid(.~Tissue) #按tissue分面
p
2. 甜甜圈饼图绘制#饼图:直角坐标系转换为极坐标系;
p1 <- p + coord_polar(theta = "y")
p1
#甜甜圈图:将饼图中心“挖空”;
p2 <- p1 + xlim(c(0.2, 3.8))
p2
3. 图表细节调整和美化#挑选自定义配色:
c4a_gui()
mycol <- c4a('pastel',10)
mycol2 <- c4a('20',10)
mycol3 <- c4a('miller_stone',10)
#颜色、主题更改:
p3 <- p2 +
scale_fill_manual(values = mycol3) +
theme_void()+ #空白主题
theme(
strip.text.x = element_text(size = 14), #分面标签大小
legend.title = element_text(size = 15), #图例标题大小调整
legend.text = element_text(size = 14) #图例标签大小调整
)
p3
4. 案例Fig2实战#本地测试数据读入(Fig2):
df <- read.csv('donut_dt2.csv',header = T,check.names = F)
head(df)
pp <- ggplot(df, aes(x = 3,
y = Percentage,
fill = Celltype)) +
geom_col(width = 1.5,
color = 'white') +
facet_grid(.~Tissue) +
coord_polar(theta = "y") +
xlim(c(0.2, 3.8)) +
scale_fill_manual(values = mycol) +
theme_void()+
theme(
strip.text.x = element_text(size = 14),
legend.title = element_text(size = 15),
legend.text = element_text(size = 14)
)
pp
#添加文本标签:
pp1 <- pp +
geom_text(aes(label = paste0(Percentage,'%')),
position = position_stack(vjust = 0.5),
size = 4)
pp1
参考文献
*未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。
基迪奥旗下绘图公众号 分享科研绘图技能与工具 欢迎关注与转发~ 你的好友拍了拍你 并请你帮她点一下“分享”~
微信扫一扫
关注该公众号