我想做类似的事情,但有点复杂。
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的各种组合无济于事。
答案 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)