私は非常に簡単な質問があり、壁に頭をぶつけます。
Y = .. density ..を使用してバーの面積を1にする代わりに、ヒストグラムのy軸をスケーリングして、各ビンが占める割合(0〜1)を反映させます。または、y = .. ncount ..のように、最高のバーを1にします。
私の入力は、次のような形式の名前と値のリストです。
name value
A 0.0000354
B 0.00768
C 0.00309
D 0.000123
私の失敗した試みの1つ:
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)
助けてくれてありがとう。
ご了承ください ..ncount..
は最大1.0に再スケーリングし、..count..
は、スケーリングされていないビンカウントです。
ggplot(mydataframe, aes(x=value)) +
geom_histogram(aes(y=..count../sum(..count..)))
与えるもの:
Ggplot2 0.9では、percent_format()
を含む多くのフォーマッタ関数がscalesパッケージに移動されました。
library(ggplot2)
library(scales)
mydataframe <- data.frame(name = c("A", "B", "C", "D"),
value = c(0.0000354, 0.00768, 0.00309, 0.000123))
ggplot(mydataframe) +
geom_histogram(aes(x = value, y = ..ncount..)) +
scale_y_continuous(labels = percent_format())
最新かつ最高のggplot2バージョン3.0.0の時点で、形式が変更されました。これで、_..
_をいじるのではなく、stat()
でy
値をラップできます。
_ggplot(mydataframe, aes(x = value)) +
geom_histogram(aes(y = stat(count / sum(count))))
_