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

如何用R的Dendrogram(或其他方法)绘制相同编号的个体ID图

用树状图可视化具有相同抗性编号的个体

要实现按抗性编号聚类并生成树状图,可按以下步骤操作:

1. 正确读取数据(保留前导零)

由于抗性编号包含前导零,需指定其为字符类型,避免被自动转换为数值丢失前导信息:

dat <- read.table(text="Id  Resistance.Number    
A   0405611540527610     
B   6607734653564010  
C   0405611540527610 
D   030402066763231     
E   0405611540527610  
F   4417610555422211
G   0043551103500252     
H   1043453103501272    
I   030402066763231", 
                  header=TRUE, 
                  colClasses=c("character", "character"))

2. 构建自定义距离矩阵

我们定义:相同抗性编号的个体距离为0,不同编号的个体距离为1,以此构建距离矩阵:

dist_mat <- outer(dat$Resistance.Number, dat$Resistance.Number, 
                  function(x, y) as.integer(x != y))
rownames(dist_mat) <- dat$Id
colnames(dist_mat) <- dat$Id

3. 层次聚类

使用**single linkage(最短距离法)**进行聚类,确保相同编号的个体优先聚为一类:

hc <- hclust(as.dist(dist_mat), method = "single")

4. 绘制树状图

生成树状图,并可添加彩色方框标记不同编号的聚类组:

# 基础树状图
plot(hc, main = "个体按抗性编号聚类树状图", 
     xlab = "个体ID", ylab = "距离", 
     sub = "", cex = 0.8)

# 可选:用彩色方框区分不同编号组
groups <- as.factor(dat$Resistance.Number)
k <- length(unique(groups))
rect.hclust(hc, k = k, border = rainbow(k))

运行上述代码后,树状图会清晰展示:所有具有相同抗性编号的个体(如A、C、E;D、I)会被聚为同一分支,不同编号的个体则处于独立分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:45:34