首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用visreg和ggplot按组更改颜色

使用visreg和ggplot按组更改颜色
EN

Stack Overflow用户
提问于 2019-05-01 01:57:41
回答 1查看 829关注 0票数 0

在使用二进制预测器运行逻辑回归后,当我尝试使用visreg和ggplot绘制结果时,图例表明颜色已按组更改,但它们在图形中没有变化。

这是一个使用mtcar数据的问题的说明。

代码语言:javascript
复制
data(mtcars)
head(mtcars, 10)

仅有的两个二进制变量是vs和am,但需要将它们从数字转换为因子,才能使此图起作用。

代码语言:javascript
复制
mtcars$vs <- as.factor(mtcars$vs)
mtcars$am <- as.factor(mtcars$am)

运行模型。

代码语言:javascript
复制
logit1 <- glm(vs ~ am, data = mtcars, family = "binomial")

现在尝试使用visreg以及附加的ggplot函数来绘制结果,以自定义颜色和标签。

代码语言:javascript
复制
visreg(logit1, "am", scale = "response", gg = TRUE, rug = FALSE, by = "am", overlay=TRUE) + 
  scale_color_manual(values=c("#1b9e77", "#d95f02"), 
                     breaks=c(0, 1), 
                     labels=c("Zeros", "Ones"))

对于am =1组,线条和阴影区域都应该是橙色的(#d95f02),对于am =0组,线条和阴影区域都应该是绿色的(#1b9e77)。正如您所看到的,这不是代码产生的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-01 04:31:06

现在,visreg中还没有任何功能可以让你做这样的事情。您当然可以使用以下命令更改颜色,例如:

代码语言:javascript
复制
visreg(logit1, "am", scale = "response", gg = TRUE, rug = FALSE, by = "am", overlay=TRUE,
       fill.par=list(fill="#1b9e77"), line.par=list(col='#d95f02'))

但是您所描述的是构建一个完全不同的图:其中am的值被映射到不同的颜色。这将涉及构建绘图所基于的完全不同的aes对象。除非有一些我不知道的令人惊叹的ggplot2技巧,否则如果不从头开始重建情节,就没有办法做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55926415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档