我在R中使用grid.arrange
绘制多个图。所有的图都是相似的,所以我希望它们具有相似的比例以便于比较。是否有一个通用命令可以用于为scale_y_continuous
选择最窄的limits
,其中包括所有的图(预测和置信区间的上/下限)?
如果图不能全部具有相同的比例,是否有通用命令,使得至少所有图可以具有其各自的最窄的边界。
例如,给定以下图:
library(fixest)
library(marginaleffects)
library(ggplot2)
library(gridExtra)
library(grid)
mod1 <- feols(hp ~ vs * am | carb, data = mtcars)
# extract raw data for plotting
dat1 <- plot_slopes(mod1, variables = "vs", condition = "am", draw = FALSE)
# convert categorical (binary/factor) variable to numeric
dat1$am <- as.numeric(as.character(dat1$am))
plot1 <- ggplot(dat1, aes(x = am, y = estimate, ymin = conf.low, ymax = conf.high)) +
geom_line() +
geom_ribbon(alpha = .2) +
theme_minimal() +
labs(y = "Slopes")
mod2 <- feols(hp ~ vs * am + mpg | carb, data = mtcars)
# extract raw data for plotting
dat2 <- plot_slopes(mod2, variables = "vs", condition = "am", draw = FALSE)
# convert categorical (binary/factor) variable to numeric
dat2$am <- as.numeric(as.character(dat2$am))
plot2 <- ggplot(dat2, aes(x = am, y = estimate, ymin = conf.low, ymax = conf.high)) +
geom_line() +
geom_ribbon(alpha = .2) +
theme_minimal() +
labs(y = "Slopes")
grid.arrange(plot1,plot2)
如何选择最窄的可能scale_y_continous
,以适合两个图的预测及其阴影置信区间的下限和上限?如果不能对两个图使用相同的标度,可以使用各自的最窄标度吗?我想对许多图都这样做,所以自动化过程是理想的。
2条答案
按热度按时间bqucvtff1#
您可以使用
layer_scales
从图中获取现有范围,因此我们可以mklgxw1f2#
您应该能够使用
scale_y_continous(limits = c(lower, upper), breaks =c(lower, middle, middle_2, _upper)).
使所有图具有相同的比例您可以设置相同的下限和上限,并使图形在相同比例下保持可比性。
不过,我的直觉是,您要问的是“*
scale_y_continuous
中是否有一个命令可以自动选择最低和最高可能的界限?*”我的理解是,这个问题的答案是否定的,但您可以手动识别具有最低/最高边界的图形,并为所有后续图形输入该值。