8

我用这个ggplot2包做了 3 个图。为了在一个图中排列图,我使用了patchwork包。在排列中,我在顶部放置了 2 个图,这些图下方的常见图例和第三图下方的常见图例。我使用该函数创建了公共图例空间guide_area(),但随之创建了一个未使用的大空白区域。

我怎样才能将这个未使用的空白空间保持在最低限度?

library(ggplot2)
library(patchwork)

p1 <- ggplot(data = mpg,
             aes(x = fl,
                 y = displ)) +
  geom_col(aes(fill = cty))

p2 <- ggplot(data = mpg,
             aes(x = year,
                 y = hwy)) +
  geom_point(aes(color = drv))

p3 <- ggplot(data = mpg,
             aes(x = class,
                 y = displ)) +
  geom_col() +
  facet_grid(~year)

((p1+p2)/guide_area()/p3) +
  plot_layout(guides = "collect") &
  theme(legend.position = "bottom")

空白区域以不同的大小和比例保留在图形中(空白区域用红色标记)。

在此处输入图像描述

4

1 回答 1

6

heights = ...在里面使用plot_layout

例如,

((p1+p2)/guide_area()/p3) +
  plot_layout(guides = "collect", heights = c(3,1,3)) &
  theme(legend.position = "bottom")

在此处输入图像描述

于 2021-10-12T05:59:19.123 回答