r - 使用 `grid.arrange` 保留文本大小

标签 r ggplot2

问题

我想使用 grid.arrange() 显示 4 个图表。当我单独显示它们时,它们看起来像这样:

enter image description here

但是当我使用 grid.arrange() 时,它们会变形

enter image description here

他们各自看起来像

enter image description here

具体问题:

  1. x 轴标签不会缩放和重叠,因此无法阅读。
  2. 字幕被截断。

目标

我想使用 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)

最佳答案

当您单独显示这些图表时,它们只会有更多的空间。所以,这些是自然的扭曲,也许只有三种方法可以解决这个问题。

  1. 导出合并图的时候,要足够大。如果单件在 6x5 英寸时看起来不错,那么组合件在 12x10 英寸时肯定会很好看。

  2. 为有问题的部分提供相应较少的空间:x 轴标签和副标题。例如,对 plot.subtitleaxis.title.x 使用类似 element_text(size = 6) 的东西,添加 \n 添加到字幕甚至 x 轴标签,也可以为后者尝试类似 element_text(angle = 30) 的方法。

  3. 摆脱不必要的东西。正如@Richard Telford 在评论中建议的那样,使用 facet_wrap 应该效果更好。这可能是由于,例如,不重复 y 轴标签,因此提供了更多的水平空间。

关于r - 使用 `grid.arrange` 保留文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49224868/

相关文章:

r - 匹配矩阵元素

r - 将 Adwords 流量估算器服务与 R/‘RAdwords’ 包结合使用

r - 在特定轴刻度上应用粗体字体

r - 将列值与第一行进行比较并保留 R 中的原始值

r - 在 plot.xts 中设置颜色

r - R 中的局部线性回归——locfit() 与 locpoly()

r - 将 ggplot2 图例移动到右上角?

r - ggplot2 geom_freqpoly 线未按预期值与 x 轴交叉

r - 在 R 中使用 marrangeGrob 和 ggsave 的多页 PDF 的页面标题

r - ggplot 中的分组条形图