You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在sjPlot的plot_models中调整变量显示顺序(不修改公式)

调整sjPlot::plot_models的y轴变量顺序

由于plot_models没有内置的order.terms参数,但可以通过两种方式实现变量顺序调整:

方法1:用plot_model分别绘图后组合

利用支持order.terms的plot_model(单数版本)分别生成每个模型的可视化结果,再用绘图组合工具合并:

library(sjPlot)
library(gridExtra)

mod1 <- lm(mpg ~ cyl + disp + hp, data = mtcars)
mod2 <- lm(drat ~ cyl + disp + hp, data = mtcars)

# 为每个模型指定变量顺序:cyl → hp → disp
p1 <- plot_model(mod1, order.terms = c(1, 3, 2))
p2 <- plot_model(mod2, order.terms = c(1, 3, 2))

# 横向组合两个图
gridExtra::grid.arrange(p1, p2, ncol = 2)

方法2:直接修改plot_models生成的ggplot对象

plot_models返回的是ggplot对象,可以通过修改数据中变量的因子水平来调整y轴顺序:

library(sjPlot)
library(ggplot2)

mod1 <- lm(mpg ~ cyl + disp + hp, data = mtcars)
mod2 <- lm(drat ~ cyl + disp + hp, data = mtcars)

# 生成原始组合图
p <- plot_models(mod1, mod2)

# 重新指定变量的因子水平,控制y轴从上到下的显示顺序
p$data$term <- factor(p$data$term, levels = c("cyl", "hp", "disp"))

# 输出调整后的图
print(p)

注:因子水平的顺序对应y轴从上到下的显示顺序,按需修改levels参数即可。

内容的提问来源于stack exchange,提问作者Schillerlocke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:40:03