r - 用多种颜色标记ggdendro叶子

标签 r colors ggplot2 dendrogram

我有一种情况,我正在绘制带有类标签的数据点的树状图。
我希望看到凝聚聚类将具有相同标签的那些组合在一起。对标签进行颜色编码可以很容易地阅读这样的树状图。有没有办法在 R 中使用 ggdendro 来实现这一点?

最佳答案

this post 窃取大部分设置...

library(ggplot2)
library(ggdendro)
data(mtcars)
x <- as.matrix(scale(mtcars))
dd.row <- as.dendrogram(hclust(dist(t(x))))
ddata_x <- dendro_data(dd.row)

p2 <- ggplot(segment(ddata_x)) +
  geom_segment(aes(x=x, y=y, xend=xend, yend=yend))

...并添加分组因子...
labs <- label(ddata_x)
labs$group <- c(rep("Clust1", 5), rep("Clust2", 2), rep("Clust3", 4))
labs
#     x y text  group
# 1   1 0 carb Clust1
# 2   2 0   wt Clust1
# 3   3 0   hp Clust1
# 4   4 0  cyl Clust1
# 5   5 0 disp Clust1
# 6   6 0 qsec Clust2
# 7   7 0   vs Clust2
# 8   8 0  mpg Clust3
# 9   9 0 drat Clust3
# 10 10 0   am Clust3
# 11 11 0 gear Clust3

...您可以使用 aes(colour=)论据 geom_text()给标签上色:
p2 + geom_text(data=label(ddata_x),
               aes(label=label, x=x, y=0, colour=labs$group))

enter image description here

(如果你想提供你自己的颜色,你可以使用 scale_colour_manual() ,做这样的事情:
p2 + geom_text(data=label(ddata_x),
               aes(label=label, x=x, y=0, colour=labs$group)) +
     scale_colour_manual(values=c("blue", "orange", "darkgreen"))

关于r - 用多种颜色标记ggdendro叶子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8045538/

相关文章:

java - java awt中从字符串参数到颜色

r - R 中 xtabs() 表内的数学运算

像彩虹一样对颜色进行排序的算法

r - 在ggplot数字的.eps和.pdf中编码希腊符号

apache-flex - Flex/Actionscript 白色到透明

r - 将鼠标悬停在 R 中时获取点的名称

r - 将蓝色以外的颜色应用于 bin2d

r - 如何使用填充颜色为 ggforce::geom_mark_ellipse 标签着色

python KDE 将轮廓和路径转换为特定的 json 格式 leaflet-friendly

r - 在函数内调用时使用 png 函数不起作用