我对葡萄酒的质量进行了逻辑回归(来自UCI数据库的数据集)。我正在尝试用质量(0 =低,1 =高)上色的点制作散点图,并且成功了,但是颜色是黑白的。情节上的白点显然无济于事,所以我希望能够指定/更改颜色,但是我尝试了很多事情,但没有任何效果。
代码: glm.fit = glm(wine $ quality〜。,data = wine, family = binomial)
step(glm.fit)
glm.fit2=glm(wine$quality~volatile.acidity
+residual.sugar+free.sulfur.dioxide+
density+pH+sulphates+alcohol,
data=wine, family=binomial)
summary(glm.fit2)
plot(wine$sulphates, wine$alcohol,
xlab="sulphates", ylab="alcohol",
col=wine$quality)
legend("topright", col=1:2, pch=21,
legend=c("low quality","high quality"))
这是我得到的情节: scatterplot
这是来自glm的两个最重要变量的图。我不在乎什么颜色,只是不是白色!
答案 0 :(得分:0)
如NColl所建议的,ggplot2
软件包非常适合此用途。请尝试下面的代码,然后尝试learn more here。
library(ggplot2)
ggplot(data = glm.fit2, aes(x = sulphates, y = alcohol, color = quality)) +
geom_point()
答案 1 :(得分:0)
一个简单的R base解决方案是这个。
假设您在结构上与此相似的df,其中一个二进制变量仅包含0和1,另外两个变量:
df <- data.frame(
Var1 = c(sample(500, 100)),
Var2 = c(rnorm(500, 100)),
binaryVar = c(sample(0:1, 100, replace = T))
)
然后您可以使用ifelse
语句为二进制变量分配颜色,如下所示:
df$col <- ifelse(binaryVar==0, "red", "blue")
最后可以使用df$col
来定义散点图,以定义数据点的颜色:
plot(df$Var1, df$Var2, frame=F, col=df$col)
legend("topright",legend=c("Low quality", "High quality"),
pch=1, col=c("red","blue"), bg="grey")