如何将R中sjPlot::plot_model生成的单图曲线置于同一行?
解决plot_model生成子图同行展示的问题
你的代码里因为设置了grid=T,同时terms参数包含第三个分组变量rip.,所以生成了多张子图的分面布局。要把这些子图放在同一行,直接在现有代码后面加上ggplot的分面调整即可:
修改后的完整代码:
plot1 <- plot_model(m3, type = "pred", terms = c("anno", "dimensione_capoluogo", "rip."), colors = c("grey80", "grey60", "black"), grid = T, # 保留分面逻辑 ci.lvl = NA, # 移除置信区间 axis.title = c("anno", "percentuale pop attiva"), title = "Stima longitudinale di popolazione attiva", legend.title = "dimensione\ncapoluogo", grid.breaks = 10) + scale_x_continuous(breaks = seq(2001, 2023, by = 2)) + geom_line() + facet_wrap(~rip., nrow = 1) # 关键:强制所有子图排成1行 plot(plot1)
原理说明:
plot_model生成的是ggplot对象,所以可以直接叠加ggplot的图层调整函数facet_wrap(~rip., nrow=1)会把所有按rip.分组的子图强制放在同一行,自动适配宽度- 如果你的
rip.分组数量较多,可通过theme()里的aspect.ratio参数,或者导出图片时设置宽度来调整显示效果
内容的提问来源于stack exchange,提问作者Brex Led
相关产品推荐
相关产品推荐

