更改条形图中特定条形的颜色 - 取决于两个因素

时间:2013-01-10 23:24:42

标签: r plot bar-chart

我想做类似的事情,但有点复杂。

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的各种组合无济于事。

1 个答案:

答案 0 :(得分:3)

只需替换cols中的相应值即可。这可以通过[<-轻松完成,或者您可以使用replace这是同一件事的包装

假设您使用alpha = 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