卷一个甜甜甜甜甜的甜甜圈图!

喵酱 SCIPainter 2023-05-22 10:35 发表于广东
各类组学研究中,我们经常会用到饼图展示元素在整体中的占比,如微生物分布及比例、基因覆盖度、SNP/InDel突变型统计、单细胞亚群在组织的占比等等。

画腻了常规饼图,可以尝试绘制矩形树状图:《高分文章矩形树状图复现!展示元素占比新花样儿!》。或使用饼图的变体—甜甜圈图,如下:

图片
Fig1(Nature Cardiovascular Research,2023)

图片
Fig2(Nature Cardiovascular Research,2023)

上述案例就用甜甜圈图展示了单细胞亚群在不同组织的占比,今天我们就以上述图表为例,使用ggplot2进行复现学习。话不多说,下面就进入正题!

图片



#本地测试数据读入(Fig1):
dt <- read.csv('donut_dt.csv',header = T,check.names = F)
head(dt)


图片

#相关R包载入:
library(ggplot2)
library(cols4all)


ggolot2中没有直接绘制饼图的函数,绘制饼状图形就是绘制百分比堆叠柱形图,然后将原本的直角坐标系转换为极坐标系,实现由“直”到“弯”的转换。





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


图片

是不是so easy?感兴趣赶紧画起来!今天的分享就到这里!




参考文献




Wang, Z., Zhang, X., Lu, S. et al. Pairing of single-cell RNA analysis and T cell antigen receptor profiling indicates breakdown of T cell tolerance checkpoints in atherosclerosis. Nat Cardiovasc Res 2, 290–306 (2023).


*未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。


图片
图片
# SCIPainter

基迪奥旗下绘图公众号

分享科研绘图技能与工具

欢迎关注与转发~


图片

你的好友拍了拍你

并请你帮她点一下“分享”~



收录于合集 #R语言绘图
 101
上一篇高分文章矩形树状图复现!展示元素占比新花样儿!下一篇富集条形图还能玩出什么新花样?上下调富集棒棒糖图拿捏!

微信扫一扫
关注该公众号