我这样做:
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标签就可以了。
答案 0 :(得分:2)
如果您在 faceting 时尝试为x和y轴使用不同的标签,那么正确的答案是您可能不应该使用facet。刻面的整个点是每个面板共享相同的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
。