【问题标题】:Colouring points of a plot in RR中绘图的着色点
【发布时间】:2017-04-18 14:36:59
【问题描述】:

我正在尝试使用逻辑参数为 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 的点着色?

【问题讨论】:

  • color 可以采用向量,例如col = ifelse(condition1 & condition2, 'red','black')

标签: r plot


【解决方案1】:

正如@mr.joshuagordon 所说,colpoints 的其他参数可以采用向量。由于您没有提供数据,这里有一些东西:

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)

在这种情况下,factor(faculty) 起作用了,因为因子内部是从 1 开始计数的整数。您可以通过以下方式查看为每个数字设置的颜色:

palette()
# [1] "black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow" 
# [8] "gray"   

如果您想要不同的颜色,您可以在faculty 本身上使用条件(例如ifelse),或者您可以只定义调色板颜色(请参阅?palette)。

【讨论】:

  • 如果他只需要几种颜色,他可以简单地定义一个颜色向量:my_colors&lt;-c("grey80", "firebrick", "navyblue", "orange")并在绘图中调用它:col = my_colors[factor(df$faculty)]比调色板容易;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多