2

我遇到了一个具有挑战性的问题,并希望得到一些建议。我有想要以图形方式显示的活动数据,并且正在寻找可用于解决我的问题的包或程序(最好是 R)。

数据是3 周 ( ) 或更长时间内Activity每小时 ( ) 收集的移动计数( ) 以及相关变量 ( / )。Time of dayCalendar DateFoodVegetation

通常,正如我被告知的那样,可以在名为Clocklab的程序中处理和绘制数据,该程序是 Matlab 产品。然而,增加的复杂性是希望根据喂养组的分类来绘制这些数据。我试图为此在 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通常产生的示例图。

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

在此处输入图像描述

我只是将一天中的时间编码为整数 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))

使用刻面的选项一:

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

在此处输入图像描述

选项二使用颜色(即填充):

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

在此处输入图像描述

于 2012-04-29T00:45:39.783 回答