R语言|ggtreeExtra包绘制进化树

R包-ggtreeExtra绘制进化树

ggplot2提供的geom_tile图层可以画热图了,ggplot2的geom_point或者ggstar的geom_star可以绘制点图层。为了扩展ggtree在点和布局中的系统发育树的外环上呈现相关数据,开发的ggtreeExtra包提供了一个函数,geom_fruit用于将图形与树对齐,相关图表将在树的外部面板的不同位置对齐。还开发geom_fruit_list在树的同一个外部面板上添加多个层。一些函数基于ggplot2并支持使用图形语法。

绘图示例

1、下载安装ggtreeExtra包

if(!requireNamespace("remotes", quietly=TRUE)){
   
  install.packages("remotes")
}
remotes::install_github("YuLab-SMU/ggtreeExtra")
if (!requireNamespace("BiocManager", quietly=TRUE))
  install.packages("BiocManager")
BiocManager::install("ggtreeExtra")
BiocManager::install("ggstar")
#下载"ggstar","ggplot2","ggtree","treeio","ggnewscale"包
install.packages("ggstar")
install.packages("ggplot2")
install.packages("ggtree")
install.packages("treeio")
install.packages("ggnewscale")

2、加载依赖包

library(ggtreeExtra) # 设置叠加的包
library(ggstar) # 提供几何图形
library(ggplot2) # 
library(ggtree) # 绘制进化树
library(treeio)
library(ggnewscale) # 创建新的scale,多个fill或者color

3、设置工作目录

setwd("D:/R/ggtreeExtra")

4、数据来源

#树状图数据来源路径
trfile <- system.file("extdata", "tree.nwk", package="ggtreeExtra")
#绘制点图和柱状图的数据来源路径
tippoint1 <- system.file(
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
r语言可以使用ggtreeggtreeExtra绘制环形进化树。首先,你需要准备好树的数据和注释数据。然后,可以按照以下步骤进行绘图: 1. 绘制树的主体,可以选择特殊的布局(如equal_angle),并为树枝添加一些分类颜色信息。 2. 添加外圈注释1,即标签,将标签放置在每个类别分支附近,并为背景颜色使用分类信息。 3. 添加外圈注释2,即点和文字,手动选择一些节点,在树枝顶端添加灰色的点和黑色的文字。 下面是一个示例代码,演示如何使用ggtreeggtreeExtra绘制环形进化树: ```R # 准备数据 tree_df <- read.tree("tree_file.txt") # 替换为你的树文件 phy_nodes <- c("A", "B", "C") # 替换为你选择的分支节点 label_node <- c("D", "E", "F") # 替换为你选择的节点 # 绘制树的主体 p <- ggtree(tree_df, aes(color = Form), layout = "equal_angle") + geom_treescale(-5, 7, fontsize = 3, linesize = 0.5, width = 1) + scale_color_manual(values = c("black", colors)) + coord_flip() + theme(legend.position = "none") # 添加外圈注释1 p1 <- p + geom_label_repel(data = subset(tree_df, node %in% phy_nodes), mapping = aes(x = x, y = y, label = Form, fill = Form), color = "black", alpha = 0.7) + scale_fill_manual(values = colors) # 添加外圈注释2 p2 <- p1 + geom_point(data = subset(tree_df, node %in% label_node), mapping = aes(x = x * 1.03, y = y * 1.03), color = "grey50") + geom_text_repel(data = subset(tree_df, node %in% label_node), mapping = aes(x = x * 1.05, y = y * 1.05, label = label), color = "black") # 显示绘制结果 print(p2) ``` 希望这个例子能帮助到你!如果你还有其他问题,请随时提问。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值