2

私は挑戦的な問題を与えられており、いくつかの推奨事項を期待していました. グラフィカルに表示したい活動データがあり、問題を解決するために使用できるパッケージまたはプログラム (できれば R) を探しています。

データは、関連付けられた変数 ( / )を使用して 3 週間 ( ) 以上にわたってActivity1 時間ごと ( ) に収集された動き ( ) の数です。Time of dayCalendar DateFoodVegetation

通常、データは Matlab 製品であるClocklabと呼ばれるプログラムで処理およびグラフ化できると言われています。ただし、追加の複雑さは、給餌グループの分類に従ってこのデータをプロットする必要があることです。このためにRで公平なプログラム/パッケージを見つけようとしていましたが、不足しています。

データは次のようになります。

Activity     time of day      Food type         Calendar Date
       0           01:00              B            03/24/2007
      13           02:00            ---            03/24/2007
       0           03:00              B            03/24/2007
       0           04:00              B            03/24/2007
       :               :              :                     :
    1246           18:00              C            03/24/2007
    3423           19:00              C            03/24/2007
       :               :              :                     :
       0           00:00            ---            03/25/2007

このデータは概日、循環、活動予算です。食事の選択と、その食事に関連する活動の量を数日/数週間にわたってプロットした、本質的に 3 次元のグラフが必要です。これを個人ごとに行い、次に人口レベルで行います。プログラムへのリンクと、プログラムClocklabによって通常生成されるもののプロット例を示します。

4

1 に答える 1

5

実際のデータがないので、これが私が思いつく最高のものです。ggplot2plyrだけで、特別なパッケージは必要ありません:

#Some imagined data
dat <- data.frame(time = factor(rep(0:23,times = 20)),
                count = sample(200,size = 480,replace = TRUE),
                grp = sample(LETTERS[1:3],480,replace = TRUE))

head(dat)
  time count grp
1    0    79   A
2    1    19   A
3    2     9   C
4    3    11   A
5    4   123   B
6    5    37   A

dat1 <- ddply(dat,.(time,grp),summarise,tot = sum(count))

> head(dat1)
  time grp tot
1    0   A 693
2    0   B 670
3    0   C 461
4    1   A 601
5    1   B 890
6    1   C 580

ggplot(data = dat1,aes(x = time,y  = tot,fill = grp)) + 
    geom_bar(stat = "identity",position = "stack") + 
    coord_polar()

ここに画像の説明を入力

1 日の時間を 0 から 23 の整数でコーディングし、単純にランダムなActivityカウント値を取得しました。しかし、これは一般的にあなたが求めているもののようです。

編集

コメントに基づくいくつかのオプション:

#Force some banding patterns
xx <- sample(10,9,replace = TRUE)
dat <- data.frame(time = factor(rep(0:23,times = 20)),
                day = factor(rep(1:20,each = 24),levels = 20:1),
                count = rep(c(xx,rep(0,4)),length.out = 20*24),
                grp = sample(LETTERS[1:3],480,replace = TRUE))

ファセットを使用するオプション 1:

ggplot(dat,aes(x = time,y = day)) +
    facet_wrap(~grp,nrow = 3) + 
    geom_tile(aes(alpha = count))

ここに画像の説明を入力

色を使用するオプション 2 (つまり、塗りつぶし):

ggplot(dat,aes(x = time,y = day)) +
    geom_tile(aes(alpha = count,fill = grp))

ここに画像の説明を入力

于 2012-04-29T00:45:39.783 に答える