首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用多种颜色标记ggdendro叶子

用多种颜色标记ggdendro叶子
EN

Stack Overflow用户
提问于 2011-11-08 11:18:18
回答 1查看 6.2K关注 0票数 13

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-08 12:07:42

正在从this post窃取大部分设置...

代码语言:javascript
复制
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))

..。再加上一个分组因子...

代码语言:javascript
复制
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

..。您可以使用geom_text()aes(colour=)参数为标签着色:

代码语言:javascript
复制
p2 + geom_text(data=label(ddata_x),
               aes(label=label, x=x, y=0, colour=labs$group))

(如果您想提供自己的颜色,可以使用scale_colour_manual(),执行以下操作:

代码语言:javascript
复制
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"))
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8045538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档