写真のようなヒストグラムがあります。 2つの領域のバーをそれぞれ赤と緑に色付けします。つまり、0から左側の最初の黒い境界線までのバーを赤に色付けし、2番目の領域のバーを緑に色付けする必要があります。これはRで実行できますか?ヒストグラムを取得するために使用されるコードは
hist(pr4$x[pr4$x[,1]>-2,1],breaks=100)
これを行う最良の方法は、hist
に計算を許可してから、hist
を(再び)使用して実際のプロットを実行することです。次に例を示します。
set.seed(1)
x <- rnorm(1000)
h <- hist(rnorm(1000), breaks=50, plot=FALSE)
cuts <- cut(h$breaks, c(-Inf,-.5,1.75,Inf))
plot(h, col=cuts)
最後の行の.5と1.75は、異なる色にしたいしきい値です。
注:私の元の回答ではbarplot
を使用していましたが、その戦略により、軸の操作が困難になります。
結果は次のとおりです。
コメントで述べた方法は次のとおりです。
いくつかのテストデータを作成します(質問でこれを行う必要があります!)
test = runif(10000,-2,0)
rを取得してヒストグラムを計算しますが、プロットはしません。
h = hist(test, breaks=100,plot=FALSE)
ヒストグラムは3つの部分に分かれています。
ccat = cut(h$breaks, c(-Inf, -0.6, -0.4, Inf))
このパレットでプロットし、因子を数値に暗黙的に変換すると、パレットにインデックスが付けられます。
plot(h, col=c("white","green","red")[ccat])
ggplot2
ソリューションも利用できます。
これを試して:
hist(pr4$x[pr4$x[,1]>-2,1],breaks=100, col = c(rep("white", 69), rep("green", 15), rep("red", 16)))
ヒストグラム内のブレークの数に応じて、各色の繰り返し数を調整する必要がある場合があります。