据我所知,有许多线程处理 ggplot 中的图例或因素的顺序。但是,我没有找到有关如何更改单个图中多个模型顺序的建议。Solt & Hu 的 dotwhisker-package 为他们的图集成了 ggplot。
library(dotwhisker)
library(broom)
library(dplyr)
m1 <- lm(mpg ~ wt + cyl + disp + gear, data = mtcars)
m2 <- update(m1, . ~ . + hp)
m3 <- update(m2, . ~ . + am)
threeM <- rbind(tidy(m1) %>% mutate(model = "M1"),
tidy(m2) %>% mutate(model = "M2"),
tidy(m3) %>% mutate(model = "M3"))
dwplot(threeM) +
theme(legend.title=element_blank(), panel.background = element_rect(fill = "white"),
panel.grid.major.x = element_line(colour="grey"))
Run Code Online (Sandbox Code Playgroud)
此图的问题在于模型 3 的系数和 CI(应该是最后显示的值)在每行中首先显示。
我希望每行中的系数按时间顺序显示。即,M1系数+CI高于M2系数+CI。并且M2系数+CI高于M3系数+CI。更简单地说:红线应该在绿线之上,绿线应该在蓝线之上。
使用模型作为因子并没有被证明是有用的。
threeM$model <- factor …Run Code Online (Sandbox Code Playgroud)