是否可以使用ggdendro仅绘制直方图的一小部分。例如,在下面的示例中,我如何仅绘制最左侧的集群:
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()

奖励问题:为什么上面的示例中没有显示州标签?
发布于 2012-09-23 18:16:18
数据:
hc <- hclust(dist(USArrests), "ave")
dhc <- as.dendrogram(hc)
library(ggdendro)
ddata <- dendro_data(dhc, type="rectangle")为要绘制的数据创建索引(左簇):
index <- seq(3, which(ddata$segment$y[-c(1, 2)] == ddata$segment$y[1])[2])绘图(包括x轴标签):
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))])

发布于 2012-09-23 21:13:25
@伊丽莎白:您可以修改您的原始代码,如下所示来查看x标签:
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))https://stackoverflow.com/questions/12544721
复制相似问题