Я строю регрессионную модель с помощью sjPlot plot_model(). Я хочу изменить цвета своих линий с темы sjPlot (красные и синие линии) на черно-белые или оттенки серого. Однако, когда я использую set_theme(theme_bw()), внешний вид графика не меняется (theme_bw взят из ggplot2, согласно раскрывающемуся списку, который я вижу при вводе функции).
Однако внешний вид графика меняется, когда я выбираю одну из доступных тем sjPlot (theme_538, theme_blank, theme_sjplot и theme_sjplot2), которые все отображают линии красным и синим цветом, но меняют фон графика, поэтому я думаю, что я правильно понял функцию.
Как я могу использовать тему bw или gs или вручную установить черно-белые цвета линий для моего графика?
library(ggplot2)
library(sjPlot)
library(sjmisc)
#set_theme(theme_bw()) # this does not change the plot appearance
set_theme(theme_538()) # this does change the plot background appearance
M <- glm(DV ~ IV1 + IV2 + IV3 + IV1*IV2*IV3, data = data5, family = quasibinomial("logit"))
p <- plot_model(M, type = "pred", terms = c("IV1", "IV2", "IV3 [-1,0,1]"), theme = theme_get())
p
ps: согласно ресурсам sjPlot, которые я нахожу в Интернете, должно быть больше тем sjPlot, чем я вижу. Это странно. Более того, я читал, что функция set_theme() должна работать с темами ggplot2, что, похоже, здесь не так. Есть идеи, где ошибка? Может быть, я наблюдаю за чем-то очень простым?
изменить: я использую R версии 3.5.0 и Rstudio версии 1.1.383 Спасибо!!





Параметры темы изменяют внешний вид сеток, меток осей и т. д., Но нет геометрии (например, точек или линий). Поэтому вы можете использовать аргумент colors в plot_model(). Есть несколько примеров в этих виньетках. Думаю, решение для вас было бы:
plot_model(M, type = "pred", terms = c("IV1", "IV2", "IV3 [-1,0,1]"), colors = "gs")
или
plot_model(M, type = "pred", terms = c("IV1", "IV2", "IV3 [-1,0,1]"), colors = "bw")
library(sjPlot)
data(efc)
fit <- lm(barthtot ~ c12hour + neg_c_7 * c161sex * c172code, data = efc)
plot_model(fit, type = "pred", terms = c("neg_c_7", "c172code", "c161sex"), colors = "bw")
plot_model(fit, type = "pred", terms = c("neg_c_7", "c172code", "c161sex"), colors = "gs")
Он установил мои линии в оттенки серого или ч / б, соответственно. Однако в ч / б он автоматически не различал типы линий (у меня есть две разные линии, изначально синяя и красная), например, с одной сплошной, одной пунктирной линией, как вы указываете в виньетках. Я попытался добавить аргумент linetype = c(1,2) к plot_model(), но это не помогло. Есть ли способ вручную настроить тип линий?
Я добавил рабочий пример. Не уверен, что именно у вас не работает, может можно подать вопрос? Если вы хотите изменить типы линий
Параметр colors = "bw" - это все, что мне нужно для преобразования цвета темы в черно-белый.
Спасибо за супербыстрый ответ.