求助:sjPlot中plot_model使用coord_flip()翻转坐标轴失败的解决方法
解决sjPlot plot_model坐标轴翻转问题
sjPlot的plot_model()函数本身提供了坐标轴翻转的参数,你之前用的coord_flip=TRUE不是该函数的内置参数,正确的用法有两种:
1. 线性模型(efc数据集)
针对你的线性模型代码,直接用以下两种方式之一即可实现翻转:
方式一:使用函数自带的flip参数
library(sjPlot) data(efc) model <- lm(neg_c_7 ~ e42dep + c161sex + c172code, data = efc) plot_model(model, flip = TRUE)
方式二:叠加ggplot的coord_flip()层
因为plot_model()返回的是ggplot对象,直接在后面添加图层即可:
plot_model(model) + coord_flip()
如果之前这种方式失败,大概率是你指定了不适合翻转的绘图类型(比如type="pred"预测图),默认的系数图(type="est")完全支持该操作。
2. 混合效应模型(trajectories数据集)
针对混合效应模型的对比绘图,同样适用上述两种方法:
方式一:内置flip参数
library(sjPlot) library(lme4) data(trajectories) model1 <- lmer(score ~ age + grade + (1|id), data = trajectories) model2 <- lmer(score ~ age * grade + (1|id), data = trajectories) plot_model(list(model1, model2), show.values = TRUE, flip = TRUE)
方式二:叠加ggplot图层
plot_model(list(model1, model2), show.values = TRUE) + coord_flip()
额外提示
如果仍然无法正常翻转,检查你的sjPlot版本是否过旧,更新到最新版再尝试:
install.packages("sjPlot")
内容的提问来源于stack exchange,提问作者skpak
相关产品推荐
相关产品推荐

