通过 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")
结果如下所示:
我对葡萄酒的质量进行了逻辑回归(来自 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")
结果如下所示: