sjPlot - 将图表线条颜色改为黑白色

3
我正在使用sjPlot的plot_model()绘制回归模型。我想将线条颜色从sjPlot主题(红色和蓝色线条)更改为黑白色调或灰度。然而,当我使用set_theme(theme_bw())时,图形外观没有改变(根据我在输入函数时看到的下拉菜单,theme_bw来自ggplot2)。
当我选择可用的sjPlot主题之一(theme_538theme_blanktheme_sjplottheme_sjplot2)时,图形外观会发生变化,它们都呈现出红色和蓝色的线条,但是更改了绘图背景,因此我认为我使用的函数是正确的。
我如何为我的绘图使用黑白或灰度主题,或手动设置线条颜色为黑白色调?
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

根据我在网上找到的sjPlot资源,应该有比我看到的更多的sjPlot主题可用,这很奇怪。此外,我读到set_theme()函数应该与ggplot2主题一起使用,但这似乎在这里并不是这样。是否有任何想法是哪里出了问题?也许我忽略了一些非常简单的东西?
编辑:我正在使用R版本3.5.0和Rstudio版本1.1.383 谢谢!
1个回答

1
主题选项可以改变网格和轴标签等外观,但不会改变几何图形(如点或线)的外观。因此,您可以在plot_model()中使用colors参数。这里有一些示例在这个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


非常感谢您的超快速回答。 - MKS.bln
它确实将我的线条分别设置为灰度或黑白。但是,在黑白模式下,它没有自动区分线型(我有两条不同的线,原来是蓝色和红色),例如,一条实线,一条虚线,正如你在vignettes中指出的那样。我尝试向plot_model()添加了一个linetype = c(1,2)参数,但这并没有起作用。是否有一种方法可以手动调整线型? - MKS.bln
我添加了一个可工作的示例。我不确定您遇到了什么问题,也许您可以提交问题?如果您想要更改线条类型 - Daniel
我只需要使用"colors="bw""参数就可以将主题颜色转换为黑白。 - Aryo
colors="bw"对我来说是有效的,但它会覆盖我的漂亮的图例标题。有什么建议吗? - Dustin
使用了sjlabelled::set_label(),它有效果! - Dustin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接