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 用于所有方面。

是否可以?


谢谢你的回答,我不知道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 回答