复现Science期刊图,换数据可用!
本次使用R语言复现一下Science正刊中的1张图!
如何读图?
该图为包珠图(Circular Packing),适用于展示具有层级结构的分类数据,其通过嵌套圆形的方式直观体现数据的层次关系。
原文中的上图作用:
展示在有利土壤(C)或抑病土壤(S)中生长的植物,其内生细菌群落的差异丰度情况。细菌群落的差异丰度分析基于从宏基因组中提取的16S rRNA reads。 圆圈的大小表示差异丰度类群的平均reads相对丰度,最大的圆圈代表门(Phylum)水平,其内的圆圈依次代表纲(Class)、科(Family)和属(Genus)。 在C与S土壤中,若在C中显著富集(FDR<0.1)则以红色标示,若在S中富集则以绿色标示;无显著差异的类群和功能以黄色标示。
如何实现图?
下面使用ggplot2及其扩展工具来实现包珠图(Circular Packing),
✅读入测试数据,
以第一行数据flare.analytics.cluster.AgglomerativeCluster为例,就是展示最外层flare,依次到内层AgglomerativeCluster的层级关系,AgglomerativeCluster节点对应数值为3938。
✅关键代码,
# 关键代码
ggraph(mygraph, layout = 'circlepack', weight=size) +
geom_node_circle(aes(fill = depth)) +
geom_node_text(aes(filter = depth == 1, label = shortName), #这里显示第2层节点标签
size = 5,
color = "white")
✅从以下多方面美化:
geom_node_circle设置区域属性,例如,填充色、区域轮廓size等。 geom_node_text个性化根节点文本 scale_fill_xxx个性化配色等。
美化后效果,
尝试不同的palette,
本期结束!
获取绘图代码+测试数据+数据处理方法+依赖包安装方法,
👇(备注:299)
-推荐阅读-