Ker*_*rry 2 matlab graphing behavior r
我遇到了一个具有挑战性的问题,并希望得到一些建议.我有活动数据,我想以图形方式显示,我正在寻找可用于解决我的问题的包或程序(最好是R).
数据是Activity每小时()收集的运动计数(Time of day)持续3周(Calendar Date)或更多与相关变量(Food/ Vegetation).
通常情况下,正如我所知,数据可以在一个名为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
Run Code Online (Sandbox Code Playgroud)
这个数据是昼夜节律,循环,活动预算,我希望有一个可能是3-D的图表,它将显示饮食选择以及与该饮食相关的多少活动随着时间的推移绘制多天/周.我会通过个人然后在人口水平上做到这一点.我已经通过程序Clocklab通常生成的程序和示例图的链接.
没有真实数据,这是我能想到的最好的数据.不需要特殊的包,只需ggplot2和plyr:
#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()
Run Code Online (Sandbox Code Playgroud)

我只是将当天的小时编码为整数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))
Run Code Online (Sandbox Code Playgroud)
选项一使用分面:
ggplot(dat,aes(x = time,y = day)) +
facet_wrap(~grp,nrow = 3) +
geom_tile(aes(alpha = count))
Run Code Online (Sandbox Code Playgroud)

选项二使用颜色(即填充):
ggplot(dat,aes(x = time,y = day)) +
geom_tile(aes(alpha = count,fill = grp))
Run Code Online (Sandbox Code Playgroud)
