2016-03-02 90 views
0

我有R中的下列數據和代碼:在具有不同顏色的上述閾值的限制 - [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個標準偏差和平均線)中的R:

plot(x, t="l", main="Plot of Data", ylab="X", xlab="") 
abline(h=mx, col="red", lwd=2) 
abline(h=stdevs_3, lwd=2, col="blue") 

Line Plot with mean and SD lines

我想要做什麼:

圖中的任何地方,無論何時線路穿越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") 

有沒有其他辦法?

+0

這似乎統計學語無倫次。這個表達從何而來? 'sd(x/5)' –

+0

我完成了它,我知道這是不好的,但是要在隨機生成的數據上顯示陰謀。我有數據是保密的,因爲我使用了sd(x),而不是像上面顯示的那樣。對困惑感到抱歉。 –

回答

0

這是要求什麼,但因爲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() 

enter image description here

+0

實際上,x被3除以便將3偏差線帶入這張圖片。我有其他數據是保密的,不能在任何公共網站上顯示。對於這種困惑感到抱歉。但是,嘿!,不錯的嘗試。儘管在3個西格瑪邊界內線條顯然是紅色的。所有我需要的,只有當它在3個西格瑪線(頂部或底部)之外時,即在+3之外和在Y軸上-3個點之外的任何紅色線。 –

+0

我無法分辨您的期望是如何爲「線條」着色。目前,它正在着色通過使端點位於外部而跨越這些邊界的片段,但片段的顏色可能會延伸到中間片段。由於我沒有得到任何聲明,表明這個問題是需要的,也沒有得到滿意答覆,所以我仍然不確定問題是否得到解答。 –

+1

我有一個更好的主意。在數據框中,當數據點與3-sigma級別(上面和下面)進行比較時,我將計算異常值(是或否),並根據異常值設置顏色參數。 –

相關問題