【发布时间】:2016-05-21 16:34:24
【问题描述】:
我有一个包含 16 个独立时间序列的大型数据集。我想将它们绘制在 3x7 网格中,顶行是以 IN 结尾的每个时间序列,底行是以 OUT 结尾的每个时间序列。在中间行,我将重复两个以 RN 结尾的时间序列中的每一个,它们对应于每个 IN/OUT 对。我已经设置了我认为完成的必要逻辑和语法,但我继续与数据类作斗争,并且无法让脚本运行足够长的时间来调试其余部分。我是 R 的新手,所以我不确定如何继续。
library(ggplot2)
numbers <- read.csv("./AllData.csv", header=TRUE)
num <- (ncol(numbers) - 4)/4*3 #converts 36 columns to 24 plots involving 8 timeseries
par(mfrow=c(3,7))
for(i in 1:num){
if (i < 8) {
qplot(as.POSIXct(as.Date(numbers[4*i+1])), numbers[4*i+2], data="numbers", xlab="Date", ylab="Feet", main=numbers[4*i+2,1])
} else if (i < 15) {
qplot(as.POSIXct(as.character(numbers[4*i-6]), format="%m/%d/%Y %H:%M"), numbers[4*i-5], data="numbers", xlab="Date", ylab="Feet", main=numbers[4*i-5,1])
} else {
qplot(as.POSIXct(as.character(numbers[4*i-13]), format="%m/%d/%Y %H:%M"), numbers[4*i-12], data="numbers", xlab="Date", ylab="Feet", main=numbers[4*i-12,1])
}
代替“as.POSIXct”,我还尝试了“as.Date”,“as.POSIXlt”,并简单地按原样绘制数据集,但都会导致类似的错误,通知我 ggplot 无法使用无论我使用什么课程。我尝试使用下面的基本绘图功能,但随后收到错误,我的 x 和 y 长度不同,我已经检查过并且长度相同。
par(mfrow=c(3,7))
for(i in 1:num){
if (i < 8) {
x <- as.POSIXct(as.character(numbers[4*i+1]), format="%m/%d/%Y %H:%M")
x <- numbers[4*i+1]
y <- numbers[4*i+2]
main <- numbers[4*i+2,1]
} else if (i < 15) {
x <- as.POSIXct(as.character(numbers[4*i-6]), format="%m/%d/%Y %H:%M")
y <- numbers[4*i-5]
main <- numbers[4*i-5,1]
} else {
x <- as.POSIXct(as.character(numbers[4*i-13]), format="%m/%d/%Y %H:%M")
y <- numbers[4*i-12]
main <- numbers[4*i-12,1]
}
plot(x, y, type="l", xlab="Date", ylab="Feet", heading=main)
}
任何智慧或指导将不胜感激。这是我的数据集:https://drive.google.com/file/d/0BzEFYP8cpjHpUlluSlNZaTN1RDA/view?usp=sharing
【问题讨论】:
标签: r datetime plot ggplot2 time-series