问题
我想使用 grid.arrange()
显示 4 个图表。当我单独显示它们时,它们看起来像这样:
但是当我使用 grid.arrange()
时,它们会变形
他们各自看起来像
具体问题:
- x 轴标签不会缩放和重叠,因此无法阅读。
- 字幕被截断。
目标
我想使用 grid.arrange()
重现每个图,就像网格中的第一个理想情况一样。一种可能的方法是将每个绘图转换为图像,然后使用 grid.arrange()
但我不知道该怎么做。
可重现的例子
下面是一个示例可重现的代码,显示了我遇到的问题。
p1 <- ggplot(subset(mtcars, cyl = 4), aes(wt, mpg, colour = cyl)) + geom_point() + labs(title = "TITLE-TITLE-TITLE-TITLE-TITLE-TITLE", subtitle = "-subtitle-subtitle-subtitle-subtitle-subtitle-subtitle-subtitle-") +theme(plot.title = element_text(hjust = 0.5),plot.subtitle = element_text(hjust = 0.5))
p2 <- ggplot(subset(mtcars, cyl = 4), aes(wt, mpg, colour = cyl)) + geom_point() + labs(title = "TITLE-TITLE-TITLE-TITLE-TITLE-TITLE", subtitle = "-subtitle-subtitle-subtitle-subtitle-subtitle-subtitle-subtitle-") +theme(plot.title = element_text(hjust = 0.5),plot.subtitle = element_text(hjust = 0.5))
grid.arrange(p1, p2, ncol = 2)
最佳答案
当您单独显示这些图表时,它们只会有更多的空间。所以,这些是自然的扭曲,也许只有三种方法可以解决这个问题。
导出合并图的时候,要足够大。如果单件在 6x5 英寸时看起来不错,那么组合件在 12x10 英寸时肯定会很好看。
为有问题的部分提供相应较少的空间:x 轴标签和副标题。例如,对
plot.subtitle
和axis.title.x
使用类似element_text(size = 6)
的东西,添加\n
添加到字幕甚至 x 轴标签,也可以为后者尝试类似element_text(angle = 30)
的方法。摆脱不必要的东西。正如@Richard Telford 在评论中建议的那样,使用
facet_wrap
应该效果更好。这可能是由于,例如,不重复 y 轴标签,因此提供了更多的水平空间。
关于r - 使用 `grid.arrange` 保留文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49224868/