0

我试图绘制固定效应和随机因素之间的相互作用。sjPlot 似乎是一个很好的包,但我在更改线型和颜色时遇到了麻烦。我希望将线条颜色更改为具有不同线条类型的灰度方案以区分组。我已经尝试过geom.color参数和sjp.setTheme函数,但到目前为止还没有得到想要的结果。

下面的示例代码展示了我最初的尝试,借鉴了sjPlot网站上的示例:

data(efc)

efc$hi_qol <- dicho(efc$quol_5)

efc$grp = as.factor(efc$e15relat)
  levels(x = efc$grp) <- get_labels(efc$e15relat)

mydf <- data.frame(hi_qol = efc$hi_qol,
                   sex = to_factor(efc$c161sex),
                   c12hour = efc$c12hour,
                   neg_c_7 = efc$neg_c_7,
                   grp = efc$grp)
fit <- glmer(hi_qol ~ sex + c12hour + neg_c_7 + (1 | grp),
              data = mydf, family = binomial("logit"))

sjp.glmer(fit, type="ri.slope", facet.grid=F, vars="neg_c_7")

要更改线条颜色,我尝试了设置geom.colors="black",但这似乎没有做任何事情。

sjp.glmer(fit, type="ri.slope", facet.grid=F, geom.colors="black", vars="neg_c_7")

接下来我尝试更改 sjPlot 使用的主题来更改线型,但这也不起作用。

sjp.setTheme(geom.linetype = c(1:8))
sjp.glmer(fit, type="ri.slope", facet.grid=F, vars="neg_c_7")

我是否遗漏了一些明显的东西,或者更改线型和颜色更复杂?

4

2 回答 2

0

我不确定如何使用 sjplot 执行此操作,但您可以使用该interaction.plot函数生成绘图并添加col= c(...)以更改线条的颜色。

interaction.plot(factor, factor, fit, .. col = c("red","blue"))
于 2016-11-15T23:54:42.547 回答
0

sjPlot 包不支持更改线型 - 仅支持颜色。线型美学目前没有被 sjp 函数映射。但是,您可以访问用于绘图的数据并创建自己的交互图:

library(ggplot2)
library(sjmisc)
data(efc)
# create binary response
y <- ifelse(efc$neg_c_7 < median(stats::na.omit(efc$neg_c_7)), 0, 1)
# create data frame for fitted model
mydf <- data.frame(y = as.factor(y),
sex = as.factor(efc$c161sex),
barthel = as.numeric(efc$barthtot))
# fit model
fit <- glm(y ~ sex * barthel, data = mydf, family = binomial(link = "logit"))

p <- sjp.int(fit, geom.colors = "gs")
ggplot(p$data.list[[1]], aes(x = x, y = y, linetype = grp)) + geom_line()

在此处输入图像描述

geom.colors使用-argument更改交互图的颜色,请参阅中的详细信息?sjp.grpfrq

于 2016-11-16T08:35:45.757 回答