R 中混合多个图形的轴标题对齐

Axis title alignment with mixed multiple graphs in R

我正在使用 ggplot2 包来制作图表。我有 2 个图表,我使用 cowplot 包中的 plot_grid() 进行混合。

library(ggplot2)
library(cowplot)

x1 <- c(52.67, 46.80, 41.74, 40.45)
y1 <- c(1.726219351, 1.842421805, 1.790801758, 1.449997494)
x2 <- c(51.07, 65.97, 61.01, 49.25)
y2 <- c(5.39765063, 0.215293169, 0.694595893, 1.501089083)

DF <- data.frame(x1, y1, x2, y2)

p1 <- ggplot(DF, aes(x1, y1)) + 
  geom_point() +
  theme(aspect.ratio = 1)

p2 <- ggplot(DF, aes(x2, y2)) + 
  geom_point() +
  theme(aspect.ratio = 1)

plot_grid(p1, p2)

plot_grid(p1, p2, align = "hv")

第二张图的 y 轴 (p2) 比绘图的 y 轴大 p1(图中的红线),所以我使用了 align,来自 cowplot 包。但是,y 轴标签与原始绘图 (p2) 大小保持相同的位置(图像中的蓝线)。有没有办法让标签像原图一样靠近y轴?

对齐具有固定轴比的图表可能很困难。在任何情况下,如果除了 align 之外还使用 axis 参数,则一切正常。有关详细信息,请参见此处:https://wilkelab.org/cowplot/articles/aligning_plots.html

library(ggplot2)
library(cowplot)
#> 
#> ********************************************************
#> Note: As of version 1.0.0, cowplot does not change the
#>   default ggplot2 theme anymore. To recover the previous
#>   behavior, execute:
#>   theme_set(theme_cowplot())
#> ********************************************************

x1 <- c(52.67, 46.80, 41.74, 40.45)
y1 <- c(1.726219351, 1.842421805, 1.790801758, 1.449997494)
x2 <- c(51.07, 65.97, 61.01, 49.25)
y2 <- c(5.39765063, 0.215293169, 0.694595893, 1.501089083)

DF <- data.frame(x1, y1, x2, y2)

p1 <- ggplot(DF, aes(x1, y1)) + 
  geom_point() +
  theme(aspect.ratio = 1)

p2 <- ggplot(DF, aes(x2, y2)) + 
  geom_point() +
  theme(aspect.ratio = 1)

plot_grid(p1, p2, align = "hv", axis = "tbrl")

reprex package (v0.3.0)

于 2019-07-26 创建