通过 R 中的变量在散点图上着色点

Coloring points on scatterplot by Variable in R

我对葡萄酒的质量进行了逻辑回归(来自 UCI 数据库的数据集)。我试图用按质量(0=低,1=高)着色的点制作散点图并成功了,但颜色是黑色和白色。情节上的白点显然没有帮助,所以我希望能够 specify/change 颜色,但我尝试了很多东西都没有用。

代码: glm.fit=glm(wine$quality~., data=wine, 家庭=二项式)

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 中两个最重要的变量的图。我真的不在乎什么颜色,只要不是白色!!

正如 NColl 所建议的,ggplot2 软件包非常适合此用途。试试下面的代码,然后 learn more here.

library(ggplot2)

ggplot(data = glm.fit2, aes(x = sulphates, y = alcohol, color = quality)) + 
  geom_point()

这是一个简单的 R 基础解决方案。

假设您有一个结构与此类似的 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")

结果如下所示: