【发布时间】:2016-04-05 00:45:12
【问题描述】:
最初,我尝试使用来自 dendextend 的 colour_bars 将水平颜色侧栏添加到树状图(而不是整个热图)。
下面的代码(感谢 Tal 的帮助!)运行良好。剩下的唯一问题是如何控制栏与叶子标签的距离和栏的宽度?
这是一个例子,数据和代码
数据(4个变量,5个案例)
df <- read.table(header=T, text="group class v1 v2
1 A 1 3.98 23.2
2 A 2 5.37 18.5
3 C 1 4.73 22.1
4 B 1 4.17 22.3
5 C 2 4.47 22.4
")
car_type <- factor(df[,c(1)]) # groups codes (A,B,C)
cols_4 <- heat.colors(3)
col_car_type <- cols_4[car_type]
matrix<-data.matrix(df[,c(3,4)])
rnames<-df[,2]
row.names(matrix)<-rnames
matrix<-data.matrix(df[,c(3,4)])
row.names(matrix)<-rnames
dend<-hclust(dist(matrix))
labels_colors(dend) <- col_car_type[order.dendrogram(dend)] # Error in order.dendrogram(dend) : 'order.dendrogram' requires a dendrogram
# But I dont think the line above is doing anything so it can be removed...
plot(dend)
colored_bars(col_car_type, dend)
【问题讨论】:
-
嗨 AussieAndy,谢谢你的帖子。我现在看到该功能存在问题,我将在下周修复。同时,您能否用一个小的自包含的树状图和组示例来更新您的问题,以便在它起作用后为您演示该功能?谢谢。
-
提前谢谢您!我会尽量保持简单并使用并行,因为我的数据集有 700 多个变量和 200 多个案例。让我们使用 mtcars 数据。我正在尝试为所有汽车(特定型号,例如 Merc280C、Merc 240D 等)创建 mpg、qsec、cyl、齿轮的树状图(不是热图),然后在下面有水平条,梅赛德斯有不同的颜色,马自达,丰田等,所以你可以很快看到,例如所有梅赛德斯汽车聚集在一起。
-
我知道我可以创建带有梅赛德斯、马自达、丰田标签的列,但将其应用于树状图,但它不允许快速评估(请记住,我有 200 多个案例(“汽车”) . 如果这不完全符合您的预期,我深表歉意!
-
我修复了该功能以更好地工作。如果有帮助,请告诉我:)
-
您不是在谈论 mtcars(该数据没有您所说的列)。您可能正在谈论此处的汽车数据:stat.berkeley.edu/~s133/Cluster2a.html 但它们与数据的链接已损坏,因此我无法重现您的示例。如果您希望我帮助您调试 - 我必须有一个完全可重现的示例。 (请将其包含在您的原始问题中,而不是在 cmets 中)
标签: r dendrogram dendextend