R ggplot のヒストグラムの y 軸を正規化して割合にする 質問する

R ggplot のヒストグラムの y 軸を正規化して割合にする 質問する

非常に単純な疑問があり、頭を悩ませています。

y=..density.. を使用する場合のようにバーの面積の合計が 1 になるのではなく、また y=..ncount.. を使用する場合のように最も高いバーが 1 になるのではなく、ヒストグラムの y 軸を各ビンが占める割合 (0 から 1) を反映するようにスケールしたいと思います。

入力は名前と値のリストで、次のようにフォーマットされています。

name    value
A   0.0000354
B   0.00768
C   0.00309
D   0.000123

私の失敗した試みの一つ:

library(ggplot2)
mydataframe < read.delim(mydata)
ggplot(mydataframe, aes(x = value)) +
geom_histogram(aes(x=value,y=..density..))

これにより、面積が 1 で高さが 2000 と 1000 のヒストグラムが生成されます。

試す

y=..ncount.. は、最高バーが 1.0 で、残りがそれにスケールされたヒストグラムを生成します。

試す

しかし、最初のバーの高さを 0.5 にし、他の 2 つのバーの高さを 0.25 にしたいと思います。

R は、scale_y_continuous のこれらの使用法も認識しません。

scale_y_continuous(formatter="percent")
scale_y_continuous(labels = percent)
scale_y_continuous(expand=c(1/(nrow(mydataframe)-1),0)

ご協力いただければ幸いです。

ベストアンサー1

..ncount..は最大 1.0 に再スケールされますが、..count..はスケールされていないビン カウントであることに注意してください。

ggplot(mydataframe, aes(x=value)) +
  geom_histogram(aes(y=..count../sum(..count..)))

つまり、次のようになります。

ここに画像の説明を入力してください

おすすめ記事