我正在尝试通过Complete Linkage Method
在R中绘制树状图。
我将数据设置为:
x1,x2,x3,x4,x5
0,0.5,2.24,3.35,3
0.5,0,2.5,3.61,3.04
2.24,2.5,0,1.12,1.41
3.35,3.61,1.12,0,1.5
3,3.04,1.41,1.5,0
到目前为止,我已经在下面尝试过此代码,并得到如图所示的输出:
dt <- read.csv("cluster.csv")
df<-scale(dt(-1))
dc<-dist(df,method = "euclidean")
hc1 <- hclust(dc, method = "complete" )
plot(hc1, labels = NULL, hang = 0.1,
main = "Cluster dendrogram", sub = NULL,
xlab = NULL, ylab = "Height")
现在我想
将y轴的实际值绘制为从 簇之间成对距离的计算
用x1,x2,x3,x4,x5绘制x轴
我在学习R并在此处受阻时,如何使用plot绘制图形。
编辑:
关于答案,我将labels
编辑为
labels = c("x1", "x2","x3","x4","x5")
的输出为:
现在,我想将y轴标记为计算为高度的值
答案 0 :(得分:1)
您可以访问以下值
dt <- read.csv("cluster.csv")
df<-scale(dt[-1]) # I had to use brackets here instead of parenthesis
dc<-dist(df,method = "euclidean")
hc1 <- hclust(dc, method = "complete" )
plot(hc1, labels = NULL, hang = 0.1,
main = "Cluster dendrogram", sub = NULL,
xlab = NULL, ylab = "Height")
str(hc1)
返回:
List of 7
$ merge : int [1:4, 1:2] -1 -3 -5 1 -2 -4 2 3
$ height : num [1:4] 0.444 1.516 1.851 3.753
$ order : int [1:5] 1 2 5 3 4
$ labels : NULL
$ method : chr "complete"
$ call : language hclust(d = dc, method = "complete")
$ dist.method: chr "euclidean"
- attr(*, "class")= chr "hclust"
如您所见,没有带有五个值的向量,这是您需要直接映射到绘图中的labels
的向量。如果您知道如何计算这些值,只需将它们放入五元素向量中,然后将其放在labels =
之后,替换当前的NULL
。