我有一个简单的data.frame
如下:
status age score
0 34 90
0 56 70
1 44 69
0 53 88
1 54 44
然后我根据年龄绘制得分
plot(age, score)
我的问题是如何对与其状态相对应的点进行颜色编码?
答案 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
进行绘图不会产生一个点。
或者添加标签,
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
)
答案 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
答案 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)