如何解决更改geom_ribbon填充颜色
我有一个混合效果线性模型,我想使用sjplot软件包对其进行绘制。 我为每条规则线的CI添加了geom-ribbon图层,但是我无法弄清楚如何更改其填充颜色。理想情况下,我希望每个色带都与它的reg线颜色相同。
这是我的模型代码:
model <- lme(no_stickers_gave_stranger ~ s_negativeAff*parent_model,data = table4,random = ~1|ifam)
这是情节的代码:
plot_model(model = model,line.size = 0.71,type = "int",colors = sjplot_pal(palette = "metro"),axis.title = c("Negative Emotionality","Number of sticker shared with a stranger"),title = "Age 6 - LAB-TAB",legend.title = "Parent Model") +
scale_fill_sjplot(palette = "metro",discrete = T) +
geom_ribbon(aes(ymin = conf.low,ymax = conf.high),colour = NA,alpha = 0.25)
我能做的最好的是:
解决方法
无论出于何种原因,在colors=
中设置plot_model()
都不适合我。这里的方法是使用scale_color_sjplot()
或scale_color_manual(values=sjplot_pal())
设置填充值的方式来设置颜色值。
奇怪的是,这两种方法都可以工作(以匹配颜色并填充美学效果),但是会为您提供不同的实际颜色。我没有答案,但这是如何匹配颜色和填充。我正在使用vignettes on the sjplot site中的示例数据集。
library(sjPlot)
library(ggplot2)
data(efc)
fit <- lm(barthtot ~ c12hour + neg_c_7 + c161sex + c172code,data = efc)
cols <- sjplot_pal(palette = "metro")
p <- plot_model(fit,type = "pred",terms = c("c161sex","c12hour"))
p
只需添加scale_fill_sjplot()
函数即可更改单独填充:
p + scale_fill_sjplot()
添加scale_color_sjplot()
可以解决以下问题:
p + scale_fill_sjplot() + scale_color_sjplot()
奇怪的是,如果我们使用scale_*_manual()
函数并提供sjplot_pal()
作为values=
的参考,我们会得到不同的颜色,但至少它们确实匹配:
p + scale_fill_manual(values=cols) + scale_color_manual(values=cols)
在不了解sjPlot
软件包和plot_model()
的情况下,我猜颜色的差异与软件包的级别和颜色分配有关,与默认情况下ggplot2
的分配有所不同(可以按字母顺序排列,也可以基于levels()
(如果有因素的话)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。