1

我想为一周的时间序列数据绘制图表,例如:

Day1    Time    Day2  Time      Day3  Time.......Day7   Time
123    00:00hr  7897  00:00hr   4662  00:00hr    1235   00:00hr   
4562   01:00hr  4645  01:00hr   4564  01:00hr....7898    01:00hr
.....  .......   .... .......   ....  ...............    ......
.....  .......   ....  ......   ....  ...............       .....
.... ..... ....... ...............................................

4653   23:00    46456  23:00hr  7895  23:00hr    7892    23:00hr

我想在同一张图中绘制上述时间序列数据的图。该图应该像它首先绘制第 1 天(所有 24 小时)的图,然后是第 2 天,第 3 天......连续。X 轴应该是时间索引,如 (day1,00),(day1,01).......(day2,00)...

请帮我解决这些问题

4

1 回答 1

1

数据生成:

set.seed(1)
df <- data.frame(matrix(round(runif(24*7,0,1000), 0), ncol=7))
colnames(df) <- paste0("Day", 1:7)
df$Time <- c(sprintf("0%d:00", 0:9), sprintf("%d:00", 10:23))
df

我相信,在这里,您不需要Time具有相同值的七列。

现在我们可以使用commonreshapeggplotroutine:

require(reshape2)
require(ggplot2)
mdf <- melt(df, id.vars="Time")
g <- ggplot(mdf, aes(x=1:(24*7))) + geom_line(aes(y=value))
g

这产生了情节:

在此处输入图像描述

x轴的一些美学:

g + scale_x_continuous(breaks=seq(0, 24*7, 24), labels=0:7, name="Days")

在此处输入图像描述

基本图形解决方案:

plot(mdf$value, type="l")

在此处输入图像描述

于 2013-02-06T11:44:20.637 回答