Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改r中的树状图标签_R_Label_Cluster Analysis_Dendrogram_Dendextend - Fatal编程技术网

如何更改r中的树状图标签

如何更改r中的树状图标签,r,label,cluster-analysis,dendrogram,dendextend,R,Label,Cluster Analysis,Dendrogram,Dendextend,我在R中有一个树状图。它基于使用hclust的层次聚类。我正在给不同颜色的标签上色,但是当我尝试使用dendrogram=dendrogram%>%set(“labels”,dataframe$column)更改dedrogram的标签(集群所基于的数据帧的行)时,标签被替换,但位置错误。例如: 我的树状图如下所示: ___|___ | _|_ | | | | 1 0 2 当我现在尝试像上面指定的那样更改标签时,标签会更改,但它们在数据帧中是按从左到右的顺

我在R中有一个树状图。它基于使用hclust的层次聚类。我正在给不同颜色的标签上色,但是当我尝试使用
dendrogram=dendrogram%>%set(“labels”,dataframe$column)
更改dedrogram的标签(集群所基于的数据帧的行)时,标签被替换,但位置错误。例如:

我的树状图如下所示:

 ___|___
|      _|_
|     |   | 
|     1   0
2
当我现在尝试像上面指定的那样更改标签时,标签会更改,但它们在数据帧中是按从左到右的顺序应用的。如果我们假设我的原始数据帧是这样的

df:
   Column1  Column2
0     1        A
1     2        B
2     3        C
我想要的是:

    ___|___
   |      _|_
   |     |   | 
   |     B   A
   C
但我真正得到的是:

    ___|___
   |      _|_
   |     |   | 
   |     B   C
   A   
对数据进行聚类并将其转换为树状图,如下所示:

> d <- stringdistmatrix(df$Column1, df$Column1)
> cl <- hclust(as.dist(d))
> dend = as.dendrogram(cl)
>d cl dend=as.树状图(cl)

有谁能告诉我如何根据索引用另一列的值标记树状图

在您创建的
hclust
对象中,
cl
有一个名为“order”的元素,它包含元素在树状图中的顺序

如果要更改标签,需要将新标签按相同的顺序放置(
cl$order
),因此“新”树状图是正确的:

df$column2[cl$order]
允许您使用以下命令直接更新树状图(以及hclust):

x <- c(1:5)
dend <- as.dendrogram(hclust(dist(x)))

if(!require(dendextend)) install.packages("dendextend")
library("dendextend")

labels(dend)
labels(dend) <- c(21:25)
labels(dend)

x似乎有效。我不能确定,因为现在当我使用plot(dend)时,我的一些标签从树状图中被切断了(因为它们是“更长”的字符串)。你知道我能做些什么来纠正吗?谢谢你的回答:-)@sequence\u努力你可以试着减少cex,或者扩大页边(或者两者兼而有之;-)我一直在努力解决这个问题。当我尝试分配字符串标签(来自df中的列)时,它似乎不起作用<代码>警告消息:在`标签'中,您能否提供重现此问题的数据和代码示例?