R中图的着色点

R中图的着色点,r,plot,R,Plot,我试图用逻辑参数给R中散点图的某些点上色。我的数据是性别M/F和教员a/M/S/E的函数。我想给每个教员上色,比如说绿色、红色、蓝色、黑色,然后让女性只显示轮廓,中间是白色 plot(year, logit.prop, type="n", xlab="Year of graduation", ylab="Logit proportion of survivors", ylim=c(-1,3)) points(year[faculty=="M"], logit.prop[faculty=="M"]

我试图用逻辑参数给R中散点图的某些点上色。我的数据是性别M/F和教员a/M/S/E的函数。我想给每个教员上色,比如说绿色、红色、蓝色、黑色,然后让女性只显示轮廓,中间是白色

plot(year, logit.prop, type="n", xlab="Year of graduation", ylab="Logit proportion of survivors", ylim=c(-1,3))
points(year[faculty=="M"], logit.prop[faculty=="M"], pch=21, 
points(year[faculty=="A"], logit.prop[faculty=="A"], pch=21, bg="red", col="red")

这是我目前使用的代码的一部分,有没有办法告诉R到颜色点,其中x轴的值是女性和a

正如@mr.joshuagordon所说,col和其他指向点的参数可以采用向量。由于您没有提供数据,以下是一些:

df <- data.frame(x = rep(1:4, each = 2), y = rep(1:2, times = 4), faculty = rep(c("A", "M", "S", "E"), each = 2), gender = rep(c("M","F"), times = 4))
df
#   x y faculty gender
# 1 1 1       A      M
# 2 1 2       A      F
# 3 2 1       M      M
# 4 2 2       M      F
# 5 3 1       S      M
# 6 3 2       S      F
# 7 4 1       E      M
# 8 4 2       E      F
plot(y ~ x, data = df, pch = ifelse(gender == "M", 16, 21), col = factor(faculty))
text(y + 0.5 ~ x, data = df, labels = faculty)

如果您想要不同的颜色,您可以使用ifelse等条件,也可以只定义调色板颜色。请参见。

颜色可以采用向量,例如col=ifelsecondition1&condition2,“红色”和“黑色”。如果他只需要一些颜色,他可以简单地定义一个颜色向量:my_colors
palette()
# [1] "black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow" 
# [8] "gray"