首页 > 解决方案 > 如何使用R中的`plot_grid`减少一列图的图边距?

问题描述

我需要安排地块,其中每一行地块都有一个共同的图例。所有绘图共享相同的 y 轴和 x 轴单位。下面我展示了我的情节排列方式:

在此处输入图像描述

我将每一行的公共图例提取为一个图,然后将其作为附加列添加到我的排列中。

如您所见,带有图例的列在排列中“消耗”了大量空间,我能做些什么来减少它们的边距以支持其他两列?

我之所以使用plot_grid,是因为我在此链接中看到您可以使用ggdraw.

标签: rggplot2cowplot

解决方案


您可以使用 的rel_widths参数plot_grid。这是一个可重现的示例:

library(ggplot2)
library(cowplot)
library(ggpubr)
theme_set(theme_cowplot())

df <- data.frame(x = 1:12, y = (1:12)^2)
df$grp = c('Some', 'Things', 'In a legend')

p <- ggplot(df, aes(x, y, color=grp)) + geom_point()
leg <- get_legend(p)
leg <- as_ggplot(leg)
p = p + theme(legend.position = "none")

plot_grid(
  p, p, leg, 
  p, p, leg,
  ncol = 3, rel_widths=c(2,2,1)
)

在此处输入图像描述


推荐阅读