2012-04-28 4 views
2

私は挑戦的な問題を抱えていて、いくつかの推奨事項を期待していました。 私はグラフィカルに表示したいアクティビティデータを持っており、問題(好ましくはR)を解決するために使用できるパッケージやプログラムを探しています。グラフ化行動にも組み込まれた行動のバグ

データは、関連する変数(Food/Vegetation)で3週間(Calendar Date)以上の動きのカウント(Activity)毎時収集(Time of day)です。

通常、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-Dであってもよいグラフを持っていると思いますそしてその日に何日/何週間も時間をかけてプロットされたその食事にどのくらいの活動が関連しているかを示します。私は個人レベルで、次に人口レベルでこれを行います。プログラムへのリンクと、通常はプログラムClocklabによって生成されるものの例プロットを示しています。

+0

これは面白そう、しかし、あなたは私たちが容易に可能グラフのプロトタイプを作成するために使用できるデータの最小生産可能集合を( 'dputを()'を使用)を提供する場合は、より良い推奨を取得します。 – joran

答えて

5

実際のデータがない場合は、これが私が思いつく最高です。私はちょうど、整数0-23のように一日の時間をコード化し、単にActivityカウントのためにいくつかのランダムな値をつかん

#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() 

enter image description here

:特別なパッケージがちょうどggplot2plyr、必要ありません。しかし、これは一般的にあなたが何をしているかのようです。コメントに基づいて、より

編集

いくつかのオプション:

#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)) 

enter image description here

オプション2(すなわち埋めます):

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

enter image description here

+0

素晴らしい提案ですが、年を追うごとに傾向が変わるのを見ると、Idが複雑になります。これはちょうど1 24時間をキャプチャしますが、IDは6ヶ月のデータの24時間を見るのが好きです。アクティヴグラムは、これらのラスタライズされたグラフで、Yを横切って1日24時間に1時間以上現れるデータの小さなダッシュのグラフであり、プログラムは増加したアクティビティでダッシュを「暗く」する。ここでIdは食品タイプの追加パラメータ – Kerry

+0

@Kerryいくつかのオプションを追加しましたが、もう一度強調したいのは、表示したいものを正確に反映するものを私たちに提供することによって、あなたの質問にもっと力を入れ、サンプルデータをより具体的にする必要があるということです。私は通常、あなたのような質問に時間を費やすことはありませんでした。 – joran

+0

その後、私の質問に多くの時間を費やしてくれてありがとう。適切な用語を知らずに、必要なことを説明するのは難しいし、どこで始めるべきかを知ることさえある。私はまだデータを手に入れていませんでしたが、紙のハードコピーと私が頭を下ろす必要がある知識を持っていました。あなたは私にスタートを与えてくれて、あなたの努力に心から感謝しています!ありがとうございました – Kerry

関連する問題