2012-02-19 5 views
0

グラフにグラフでRを使用しようとしているデータテーブルがあります。この表には、日付ごとにソートされた、日付ごとに発生する特定のイベントのカウントが含まれています(対応する月の最初の日までにグループ分けされています)。ラティスに問題があり、時系列グラフとしてイベントをプロットしています

> data 
     Unit  Date Count 
1 Unit14 2005-01-01  1 
2 Unit19 2005-01-01  0 
3 Unit13 2006-01-01  8 
4 Unit17 2006-01-01  0 
5 Unit13 2007-01-01  0 
6 Unit14 2007-01-01  4 
7 Unit19 2007-01-01  1 
8 Unit5 2007-01-01  0 
9 Unit9 2007-01-01  1 
10 Unit13 2008-01-01  0 
... 

格子状のプロットにxyplotを使用していますが、発生したポイントをプロットするだけで問題なく動作します。各イベントをx軸とDate、Y軸をDountとしてプロットするUnit単位の画像のグリッドを取得します。

> xyplot(Count~Date | Unit, data) 

しかし、私はそれがイベントの順序は、イベントの時間であったことを理解していない折れ線グラフとしてプロットしてみて、ラインが自身に戻って倍増します。言い換えれば、線はグラフの中央で始まり、点の間に「星」のようなパターンを作ります。

> xyplot(Count~Date | Unit, data, col="blue",type="l") 

これを時系列としてプロットするにはどうすればよいですか?

私はRでグラフを描くのはまだかなり新しいので、どんな助けでも大歓迎です。ありがとうございました。

答えて

1

点は、表示されている順番に描画され、結合されます( )。 プロットする前にdata.frame をソートすると、そのアーティファクトは消えます。

# Sample data 
n <- 20 
k <- 3 
d <- data.frame(
    Unit = rep(LETTERS[1:k], each=n), 
    Date = rep(sample(seq.Date(Sys.Date(), length=n, by=1)), k), 
    Count = rpois(k*n,10) 
) 
# Unorderd data  
xyplot(Count ~ Date | Unit, data=d, type="l") 
# Ordered data 
xyplot(Count ~ Date | Unit, data=d[order(d$Date),], type="l") 

(あなたが明示的にその「星形」アーチファクトを求める場合を除きます)、これはggplot2では発生しませんのでご注意:

library(ggplot2) 
ggplot(d, aes(Date, Count)) + geom_line() + facet_grid(~Unit) 
+0

ありがとうございました!私は日付でデータフレームをソートしたと思っていましたが(おそらく私はこれを見逃していました)、xyplotコマンドの一部としてソートしませんでした。 ggplot2は私のパッケージリストの中で高く評価されています。対応するコードもありがとうございます。 – DataDog

関連する問題