首页 > 解决方案 > 在R中的图中用给定值着色一条线

问题描述

推进此处给出的答案,其中针对散点图提出了相同的问题,是否可以绘制一条颜色基于 y 值的线?

示例数据

x = 1:11
y = abs(6 - x)
plot(1:22,c(y,y), col = ifelse(c(y,y) < 2.5, 2, 3), pch = 16)

会给分散

然而,尝试

plot(1:22,c(y,y), col = ifelse(c(y,y) < 2.5, 2, 3), type = "l")

坏的

或在上面y<2.5给出的行

在此处输入图像描述

而不是我所追求的解决方案,即

在此处输入图像描述

有什么简单的方法可以做到这一点吗?这只是一个简单的案例,我无法手动将每个部分添加到我的实际数据中。谢谢!

标签: r

解决方案


尝试这个

x = 1:11
y = abs(6 - x)
y = c(y,y)
plot(1:22,y, col = ifelse(c(y,y) < 2.5, 2, 3), pch = 16)



for(i in 1:21){
  if(y[i]>1.9&& y[i+1]>1.9){
    linecolour="green"
  } else {
    linecolour="red"
  }
  lines(c((1:22)[i],(1:22)[i+1]),c(y[i],y[i+1]),col=linecolour)
}

在此处输入图像描述


推荐阅读