2017-01-27 7 views
0

どのようにしてすべてのバーが1になり、その上に密度レイヤーを追加するヒストグラムを作成できますか?ggplot2 1つのプロット内のgeom_densityとgeom_histrogram

set.seed(1234) 
df <- data.frame(
    sex=factor(rep(c("F", "M"), each=200)), 
    weight=round(c(rnorm(200, mean=55, sd=5), 
       rnorm(200, mean=65, sd=5))) 
) 

は(から撮影:http://www.sthda.com/english/wiki/ggplot2-density-plot-quick-start-guide-r-software-and-data-visualization

ggplot(df, aes(x=weight, color=sex, fill=sex)) + 
geom_histogram(aes(y=..density..), alpha=0.5, 
       position="identity")+ 
geom_density(alpha=.2) 

が、私はaes(y=..scaled..)に​​3210を変更すると、私はエラーを取得します。

私は私の(大きな)のデータで、この例を使用する場合は密度が120 に上がるので、基本的にこの: [バー]異なるy軸とhttp://www.sthda.com/sthda/RDoc/figure/easy-ggplot2/ggplot2-histogram-multiple-groups3.png !。 (1つのタイプのすべてのバーが1になるように)

geom_smoothを統計的に使用することはできませんか?

答えて

0

y = ..density../sum(..density..)を使用してみてください:

set.seed(1234) 
df <- data.frame(
    sex=factor(rep(c("F", "M"), each=200)), 
    weight=round(c(rnorm(200, mean=55, sd=5), 
        rnorm(200, mean=65, sd=5))) 
) 

library(ggplot2) 

ggplot(df, aes(x=weight, color=sex, fill=sex)) + 
    geom_histogram(aes(y=..density../sum(..density..)), alpha=0.5, 
        position="identity")+ 
    geom_density(alpha=.2) 
+0

'geom_histogram(AES(Y = ..カウント../和(..カウント..))、アルファ= 0.5、= "同一性" 位置)'意志また働く。 –

関連する問題