2014-01-14 82 views
1

我想得到一個結合觀察密度和cdf的圖。使用ggplot2繪製一個組合圖的密度和累積密度函數

通常的問題是,兩者的尺度是不一樣的。如何解決這個問題,即使用兩個比例尺,或者可以重新調整其中一個數據系列(最好在ggplot內,因爲我想單獨計算和顯示數據)。

這裏是到目前爲止的代碼:

>dput(tmp) 產生

structure(list(drivenkm = c(8, 11, 21, 4, 594, 179, 19, 7, 10, 36)), .Names = "drivenkm", class = c("data.table", "data.frame" ), row.names = c(NA, -10L), .internal.selfref = <pointer: 0x223cb78>)

然後我做

p = ggplot(data = tmp, aes(x = drivenkm)) + geom_histogram(aes(y = ..density..), alpha = 0.2, binwidth = 3) + stat_ecdf(aes(x = drivenkm)); print(p)

我得到的是以下幾點:

enter image description here

很明顯,秤是離開的。如何解決這個問題,直方圖和cdf都可以用合理的方式解釋?

謝謝!

回答

4

密度由binwidth縮放,面積總和爲1所以y您直方圖應由這也乘:

p = ggplot(data = tmp, aes(x = drivenkm)) + 
    geom_histogram(aes(y = 3*..density..), alpha = 0.2, binwidth = 3) + 
    stat_ecdf(aes(x = drivenkm)) 

enter image description here

+0

感謝您與乘法指針。我從某些SO片斷中拿出了..density ..,但從來不理解這個語法的真正含義,因此不敢去碰它。 –

+1

更好的ylab以及'3 *密度' –