不同颜色的In R打印线高于阈值限制

不同颜色的In R打印线高于阈值限制,r,colors,line-plot,R,Colors,Line Plot,我在R中有以下数据和代码: x <- runif(1000, -9.99, 9.99) mx <- mean(x) stdevs_3 <- mx + c(-3, +3) * sd(x/5) # Statndard Deviation 3-sigma 我想做的是: 在绘图上的任何位置,当线条超过3西格玛阈值(蓝线)时,无论其上方或下方,线条的颜色都应与黑色不同。 我尝试过这个,但没有成功: plot(x, type="l", col= ifelse(x < stdevs

我在R中有以下数据和代码:

x <- runif(1000, -9.99, 9.99)
mx <- mean(x)
stdevs_3 <- mx + c(-3, +3) * sd(x/5) # Statndard Deviation 3-sigma

我想做的是:

在绘图上的任何位置,当线条超过3西格玛阈值(蓝线)时,无论其上方或下方,线条的颜色都应与黑色不同。

我尝试过这个,但没有成功:

plot(x, type="l", col= ifelse(x < stdevs_3[[1]],"red", "black"))
abline(h=mx, col="red", lwd=2)
abline(h=stdevs_3, lwd=2, col="blue")
绘图(x,type=“l”,col=ifelse(x

还有其他方法吗?

这是要求的,但对我来说似乎没有意义,因为x被5任意除法:

png( )
plot(NA, xlim=c(0,length(x)), ylim=range(x),  main="Plot of Data", ylab="X", xlab="", )
 stdevs_3 <- mx + c(-3, +3) * sd(x/5) 
 abline(h=mx, col="red", lwd=2)
 abline(h=stdevs_3, lwd=2, col="blue")
 segments( 0:999, head(x,-1), 1:1000, tail(x,-1) , col=c("black", "red")[ 
                                       1+(abs(tail(x,-1)) > mx+3*sd(x/5))] )
 dev.off()
png()
绘图(NA,xlim=c(0,长度(x)),ylim=range(x),main=“数据绘图”,ylab=“x”,xlab=”“,)
标准开发人员(3 mx+3*sd(x/5))]
发展主任()

这在统计上似乎不一致。这个表达来自哪里
sd(x/5)
我自己动手做的,我知道这并不好,但在随机生成的数据上,在绘图上显示线条。我的数据是保密的,因为我使用的是sd(x),与上面显示的数据不同。很抱歉搞混了。实际上,x被3除只是为了在这张图片中加入3条偏差线。我有其他机密数据,不能在任何公共网站上显示。很抱歉造成这种混乱。但是,嘿!,很好的尝试。尽管很明显,即使在3西格玛范围内,这条线也有红色。我所需要的是,只有在3西格玛线(顶部或底部)之外,即Y轴上的+3点和-3点之外,才有任何红色的线。我无法说出您对如何给“线”着色的期望。目前,通过将端点置于外部对跨越这些边界的线段进行着色,但线段的颜色可能会延伸到中间带。因为我没有得到任何关于这是不是想要的声明,也没有投票或打勾,所以我仍然不确定这个问题是否得到了回答。我有了一个更好的主意。。在dataframe中,当数据点与3-sigma水平(以上和以下)进行比较时,我将计算异常值(是或否),并根据是否存在异常值设置颜色参数。
png( )
plot(NA, xlim=c(0,length(x)), ylim=range(x),  main="Plot of Data", ylab="X", xlab="", )
 stdevs_3 <- mx + c(-3, +3) * sd(x/5) 
 abline(h=mx, col="red", lwd=2)
 abline(h=stdevs_3, lwd=2, col="blue")
 segments( 0:999, head(x,-1), 1:1000, tail(x,-1) , col=c("black", "red")[ 
                                       1+(abs(tail(x,-1)) > mx+3*sd(x/5))] )
 dev.off()