如何在使用 ggplot2 制作的图中最小化由 patchwork 包的 guide_area() 函数创建的空白?
Posted
技术标签:
【中文标题】如何在使用 ggplot2 制作的图中最小化由 patchwork 包的 guide_area() 函数创建的空白?【英文标题】:How to minimize the white space created by the guide_area() function of the patchwork package in plots made with ggplot2? 【发布时间】:2021-11-30 17:45:31 【问题描述】:我使用 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")
空白区域以不同的大小和比例保留在图形中(空白区域用红色标记)。
【问题讨论】:
【参考方案1】:在plot_layout
中使用heights = ...
。
例如,
((p1+p2)/guide_area()/p3) +
plot_layout(guides = "collect", heights = c(3,1,3)) &
theme(legend.position = "bottom")
【讨论】:
以上是关于如何在使用 ggplot2 制作的图中最小化由 patchwork 包的 guide_area() 函数创建的空白?的主要内容,如果未能解决你的问题,请参考以下文章
在堆积条形图中反转 geom_text() (ggplot2)