use*_*698 2 plot r colors scatter-plot
我有数据包装成两列m(x,y).我想制作一个三种不同颜色的散点图,它反映了y的值.所以对于x的所有值,y1低于y1(比如说1)我希望颜色为1,对于y1和y2之间的x,y的值我希望颜色为2,最后对于高于y2的y值,我希望有第三种颜色.我怎么能在R中实现这个目标?
谢谢
您可以使用cut,然后使用您的颜色矢量创建颜色级别plot.
set.seed(1104)
x = rnorm(100)
y = rnorm(100)
colors = c("blue", "red", "green")
breaks = c(y1=0, y2=1)
# first plot (given breaks values)
y.col2 = as.character(cut(y, breaks=c(-Inf, breaks, Inf), labels=colors))
plot(x, y, col=y.col2, pch=19)
# second plot (given number of breaks)
y.col = as.character(cut(y, breaks=3, labels=colors))
plot(x, y, col=y.col, pch=19)
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用嵌套ifelse来定义颜色。
使用@Ricardo 数据:
dat <- data.frame(x = rnorm(100),y = rnorm(100))
with(dat,
plot(y~x, col=ifelse(y<y1,'red',
ifelse(y>y2,'blue','green')), pch=19))
Run Code Online (Sandbox Code Playgroud)
