使用 grid.arrange 扩大 multi-panel 图中的边距以适应 cross-panel 标题
Widening margins in multi-panel figure to fit cross-panel titles using grid.arrange
我需要在 grid.arrange object 中扩大边距。下面举例说明问题
library(tidyverse)
library(grid)
library(gridExtra)
这是一些数字
g1 <- ggplot(iris, aes(Sepal.Width, Petal.Length)) + geom_point()
g2 <- ggplot(iris, aes(Sepal.Width, Petal.Length)) + geom_point()
g3 <- ggplot(iris, aes(Sepal.Width, Petal.Length)) + geom_point()
g4 <- ggplot(iris, aes(Sepal.Width, Petal.Length)) + geom_point()
现在假设我想使用 gridExtra
和 grid
包中令人惊叹的 grid.arrange()
函数将所有这些放入一个 multi-panel 图形中。假设我还想添加一些 cross-panel 标题,标题跨越我的几个数字。
gridExtra::grid.arrange(g1, g2, g3, g4, ncol = 2, nrow = 2,
left = textGrob("Cross-panel title 1",
gp = gpar(fontsize = 16),
rot = 90),
right = textGrob("Cross-panel title 1",
gp = gpar(fontsize = 16),
rot = 270,
vjust = 0)) -> panelG
请注意,我想将 right-hand 侧 y-axis 标题从面板的右侧 yaxes 移得更远。所以要做到这一点是在 textGrob()
函数中使用 vjust =
参数。现在当我保存这个数字时。
ggsave("panelG.jpg",
plot = panelG,
device = "jpg",
width = 10,
height = 10,
units = c("cm"),
limitsize = T)
它切断了一些文本。
如何在不切断文本的情况下将右边的 y-axis cross-panel 标题移离轴更远?
您可以在右侧添加更多填充(从默认的 .5 增加到 1):
gridExtra::grid.arrange(g1, g2, g3, g4, ncol = 2, nrow = 2, padding=unit(c(.5,1),"line"),
left = textGrob("Cross-panel title 1",
gp = gpar(fontsize = 16),
rot = 90),
right = textGrob("Cross-panel title 2",
gp = gpar(fontsize = 16),
rot = 270,
vjust = 0)) -> panelG
我需要在 grid.arrange object 中扩大边距。下面举例说明问题
library(tidyverse)
library(grid)
library(gridExtra)
这是一些数字
g1 <- ggplot(iris, aes(Sepal.Width, Petal.Length)) + geom_point()
g2 <- ggplot(iris, aes(Sepal.Width, Petal.Length)) + geom_point()
g3 <- ggplot(iris, aes(Sepal.Width, Petal.Length)) + geom_point()
g4 <- ggplot(iris, aes(Sepal.Width, Petal.Length)) + geom_point()
现在假设我想使用 gridExtra
和 grid
包中令人惊叹的 grid.arrange()
函数将所有这些放入一个 multi-panel 图形中。假设我还想添加一些 cross-panel 标题,标题跨越我的几个数字。
gridExtra::grid.arrange(g1, g2, g3, g4, ncol = 2, nrow = 2,
left = textGrob("Cross-panel title 1",
gp = gpar(fontsize = 16),
rot = 90),
right = textGrob("Cross-panel title 1",
gp = gpar(fontsize = 16),
rot = 270,
vjust = 0)) -> panelG
请注意,我想将 right-hand 侧 y-axis 标题从面板的右侧 yaxes 移得更远。所以要做到这一点是在 textGrob()
函数中使用 vjust =
参数。现在当我保存这个数字时。
ggsave("panelG.jpg",
plot = panelG,
device = "jpg",
width = 10,
height = 10,
units = c("cm"),
limitsize = T)
它切断了一些文本。
如何在不切断文本的情况下将右边的 y-axis cross-panel 标题移离轴更远?
您可以在右侧添加更多填充(从默认的 .5 增加到 1):
gridExtra::grid.arrange(g1, g2, g3, g4, ncol = 2, nrow = 2, padding=unit(c(.5,1),"line"),
left = textGrob("Cross-panel title 1",
gp = gpar(fontsize = 16),
rot = 90),
right = textGrob("Cross-panel title 2",
gp = gpar(fontsize = 16),
rot = 270,
vjust = 0)) -> panelG