【发布时间】:2020-07-09 15:50:13
【问题描述】:
有时我会制作两个相似但数据不同的图。 因此,X 轴和 Y 轴将具有不同的范围。
library(ggplot2)
library(ggpubr)
#> Loading required package: magrittr
df1 <- data.frame(x=runif(10)*2,y = runif(10)*2)
df2 <- data.frame(x=runif(10)*3,y = runif(10)*1)
p1 <- qplot(x = x, y = y, data = df1, geom = "line")
p2 <- qplot(x = x, y = y, data = df2, geom = "line")
ggarrange(p1,p2)
由reprex package (v0.3.0) 于 2020-07-09 创建
这可以通过使用xlim 和ylim 显式声明一个范围来手动克服,但这既烦人,如果不小心可能会导致某些数据超出指定范围。
理想的解决方案是从p1 动态获取限制,如果这些限制大于p2 的限制,则使用p2 代替。例如p2 + xlim(getLimits(p1))。
支持这样的东西吗?
编辑:
建议使用This question,但答案适用于旧版本的ggplot2。此外,受支持的p1$coordinates$limits 仅返回手动指定的限制,这与目的不符。
【问题讨论】:
-
我看了看,但我无法使用
coordinates$limits对象或其他建议的对象来获得限制。它似乎是ggplot2的旧版本。此外,p1$coordinates$limits仅返回使用xlim等指定的限制。 -
The second answer 在那个重复的问题中包括较新的
layer_scales函数,而第三个讨论了ggplot_build选项,我认为这两者都应该做你想做的事