1

最初に基礎となるデータの 2 つのカテゴリでデータをプロットしています。

library(plyr)
library(ggplot2)

d1 <- data.frame(v1 = rnorm(30),
                  x = rep(letters[1:6],  
                          c(6, 3, 8, 3, 4, 6)),
              group = rep(paste("g", 1:3, sep = ""),
                          c(9, 11, 10)))

次に、因数を並べます

of <- ddply(d1, .(x), function(i) mean(i$v1))
of <- of[order(-of$V1),]
d1$x <- factor(d1$x, levels = of$x)

そして、これは次のプロットを提供します

ggplot(d1) + geom_point(aes( x = v1, y = x)) + 
             facet_grid(group ~ .,
                        scales = "free_y",
                        space = "free_y")

集計なしの最初のプロット

しかし、関連する分布を示す、グループごとに個別の水平ボックスプロットも追加したいと思います。最初のステップは、y 軸に「合計」スペースを提供することです。

d2 <- rbind(d1, 
        data.frame(v1 = NA,
                    x = "Total",
                group = unique(d1$group)))

 ggplot(d2) + geom_point(aes( x = v1, y = x)) + 
              facet_grid(group ~ .,
                         scales = "free_y",
                         space = "free_y")

これは以下を提供します、そしてここで私は立ち往生しています

y 軸に合計スポットをプロットします。

各グループのデータを要約して、「合計」軸ブレークの横に水平ボックスプロットが必要です。

前もって感謝します。

4

1 に答える 1

2

出発点は、2 つのデータ フレームを作成することですd1。元のデータ フレームとd2、x 値がすべてTotal.

d2 <- d1
d2$x <- "Total"

次にd1、ポイントをd2作成し、箱ひげ図を作成するために使用します。xこれは、値が x として使用される箱ひげ図の垂直方向の配置の例です。問題は、水平ボックスプロットを使用する必要があることcoord_flip()です。反転軸とフリー スケールを一緒に使用することはできません。

ggplot()+geom_point(data=d1,aes(x=x,y=v1))+
  geom_boxplot(data=d2,aes(x=x,y=v1))+
  facet_wrap(~group ,
             scales = "free_x")

ここに画像の説明を入力

grid.arrange()必要な方向に進むための回避策は、3 つの別々のプロット (グループごとに 1 つ) を作成し、それらをfor libraryでまとめることgridExtraです。最初と 2 番目のプロットでは、x 軸の目盛り、テキスト、およびタイトルをすべて削除しました。

library(gridExtra)

p1<-ggplot()+geom_point(data=subset(d1,group=="g1"),aes(x=x,y=v1))+
  geom_boxplot(data=subset(d2,group=="g1"),aes(x=x,y=v1))+
  coord_flip()+
  facet_grid(group~.)+
  scale_y_continuous(limits=c(-2,2.5))+
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank())

p2<-ggplot()+geom_point(data=subset(d1,group=="g2"),aes(x=x,y=v1))+
  geom_boxplot(data=subset(d2,group=="g2"),aes(x=x,y=v1))+
  coord_flip()+
  facet_grid(group~.)+
  scale_y_continuous(limits=c(-2,2.5))+
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank())

p3<-ggplot()+geom_point(data=subset(d1,group=="g3"),aes(x=x,y=v1))+
  geom_boxplot(data=subset(d2,group=="g3"),aes(x=x,y=v1))+
  coord_flip()+
  facet_grid(group~.)+
  scale_y_continuous(limits=c(-2,2.5))

grid.arrange(p1,p2,p3)

ここに画像の説明を入力

于 2013-11-11T07:49:36.367 に答える