ggplot2中的geom_density与基础R中的密度之间的差异

时间:2013-08-10 13:38:04

标签: r ggplot2 kernel-density density-plot

我在R中有如下数据:

  bag_id location_type            event_ts
2     155        sorter 2012-01-02 17:06:05
3     305       arrival 2012-01-01 07:20:16
1     155      transfer 2012-01-02 15:57:54
4     692       arrival 2012-03-29 09:47:52
10    748      transfer 2012-01-08 17:26:02
11    748        sorter 2012-01-08 17:30:02
12    993       arrival 2012-01-23 08:58:54
13   1019       arrival 2012-01-09 07:17:02
14   1019        sorter 2012-01-09 07:33:15
15   1154      transfer 2012-01-12 21:07:50

其中class(event_ts)为POSIXct

我想在不同的时间找到每个位置的行李密度。

我使用了命令geom_density(ggplot2),我可以很好地绘制它。我想知道density(base)和这个命令之间是否有任何区别。我的意思是他们正在使用的方法或他们正在使用的默认带宽等有任何不同。

我需要在数据框中添加密度。如果我使用了函数density(base),我知道如何使用函数approxfun将这些值添加到我的数据框中,但我想知道当我使用geom_density(ggplot2)时它是否相同

1 个答案:

答案 0 :(得分:5)

快速浏览ggplot2 documentation for geom_density()表明它包含了stat_density()中的功能。第一个参数引用了来自基函数adjust的{​​{1}}参数。因此,对于您的直接问题 - 它们是基于相同的功能构建的,尽管使用的确切参数可能不同。您可以控制设置这些参数,但可能无法获得所需的灵活性。

使用density()的另一种方法是计算geom_density()之外的密度,然后用ggplot()绘制。例如:

geom_line()

在这里,它们提供了几乎相同的图表,但它们可能会因您的数据和设置而有很大差异。