2

私はこのようにやっています:

ggplot(IDPlotLn, aes(x=CO3, y=CRf)) + 
  xlab(xlabel) + 
  ylab(ylabel)  +
  opts(
      axis.text.x = theme_text(size=10, face="plain", colour="black",vjust=1), 
      axis.text.y = theme_text(size=10, face="plain", colour="black", hjust=1)) +
  scale_y_continuous(limits = c(-1.3 , 1.3), expand = c(0,0)) + 
  opts(panel.margin=unit(1, "cm")) +
  geom_point() + 
  geom_smooth(method="lm",se=F) + 
  facet_wrap(~ ID, nrow=7, ncol=3, scales = "free") +
  opts(strip.text.x = theme_text(size = 8))

同じ xlabel と ylabel であるファセットごとに Xlabel と ylabel をプロットしたいと思います。このように、すべてのファセットに対して xlabel と ylabel が 1 つしかありません。

出来ますか?


あなたの答えをありがとう、私はgridExtraを知りませんでした。

しかし、この例では、ファセットを作成していて、より美しくしたいだけです。各パネルに追加したいのは同じ xlabel と ylabel です。後で、すべてのパネルからいくつかのパネルを選択したいので、x と y のラベルが既にあると便利です。

4

1 に答える 1

2

ファセットを作成するときに x 軸と y 軸に異なるラベルを使用しようとしている場合、正しい答えはおそらくファセットを使用すべきではないということです。ファセッティングの要点は、各パネルが同じ x 軸と y 軸を共有することです。したがって、異なるラベルを付けている場合は、ファセットを誤用している可能性があります。

おそらく代わりに、各パネルを個別にプロットしてから、それらをグリッドに配置することをお勧めします。これは、パッケージggplot2の助けを借りて簡単に行うことができます:gridExtra

dat <- data.frame(x = rep(1:5,3),
        y = rnorm(15),
        z = rep(letters[1:3],each = 5))

dat <- split(dat,dat$z)

p1 <- ggplot(dat[[1]],aes(x=x,y=y)) + 
        geom_point() + 
        labs(x = 'xlabel1',y='ylabel1')

p2 <- ggplot(dat[[2]],aes(x=x,y=y)) + 
        geom_point() + 
        labs(x = 'xlabel2',y='ylabel2')

p3 <- ggplot(dat[[3]],aes(x=x,y=y)) + 
        geom_point() + 
        labs(x = 'xlabel3',y='ylabel3')

library(gridExtra)
grid.arrange(p1,p2,p3)]

ここに画像の説明を入力

?grid.arrangeその他の例については、 を参照してください。

于 2011-09-27T16:03:20.123 に答える