3

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)する方法を知っていましたが、 を使用する場合も同じでしょうか。approxfungeom_density(ggplot2)

4

1 に答える 1

7

ggplot2 のドキュメントをざっと読んgeom_density()でみると、 の機能がラップされていることがわかりますstat_density()。そこの最初の引数adjustは、基本関数からのパラメーターを参照しますdensity()。したがって、あなたの直接の質問に-使用される正確なパラメーターは異なる場合がありますが、それらは同じ関数から構築されています。これらのパラメーターの設定をある程度制御できますが、必要な柔軟性を得ることができない場合があります。

を使用する代わりにgeom_density()、 の外側で必要な密度を計算し、 でggplot()プロットすることもできますgeom_line()。例えば:

library(ggplot2)
#100 random variables
x <- data.frame(x = rnorm(100))
#Calculate own density, set parameters as you desire
d <- density(x$x)
x2 <- data.frame(x = d$x, y = d$y)

#Using geom_density()
ggplot(x, aes(x)) + geom_density()
#Using home grown density
ggplot(x2, aes(x,y)) + geom_line(colour = "red")

ここでは、データと設定によって大きく異なる場合がありますが、ほぼ同じプロットが得られます。

于 2013-08-10T14:00:58.053 に答える