You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ggtree绘制带Jaccard系数百分比高度刻度的UPGMA树?

解决ggtree绘制UPGMA树刻度不符问题

问题原因

ggtree处理hclust对象时默认会对树的高度做标准化缩放,而fviz_dend直接使用了hclust中存储的原始Jaccard不相似度百分比数值(即你乘以100后的结果),因此两者刻度出现差异。

解决方案

要让ggtree显示正确的Jaccard不相似度百分比刻度,需手动保留并调用hclust对象中的原始高度值,具体操作如下:

1. 转换hclust对象并保留原始高度

# 将hclust对象转为phylo格式
hc_phylo <- as.phylo(afu_clin.hc)
# 手动指定edge.length为hclust中的原始高度(即Jaccard不相似度百分比)
hc_phylo$edge.length <- afu_clin.hc$height

2. 用ggtree绘制并配置坐标轴刻度

library(ggtree)
# 绘制树状图并设置正确刻度
hc_tree <- ggtree(hc_phylo, size = 0.8) +
  geom_tiplab(angle = 90, hjust = 1, offset = -0.05) +
  layout_dendrogram() +
  theme_dendrogram() +
  # 根据你的数据范围设置x轴刻度间隔,这里以10为步长示例
  scale_x_continuous(breaks = seq(0, max(afu_clin.hc$height), by = 10))
print(hc_tree)

水平树适配(与fviz_dend的horiz=TRUE效果一致)

如果需要水平方向的树状图,可在layout_dendrogram()中添加方向参数:

layout_dendrogram(direction = "right")

内容的提问来源于stack exchange,提问作者DarynaP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 06:45:27