我正在排列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)
的软件包,我希望有一个解决方案。我还尝试过使用egg
和cowplot
来做到这一点,并会在单独的问题中询问我在使用这些方法时遇到的问题。
由reprex package(v0.3.0)于2019-10-14创建