1

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()

ここに画像の説明を入力

おまけの質問: 上の例で州のラベルが表示されないのはなぜですか?

4

2 に答える 2

2

@Elizabeth: 元のコードを次のように変更して、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))
于 2012-09-23T13:13:25.270 に答える
2

データ:

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-23T10:16:17.937 に答える