我收集了以下数据集(实际数据集要大得多):
DATE;TIME;TAG
20.3.2017;0:01;HAR
20.3.2017;16:05;JKT
20.3.2017;16:26;RVA
20.3.2017;18:35;JKT
20.3.2017;19:43;JVA
20.3.2017;20:00;PER
20.3.2017;21:42;RVA
20.3.2017;22:05;HAR
20.3.2017;23:59;HAR
首先,我计算了实际时间戳,如下所示
dataset$timestamp <- with(dataset, ISOdatetime(substring(dataset$DATE, 1, 4),substring(dataset$DATE, 7, 7),substring(dataset$DATE, 9, 10),substring(dataset$TIME,1,regexpr(':', dataset$TIME)-1),substring(dataset$TIME,regexpr(':', dataset$TIME)+1,length(dataset$TIME)),0))
您可能会注意到在任何给定时刻只有一个标签处于活动状态。我想在下图中看到这一点。
考虑一个1440单位高(白天分钟)和28单位宽(我的数据集中的天数)的矩阵。根据TAG在该分钟内的活动情况,每个方块都有颜色。
有可能在R中执行此操作,还是需要使用其他可视化工具?
答案 0 :(得分:0)
我假设您不是在询问如何将数据处理为适当的格式,而是如何生成图表。有几种可能性,例如使用ggplot2
:
#generate some toy data
toyDf <- data.frame(minute = sample(1440, 100, TRUE),
day = sample(28,100,TRUE),
tag = sample(c("foo","bar","baz"),100,TRUE))
#plot
library(ggplot2)
# specify data, x, and y:
ggplot(toyDf, aes(day,minute)) +
# specify plot type and fill colour levels:
geom_raster(aes(fill = tag),hjust=0, vjust=0) +
# specify where to draw minor gridlines:
scale_x_continuous(minor_breaks = seq(1, 28, 1)) +
scale_y_continuous(minor_breaks = seq(1, 1440, 1)) +
#set plot aspect ratio (because it will be very high):
theme(aspect.ratio=30/5,
#tweak some visual elements (gridlines, background):
panel.grid.minor = element_line(colour="black", size=0.05),
panel.background = element_blank())