使用diamonds
数据,我想绘制cut
的4个等级(Fair
、Good
、Very Good
和Premium
)中carat
和price
之间的关系。
为了控制轴上的间隔而不是使用facet_wrap()
函数,我创建了四个图来控制轴上的间隔。
library(ggplot2)
library(egg)
library(grid)
f1 <-
ggplot(diamonds[diamonds$cut=="Fair",], aes(carat, price))+
geom_point()+
facet_wrap(~cut, ncol =2)+
scale_x_continuous(limits = c(0,4), breaks=c(0, 1, 2, 3, 4))+
scale_y_continuous(limits = c(0,10000), breaks=c(0, 2500, 5000, 7500, 10000))+
labs(x=expression(" "),
y=expression(" "))
f2 <-
ggplot(diamonds[diamonds$cut=="Good",], aes(carat, price))+
geom_point()+
facet_wrap(~cut, ncol =2)+
scale_y_continuous(limits = c(0,5000), breaks=c(0, 1000, 2000, 3000, 4000, 5000))+
labs(x=expression(" "),
y=expression(" "))
f3 <-
ggplot(diamonds[diamonds$cut=="Very Good",], aes(carat, price))+
geom_point()+
facet_wrap(~cut, ncol =2)+
scale_x_continuous(limits = c(0,1), breaks=c(0, 0.2, 0.4, 0.6, 0.8, 1))+
scale_y_continuous(limits = c(0,1000), breaks=c(0, 200, 400, 600, 800, 1000))+
labs(x=expression(" "),
y=expression(" "))
f4 <-
ggplot(diamonds[diamonds$cut=="Premium",], aes(carat, price))+
geom_point()+
facet_wrap(~cut, ncol =2)+
scale_x_continuous(limits = c(0,1.5), breaks=c(0, 0.2, 0.4, 0.6, 0.8, 1, 1.2, 1.4))+
scale_y_continuous(limits = c(0, 3000), breaks=c(0, 500, 1000, 1500, 2000, 2500, 3000))+
labs(x=expression(" "),
y=expression(" "))
fin_fig <- ggarrange(f1, f2, f3, f4, ncol =2)
fin_fig
结果
每个图都有一系列不同的y值。
问题
在所有方面,x和y轴都是相同的。唯一的区别是最小值、最大值和间断点。我想在这个图形中添加x和y标签。我可以在任何Word文档或图像编辑器中手动完成此操作。是否有任何直接在R中完成此操作的方法?
grid::textGrob
和ggplot2::annotation_custom
。 - shayaagridExtra
包,其中包含left
和bottom
参数。:p <- ggplot() ; g <- gridExtra::arrangeGrob(p,p,p,p,ncol=2, bottom=grid::textGrob("底部标签"), left=grid::textGrob("左侧标签", rot=90)) ; grid::grid.newpage() ; grid::grid.draw(g)
- user20650