首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ggdendro选择树状图的小节

使用ggdendro选择树状图的小节
EN

Stack Overflow用户
提问于 2012-09-22 22:42:14
回答 2查看 699关注 0票数 1

是否可以使用ggdendro仅绘制直方图的一小部分。例如,在下面的示例中,我如何仅绘制最左侧的集群:

代码语言:javascript
复制
require(ggplot2)

hc <- hclust(dist(USArrests), "ave")
dhc <- as.dendrogram(hc)

ddata <- dendro_data(dhc, type="rectangle")

ggplot(segment(ddata),labels=rownames(USArrests))+ 
geom_segment(aes(x=x, y=y, xend=xend, yend=yend))+ 
theme_dendro()

奖励问题:为什么上面的示例中没有显示州标签?

EN

回答 2

Stack Overflow用户

发布于 2012-09-23 18:16:18

数据:

代码语言:javascript
复制
hc <- hclust(dist(USArrests), "ave")
dhc <- as.dendrogram(hc)
library(ggdendro)
ddata <- dendro_data(dhc, type="rectangle")

为要绘制的数据创建索引(左簇):

代码语言:javascript
复制
index <- seq(3, which(ddata$segment$y[-c(1, 2)] == ddata$segment$y[1])[2])

绘图(包括x轴标签):

代码语言:javascript
复制
library(ggplot2)

ggplot(segment(ddata)[index, ]) + 
  geom_segment(aes(x = x, y = y, xend = xend, yend = yend)) + 
  scale_x_discrete(labels = ddata$label$label[seq(sum(ddata$segment$yend == 0))])

票数 2
EN

Stack Overflow用户

发布于 2012-09-23 21:13:25

@伊丽莎白:您可以修改您的原始代码,如下所示来查看x标签:

代码语言:javascript
复制
require(ggplot2)
hc <- hclust(dist(USArrests), "ave")
ddata <- dendro_data(hc, type="rectangle")
ggplot() + 
geom_segment(data=segment(ddata), aes(x=x, y=y, xend=xend, yend=yend)) + 
geom_text(data=label(ddata), aes(x=x, y=y, label=label, hjust=0), size=3) +
coord_flip() + scale_y_reverse(expand=c(0.2, 0))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12544721

复制
相关文章

相似问题

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