R:着色矩形取决于数据帧的值

时间:2015-05-06 09:04:42

标签: r plot colors rect

首先解释我正在寻找什么,然后是一些可重复的简单代码。

在我的例子中,我有一个简单的情节,没有任何线条,只有10个矩形。 我的目标是为10个矩形着色为绿色,红色或黄色。 矩形的颜色来自预先安装的数据集randu的第x列的最后10个观察值。

  1. 如果值>> 0.7,则矩形应为红色
  2. 如果值>&gt; = 0.7且<= 0.5,则矩形应为绿色
  3. 如果值<&lt; 0.5,则矩形应为黄色
  4. 我有一个名为farben的向量,由3个十六进制代码组成(黄色红色沙子绿色)

    data(randu)
    farben<-c("#FFFF00", "#00FF00", "#FF0000")
    plot(c(0, 20), c(0, 40), type= "n", xlab = "", ylab = "")
    for (i in 0:10) {
    rect(i, 0, (i+1), 5, border = "black", col=farben)}
    

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题。代码不使用向量farben,但会根据您列出的条件直接指定颜色:

plot(c(0, 20), c(0, 40), type= "n", xlab = "", ylab = "")
for (i in 0:10) {
  randu_value <- tail(randu[, "x"], 11)[i+1]

  if(randu_value > 0.7) color <- "#FF0000" 
  if(randu_value <= 0.7 & randu_value >= 0.5) color <-  "#00FF00"
  if(randu_value < 0.5) color <- "#FFFF00"

  rect(i, 0, (i+1), 5, border = "black", col=color)
}