0

代替タイトル: ヒストグラムの y 軸を 0 ~ 1 の範囲にのみスケーリングするにはどうすればよいですか?

恐ろしい質問のタイトルなので、例を示します。ここのデータは、範囲が y 軸のデータ範囲とほぼ等しくなるように設定されています...約 0 から 3.5 です。

library(ggplot2)
x<-runif(100)*200
y<-runif(100)*3
xy<-data.frame(x,y)

p <- ggplot(xy) + theme_bw()
p + geom_point(aes(x, y)) + 
  geom_histogram(aes(x), alpha=1/10)

ヒストグラムの「y範囲」を最大1にスケーリングしたい.この回答の最初の部分は、次のような例を示しています:


あなたは近かったが、..count../sum(..count..) ではなく (..density..)*binwidth を使用する必要がある

# Your data:
all <- data.frame(fill=rep(LETTERS[1:4],c(26,24,23,29)),
                  Events=c(1,1,3,1,1,6,2,1,1,2,1,1,1,1,5,1,2,2,1,1,1,1,2,1,2,1,2,3,1,3,2,5,1,1,1,2,1,1,1,1,1,1,1,1,1,4,3,3,5,3,1,2,2,3,3,9,8,1,1,2,2,1,2,39,43,194,129,186,1,2,7,4,1,12,3,2,3,8,20,5,1,4,9,51,12,7,6,7,7,9,17,18,8,7,6,10,27,11,21,89,47,1))

bw <- 20 # set the binwidth
# plot
p1<-ggplot(all,aes(x=Events, fill=fill)) + 
  geom_histogram(aes(y=(..density..)*bw), position='dodge', binwidth=bw)
p1

しかし、変数「bw」がないというエラーで失敗し、私にはうまくいきません:

bw <- 30
p <- ggplot(xy) + theme_bw()
p + geom_point(aes(x, y)) + 
  geom_histogram(aes(x=x, y=..density.. * bw), alpha=1/10)

Error in eval(expr, envir, enclos) : object 'bw' not found
4

1 に答える 1

0

よかった、必要な表記法を見つけた...

y=..ncount.. 

From: R ggplot のヒストグラムの y 軸を比率に正規化する

于 2013-10-06T04:37:39.163 に答える