楼主: 282838707
2737 1

[问答] 如何对R中的hclust按照label着色 [推广有奖]

  • 0关注
  • 0粉丝

小学生

42%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
46 点
帖子
3
精华
0
在线时间
10 小时
注册时间
2015-7-28
最后登录
2021-7-9

楼主
282838707 发表于 2017-3-20 22:30:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
100行数据分属两个大类——是或否,然后对这100行数据进行层次聚类之后形成树状模型,我想根据之前的“是”“否”标签对形成的树状图着色。不是对形成树状图之后进行切割之后再着色,而是针对树状图按照之前就有的标签(是或否)进行着色。如图,1.txt属于是,2.txt也属于是,差不多40多项属于“是”这个标签,所以想将这些属于“是”的所有leaf着同一个颜色。所有属于“否”的标签着另外的颜色。
QQ图片20170320222548.jpg
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:hclust label Abel CLU Lab 层次聚类分析 树状图

沙发
282838707 发表于 2017-3-20 23:47:00
重新更改关键词,在stackoverflow上找到了答案,源代码贴出来在下面。
library(ggplot2)
library(ggdendro)

dm <- hclust(dist(USArrests[1:5,]), "ave")

df <- data.frame(State = c("Alabama","Alaska","Arizona","Arkansas","California"),
                 Location = c("South","North","West","South","West"))


hcdata<- dendro_data(dm, type="rectangle")

hcdata$labels <- merge(x = hcdata$labels, y = df,  by.x = "label", by.y = "State")


ggplot() +
geom_segment(data=segment(hcdata), aes(x=x, y=y, xend=xend, yend=yend)) +
geom_text(data = label(hcdata), aes(x=x, y=y, label=label, colour = Location, hjust=0), size=3) +
geom_point(data = label(hcdata), aes(x=x, y=y), size=3, shape = 21) +
coord_flip() +
scale_y_reverse(expand=c(0.2, 0)) +
scale_colour_brewer(palette = "Dark2") +
theme_dendro()

以下是效果图 8.jpg

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 02:46