用软件包“ egg”控制布置图的纵横比?

时间:2019-10-14 16:20:59

标签: r ggplot2

我正在排列y轴对齐的并排图。其中一个图具有固定的宽高比,而另一个则没有。我希望自由比率图采用固定比率图的长宽比。看来egg的{​​{1}}采用了第一个绘图的长宽比并将其应用于第二个绘图,因此我可以通过将固定比率绘图放在第一位来实现所需的宽高比。如何反转图的顺序并仍然遵守固定的长宽比?

一种方法可能是将“自由”图的纵横比固定为与“固定”图的纵横比相同。我需要从固定图对象中提取宽高比,以执行此操作,因为它是由ggarrange以编程方式确定的,我不知道该怎么做。

在此示例中,由于固定比率图位于左侧,因此第一种排列正确呈现。

ggplot

具有固定长宽比的图在右侧,并且不再正确显示。

library(ggplot2)
library(egg)
#> Loading required package: gridExtra

set.seed(1)
df1 <- data.frame(x = runif(20, min = 0, max = 10),
                  y = runif(20, min = 0, max = 10))
z <- 42 + 0.1 * df1$y
df2 <- data.frame(y = df1$y,
                  z = z)

p1 <- ggplot(df1, aes(x=x, y=y)) + 
  geom_point() +
  coord_fixed()
p2 <- ggplot(df2, aes(x=z, y=y)) + geom_line()

ggarrange(p1, p2, nrow = 1)

注意:对于使用包ggarrange(p2, p1, nrow = 1) 的软件包,我希望有一个解决方案。我还尝试过使用eggcowplot来做到这一点,并会在单独的问题中询问我在使用这些方法时遇到的问题。

reprex package(v0.3.0)于2019-10-14创建

0 个答案:

没有答案