0

これと似たようなことをしたかったのですが、もう少し複雑です。

棒グラフの特定の棒の色を変更する

ここに私のデータがあります:

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)

これはそれが作るものです:

チャート 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)

したがって、4 番目のバーもグレーになります。

ifelse のさまざまな組み合わせを使用してみましたが、役に立ちませんでした。

4

1 に答える 1

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)

ここに画像の説明を入力

于 2013-01-10T23:43:38.747 に答える