在R中从文件中绘制时间值的最简单方法是什么?

时间:2015-10-14 16:06:41

标签: r

我是R的新手,这是一个简单的问题。我想绘制包含时间值的输入文件的值。输出图像应包含蓝线(对于Dist为09.0的行)和红线(对于Dist为04.0的行)。

我设法通过直接在graph.r中输入整数值来生成图表,但现在我希望graph.rinput.txt获取这些值,并将其格式化为时间( H:MM:SS)。这是可能的,还是我必须先解析input.txt才能将它提供给R?

input.txt中

Date(x) Dist  Time(y)
120926  09.0  1:54:42
121001  04.0  0:19:00
121202  04.0  0:18:53
121206  09.0  1:13:19

graph.r

#!/usr/bin/env Rscript

# Define the cars vector with 5 values
input <- 'path/to/input.txt'
nine <- file(input)              #how to parse it?
four <- c(3600, 12:00, 16, 4, 9) #this fails because of "12:00"

# Set output file type to png
png("output.png", width=320, height=240)

# Graph using blue points for Dist 9, and red for Dist 4.
plot(nine, type="o", col="blue")
plot(four, type="o", col="red")

# Output to file
dev.off()

所需结果的草图,减去x y标签和图例

sketch

1 个答案:

答案 0 :(得分:0)

我就是这样做的。您将需要&#34; as.POSIXct&#34;的图形包。在执行定位器线后,您需要在图例的上角点击图表。

data=read.table("input.txt",head=T)

library(graphics)
plot(data$Date.x.,as.POSIXct(strptime(data$Time.y.,format="%H:%M:%S")),type="n", xlab="Date",ylab="Time")
lines(data$Date.x.[data$Dist==4],as.POSIXct(strptime(data$Time.y.,format="%H:%M:%S"))[data$Dist==4],col="red")
lines(data$Date.x.[data$Dist==9],as.POSIXct(strptime(data$Time.y.,format="%H:%M:%S"))[data$Dist==9],col="blue")

leg=locator(1)
legend(leg,legend=c(4,9),col=c("red","blue"),lty=1)