【问题标题】:Preserving text size with `grid.arrange`使用 `grid.arrange` 保留文本大小
【发布时间】:2018-03-16 11:39:11
【问题描述】:

问题

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

但是当我使用grid.arrange()时,它们变得扭曲了

他们各自看起来像

具体问题:

  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)

【问题讨论】:

  • 您是否正在查看 RStudio 小面板中的绘图?当您导出或缩小绘图时,失真会发生变化吗?我没有看到可重复的例子出现这种失真。还要在标题中添加“\n”以换行。
  • 我正在使用 R Markdown 将它们导出为 PDF,因为它是一份报告,所以我需要它。 \n 建议对字幕来说是个好主意。但是x轴部分仍然是一个问题。此外,以这种方式修改图表似乎效率低下。为什么我不能像图片一样缩放它们?
  • 确保您需要使用grid.arrange。我经常看到人们在facet_wrap 工作得更好时使用它。

标签: r ggplot2


【解决方案1】:

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

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

  2. 给有问题的部分相应地减少空间:x 轴标签和字幕。例如,对plot.subtitleaxis.title.x 使用element_text(size = 6) 之类的东西,在字幕甚至x 轴标签中添加\n,对后者也尝试使用element_text(angle = 30) 之类的东西。

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

【讨论】:

  • @Stan Shunpike,我怀疑您可能不喜欢这个解决方案,但问题是当您以一种或另一种方式重新调整 R 中的绘图时,文本大小保持不变。您的第一个图是矩形的,而在第二个图中,每个单独的图都是正方形,宽度明显更小,因此文本不再适合。
  • 这是一个很好的解决方案。它比我建议的效果更好,结果也比我想象的要好。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多