如何在R中对绘制点进行颜色编码

时间:2014-07-16 16:18:37

标签: r plot

我有一个简单的data.frame如下:

    status   age   score
    0        34    90
    0        56    70
    1        44    69 
    0        53    88
    1        54    44

然后我根据年龄绘制得分

   plot(age, score)

我的问题是如何对与其状态相对应的点进行颜色编码?

3 个答案:

答案 0 :(得分:2)

DF <- data.frame(
  status=c(0,0,1,0,1),
  age=c(34,56,44,53,54),
  score=c(90,70,69,88,44)
)
##
with(DF, plot(age,score,col=(1+status)))

您需要将1添加到状态向量(或任何其他常量&gt; 0),因为使用col=0进行绘图不会产生一个点。 enter image description here

或者添加标签,

with(
  DF,
  plot(
    x=age,y=score,pch=20,
    col=(1+status)
  )
)
legend(
  "top",
  legend=paste0(
    "Status: ",
    unique(DF$status)
  ),
  pch=20,
  col=(1+unique(DF$status)),
  bty="n",
  horiz=TRUE
)

enter image description here

答案 1 :(得分:2)

强制性ggplot解决方案:

gg <- ggplot(dat, aes(x=age, y=score, color=factor(status)))
gg <- gg + geom_point(size=3)
gg <- gg + theme_bw()
gg

enter image description here

答案 2 :(得分:0)

我是基地策划的忠实粉丝。我只想使用ifelse()创建一个颜色向量,然后将其提供给plot()。

此方法允许您使用颜色映射进行最大程度的自定义。

status <- c(0,0,1,0,1)
colvec <- ifelse( status == 1, "red", "blue")
age <- c(seq(1,length.out=5, by=1))
score <- c(90, 70, 69, 88, 44)

plot(age, score, col=colvec, pch=19)