使用 visreg 和 ggplot 按组更改颜色
Change Color by Group with visreg and ggplot
在 运行 使用二元预测变量进行逻辑回归之后,当我尝试使用 visreg 和 ggplot 绘制结果时,图例表明颜色已按组更改,但它们在图中没有更改.
这里是使用 mtcars 数据的问题说明。
data(mtcars)
head(mtcars, 10)
仅有的两个二元变量是 vs 和 am,但它们需要从数值因子转换为该图才能起作用。
mtcars$vs <- as.factor(mtcars$vs)
mtcars$am <- as.factor(mtcars$am)
运行 模型。
logit1 <- glm(vs ~ am, data = mtcars, family = "binomial")
现在尝试使用 visreg 和其他 ggplot 函数绘制结果以自定义颜色和标签。
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)。如您所见,这不是代码产生的结果。
visreg
中没有任何功能可让您立即执行此类操作。您当然可以更改颜色,例如:
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
技巧,否则如果不从头开始重建情节就无法做到这一点。
在 运行 使用二元预测变量进行逻辑回归之后,当我尝试使用 visreg 和 ggplot 绘制结果时,图例表明颜色已按组更改,但它们在图中没有更改.
这里是使用 mtcars 数据的问题说明。
data(mtcars)
head(mtcars, 10)
仅有的两个二元变量是 vs 和 am,但它们需要从数值因子转换为该图才能起作用。
mtcars$vs <- as.factor(mtcars$vs)
mtcars$am <- as.factor(mtcars$am)
运行 模型。
logit1 <- glm(vs ~ am, data = mtcars, family = "binomial")
现在尝试使用 visreg 和其他 ggplot 函数绘制结果以自定义颜色和标签。
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)。如您所见,这不是代码产生的结果。
visreg
中没有任何功能可让您立即执行此类操作。您当然可以更改颜色,例如:
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
技巧,否则如果不从头开始重建情节就无法做到这一点。