跟着Nature学作图:R语言ggtree给进化树的节点添加饼状图

简介: 跟着Nature学作图:R语言ggtree给进化树的节点添加饼状图

论文

Galeaspid anatomy and the origin of vertebrate paired appendages

https://www.nature.com/articles/s41586-022-04897-6

s41586-022-04897-6.pdf

最近朋友圈好多人都在转发这篇论文,我也找来看了看,论文整体的内容我看起来还是非常吃力的,但是论文中关于进化树的作图方法我可以写个教程分享给大家

今天推文的内容重复一下论文中的Fig4a 进化树叠加图片并在节点上叠加饼状图

image.png

首先是进化树

library(ggtree)
library(scatterpie)


tree<-read.tree("data/20220930/fig4a.nwk")

ggtree(tree)+
  geom_tiplab()+
  xlim(NA,15)

image.png

叠加图片

ggtree(tree)+
  geom_tiplab(aes(image=paste0("data/20220930/",label,".png")),
              geom = "image",size=0.2,offset = 0.2)+
  xlim(NA,16)+
  geom_tiplab(offset = 4)

image.png

叠加饼状图

ggtree(tree)+
  geom_nodelab(aes(label=node))+
  geom_tiplab(aes(label=node)) -> p

library(tidyverse)



list(ggplot2::ggplot_build(p)$data[[3]],
     ggplot2::ggplot_build(p)$data[[4]])%>% 
  bind_rows() %>% 
  select(y,x,node) %>% 
  arrange(node) %>% 
  write_csv("data/20220930/pie_df1.csv")

pie.df<-read_csv("data/20220930/pie_df1.csv")

pie.df

ggtree(tree,size=1)+
  #geom_tiplab(offset=2)+
  geom_scatterpie(data=pie.df,
                  aes(x=x,y=y,group=node,
                      r=0.4),
                  cols = c("Absent","Present"))+
  scale_fill_manual(values = c("Absent"="white",
                               "Present"="#55cc81"))+
  geom_tiplab(aes(image=paste0("data/20220930/",label,".png")),
              geom = "image",size=0.2,offset = 0.4)+
  xlim(NA,16)+
  geom_tiplab(offset = 4)+
  theme(legend.position = c(0.2,0.8))+
  coord_fixed()

image.png

这里如何旋转每个饼状图暂时想不明白了

ggtree里有一个nodepie的函数也可以试试添加饼状图

示例数据和代码可以给推文点赞 点击在看 最后留言获取

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

image.png

相关文章
|
6月前
|
数据可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
R语言生态学进化树推断物种分化历史:分类单元数与时间关系、支系图可视化
|
6月前
|
机器学习/深度学习 数据可视化 算法
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
|
6月前
|
机器学习/深度学习 算法 数据库
数据分享|R语言用核Fisher判别方法、支持向量机、决策树与随机森林研究客户流失情况
数据分享|R语言用核Fisher判别方法、支持向量机、决策树与随机森林研究客户流失情况
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
R语言SVM、决策树与因子分析对城市空气质量分类与影响因素可视化研究
R语言SVM、决策树与因子分析对城市空气质量分类与影响因素可视化研究
|
6月前
|
机器学习/深度学习 数据采集 算法
R语言、WEKA关联规则、决策树、聚类、回归分析工业企业创新情况影响因素数据
R语言、WEKA关联规则、决策树、聚类、回归分析工业企业创新情况影响因素数据
|
6月前
|
机器学习/深度学习 算法 搜索推荐
【视频】决策树模型原理和R语言预测心脏病实例|数据分享(上)
【视频】决策树模型原理和R语言预测心脏病实例|数据分享
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
R语言航班延误影响预测分析:lasso、决策树、朴素贝叶斯、QDA、LDA、缺失值处理、k折交叉验证(上)
R语言航班延误影响预测分析:lasso、决策树、朴素贝叶斯、QDA、LDA、缺失值处理、k折交叉验证
|
6月前
|
机器学习/深度学习 数据可视化 算法
R语言CART决策树、随机森林、chaid树预测母婴电商平台用户寿命、流失可视化
R语言CART决策树、随机森林、chaid树预测母婴电商平台用户寿命、流失可视化
|
6月前
|
算法 数据挖掘 数据库
R语言主成分PCA、决策树、boost预警模型在跨区域犯罪研究数据挖掘分析|数据分享
R语言主成分PCA、决策树、boost预警模型在跨区域犯罪研究数据挖掘分析|数据分享
|
6月前
|
数据可视化 数据挖掘 数据处理
R语言用决策树的酒店收入和产量预测可视化研究
R语言用决策树的酒店收入和产量预测可视化研究