1

それぞれのタイムスタンプを使用して、現象の観測を不規則に測定しました。

2013-01-03 00:04:23
2013-01-03 00:02:04
2013-01-02 23:45:16
2013-01-02 23:35:16
2013-01-02 23:31:56
2013-01-02 23:31:30
2013-01-02 23:29:18
2013-01-02 23:28:43
...

ここで、これらの点を x 軸にプロットし、カーネル密度関数を適用して、さまざまな帯域幅を使用して時間密度を視覚的に調査できるようにします。以下の例では x 軸のラベル付けを使用していませんが、このような結果になるはずです。たとえば、特定の日 (1 月 1 日、1 月 5 日など) のラベルを付けたいと思います。

カーネル密度プロット

ただし、上記のように、測定ポイント自体がプロットに表示されることが重要です。

4

2 に答える 2

2
#dput
df <- structure(list(V1 = structure(c(2L, 2L, 1L, 3L, 1L, 4L, 5L, 4L), .Label = c("2013-01-02", "2013-01-03", "2013-01-04", "2013-01-05", "2013-01-11"), class = "factor"), V2 = structure(c(1L, 3L, 8L,  4L, 7L, 6L, 5L, 2L), .Label = c(" 04:04:23", " 06:28:43", " 10:02:04", " 11:35:16", " 14:29:18", " 17:31:30", " 23:31:56", " 23:45:16"), class = "factor")), .Names = c("V1", "V2"), class = "data.frame", row.names = c(NA, -8L))

使用ggplotすると、プロットをきめ細かく制御できます。測定値と密度自体に異なるレイヤーを使用します。

df$tcol<- as.POSIXct(paste(df$dte, df$timestmp), format= "%Y-%m-%d %H:%M:%S")
library(ggplot2)
measurements <- geom_point(aes(x=tcol, y=0), shape=15, color='blue', size=5)
kde <- geom_density(aes(x=tcol), bw="nrd0")
ggplot(df) + measurements +  kde

につながる ここに画像の説明を入力

ここで、x 軸のラベルをさらに調整したい場合 (それぞれ別の日をマークしたいので、scalesパッケージを使用できます。使用しますscale_x_dateが、「日付」のみを取ります)

library(scales)
df$tcol <- as.Date(df$tcol, format= "%Y-%m-%d %H:%M:%S")
xlabel <- scale_x_date(labels=date_format("%m-%d"), breaks="1 day")
ggplot(df) + xlabel + measurements +  kde

これは与える: ここに画像の説明を入力

時間が丸くなっているように見えることに注意してください。

うまくいけば、これはあなたが前進するのに役立ちます.

于 2013-05-24T19:32:15.697 に答える
0

値を POSIXct に変換し、その数値 (つまり、UNIX 時間の秒) に変換してから、カーネル密度関数を適用します。zタイムスタンプのベクトルである場合:

z2 <- as.POSIXct(z, "%Y-%m-%d %H:%M:%S", tz="GMT")
plot(density(as.numeric(z2)))

でラベル付けされた x 軸を追加するのは比較的簡単axisです。

于 2013-05-24T09:17:59.090 に答える