sjPlot-将绘图线颜色更改为黑色/白色

时间:2018-10-04 08:59:34

标签: r ggplot2 colors themes sjplot

我正在用sjPlot的plot_model()绘制回归模型。我想将线条颜色从sjPlot主题(红线和蓝线)更改为黑白或灰度。但是,当我使用set_theme(theme_bw())时,绘图外观不会改变(theme_bw来自ggplot2,根据我在键入函数时看到的下拉菜单显示)。

但是,当我选择可用的sjPlot主题之一(theme_538theme_blanktheme_sjplottheme_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 谢谢!!

1 个答案:

答案 0 :(得分:0)

主题选项更改网格和轴标签等的外观,但更改几何图形(如点或线)的外观,而。因此,您可以使用colors中的plot_model()参数。有一些示例in this vignettes。我想适合您的解决方案是:

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")

enter image description here

plot_model(fit, type = "pred", terms = c("neg_c_7", "c172code", "c161sex"), colors = "gs")

enter image description here