axis.title = 在 sjPlot 包中的 sjp.lmer() 中不起作用

axis.title = is not working in sjp.lmer() in the sjPlot package

我正在对一些混合模型进行绘图,我已经 运行 并且正在努力尝试 sjp.lmer() 更改固定效果的 x 和 y 轴标签。如果我遗漏了一些简单的东西,请告诉我!

这是我的代码:

library(sjPlot);library(lme4)

model = lmer(DV ~ IV + (1|groupingVariable), data = data, REML = F)

sjp.lmer(model, 
     type = "fe.slope", 
     vars = c("IV"),
     title = "Estimated effect of IV1 on DV", 
     geom.colors = c("black", "grey49"), 
     show.ci = T, 
     axis.title = c("IV Title", "DV Title"))

模型是使用 glmer() 估计的正式模型。问题是无论我写什么,x 和 y 标签都不会改变。

我认为语法是正确的,因为这段代码有效:

sjp.lmer(model, 
     type = "re", 
     sort.est = "sort.all", 
     facet.grid = F,
     axis.title = c("IV Title", "DV Title"))

第二个是同一模型的随机效应图。这是一个错误吗?您是否可以出于某种原因不为固定效果模型指定轴标签?谢谢!

似乎是一个错误。我在 gitHub 上提出了这个问题:

https://github.com/sjPlot/devel/issues/212

据我所知,这只是一个疏忽 ("misfeature"/bug)。查看代码 here:

reglinplot <- reglinplot +
  labs(title = title,
       x = sjmisc::get_label(model_data[[p_v]], def.value = p_v),
       y = response)

标签似乎是硬编码的。此外,sjp.reglin (here) 的参数列表没有 axis.title 参数……正如您所做的那样,发布问题似乎是正确的前进方向。

但是,如果您对 ggplot2 软件包略知一二,就不难破解情节。

设置示例:

library(sjPlot); library(lme4
mod <- lmer(Reaction~Days+(Days|Subject),sleepstudy)
p1 <- sjp.lmer(mod, 
     type = "fe.slope", 
     vars = "Days")  ## stripped-down (warning about colour palette)

破解标签:

library(ggplot2)
p1$plot.list[[1]] + labs(x="hello",y="goodbye")