提问人:Rosie Lomas 提问时间:5/21/2023 更新时间:5/21/2023 访问量:85
更改热图的距离和链接
Changing Distance and Linkage of a heat map
问:
我正在尝试更改热图与标准的距离和链接 欧几里得距离和完全链接到我家庭作业中问题的任何其他设置。
我们正在使用这个数据集:
library("flexclust")
data(milk)
help(milk)
这是我当前的代码:
hm3<-heatmap(milk_matrix, scale="column", main="Heat map of the Composition of Mammals' Milk", xlab= "Nutrient", ylab = "Animal", cexRow = 0.6, cexCol = 1.1, col=heat.colors(10))
legend(x= "bottomright", legend=c("min", "med", "max"), cex = 0.6, fill=heat.colors(3))
热图的 R 帮助说您可以通过以下方式更改距离/链接:
distfun= 和 hclustfun=
但是我没有运气输入诸如 hclustfun= “single” 之类的东西。
任何帮助将不胜感激!我可以指定任何距离或链接,只要它不是欧几里得距离和完全链接。
亲切问候 罗茜:)
热图变化距离和联动
答:
0赞
Meisam
5/21/2023
#1
对于 and 参数,您必须使用 and 中已有的选项(查看它们的帮助)。因此,例如,对于基于“最大”距离测量而不是默认的“欧几里得”,您可以使用以下命令:distfun
hclustfun
stats::dist()
stats::hclust()
distfun
# dist method must be one of "euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski"
heatmap(as.matrix(milk),
scale="column",
main="Heat map of the Composition of Mammals' Milk",
xlab= "Nutrient",
ylab = "Animal",
cexRow = 0.6,
cexCol = 1.1,
col=heat.colors(10),
distfun = function(x) dist(x, method = "maximum"))
legend(x= "bottomright", legend=c("min", "med", "max"), cex = 0.6, fill=heat.colors(3))
评论
0赞
Rosie Lomas
5/21/2023
谢谢,我使用了以下代码: ''' h3<- heatmap(milk_matrix, scale=“column”, main=“哺乳动物乳汁成分的热图”, xlab= “营养”, ylab = “动物”, cexRow = 0.6, cexCol = 1.1, col=heat.colors(10), distfun = function(x) dist(x, method = “minkowski”)) legend(x= “bottomright”, legend=c(“min”, “med”, “max”), cex = 0.6, fill=heat.colors(3)) ''' 它起作用了。但是我的图形与我用欧几里得距离创建的图形相同 - 这是意料之中的还是我做错了什么??
0赞
Meisam
5/22/2023
根据数据的不同,总体而言,两种聚类方法的结果可能相同。如果您不确定您的代码是否有效,请检查不同的方法,看看它们是否都产生相同的结果
评论