2013-01-10 59 views
0

我想做類似的事情,但稍微複雜一點。更改條形圖中特定條的顏色 - 取決於兩個因素

Change colours of particular bars in a bar chart

這裏是我的數據:

x <- c(3,-1.4,0.8,-0.3,-1.2,-2.5,1.5,-1.4) 
breaks <- c(-Inf, -1, 1, Inf) 
cols <- c("blue", "grey", "red")[findInterval(x, vec=breaks)] 
barplot(x, col = cols, horiz=T) 

所以這是它使:

chart http://www.diabolotricks.net/Rplot-test.jpg

我想要做的就是再使用的p值是什麼這種變化也會使不具統計意義的灰色條紋變色。

pval<- c(0.01,0.03,0.04,0.89,0.45,0.01,0.03,0.02) 

所以第四個欄也是灰色的。

我試過使用ifelse的各種組合無濟於事。

回答

3

只需更換cols中的相應值即可。這與[<-輕鬆完成或者你可以使用replace這是同樣的事情

假設你正在使用阿爾法的包裝= 0.05

myalpha <- 0.05 
cols[pval > myalpha] <- 'grey' # could also be cols <- replace(cols, pvals > 0.05, 'grey') 
barplot(x, col = cols, horiz=T) 

enter image description here

+1

應該有廢棄礦井按鈕/ upvote你的。 –