使用R ifelse()定义绘图中的颜色

时间:2014-01-13 09:29:39

标签: r

我需要帮助使用下面的代码在我的图形图中定义颜色方案。我想要两个值为x <= -2 |的元素y&gt; 2显示为红色,其他显示为黑色。

col = ifelse( x <= -2 | y > 2, "red", "black")

逻辑OR部分存在问题,这会导致错误。解决问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

set.seed(42)
x <- runif(100,-4,0)
y <- rnorm(100,mean=2)

plot(x,y,col=c("black", "red")[(x <= -2 | y > 2) + 1])

enter image description here

在您的具体情况下,这也有效,因为1代表黑色,2代表红色代表plot中的颜色:

plot(x,y,col=(x <= -2 | y > 2) + 1)

但是,您的解决方案对我也有用:

col = ifelse( x <= -2 | y > 2, "red", "black")
plot(x,y,col=col)