使用ggplot2在一个组合图中绘制密度和累积密度函数

时间:2014-01-14 09:08:14

标签: r ggplot2 cdf density-plot ecdf

我想得到一个结合观察密度和cdf的情节。

通常的问题是两者的规模都很偏远。如何解决这个问题,即使用两个比例,或者,重新调整其中一个数据系列(最好在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都能以合理的方式解释?

谢谢!

1 个答案:

答案 0 :(得分: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