我想要使用grid.arrange()
显示4个图表。当我单独显示它们时,它们看起来像这样:
但是当我使用grid.arrange()
时,它们会变形
与他们分别看起来像
具体问题:
我希望在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)
答案 0 :(得分:1)
当您单独显示这些图形时,它们只会有更多空间。所以,那些是自然扭曲,也许只有三种方法可以解决这个问题。
导出组合图时,请将其设置得足够大。如果个人在6x5英寸中看起来很好,那么合并后的那个在12x10英寸中看起来会很好。
为有问题的部分提供相应的空间:x轴标签和副标题。例如,对element_text(size = 6)
和plot.subtitle
使用axis.title.x
之类的内容,在字幕甚至x轴标签上添加\n
,尝试类似element_text(angle = 30)
的内容后者也是如此。
摆脱不必要的东西。正如@Richard Telford在评论中所建议的,使用facet_wrap
应该会更好。这可能是由于,例如,不重复y轴标签,因此,提供更多的水平空间。