我有一些来自Garmin的GPS数据我想要缩放时间图。我在网上找到了一些使用ggplot2来做这个的例子,但是它有问题 - 我相信我可能需要重新格式化我的datetime列,但是无法弄清楚搜索'net并查看ggplot2源代码。任何帮助非常感谢。
> library(ggplot2)
> x <- read.csv("tst.csv",header=TRUE,colClasses="character")
> head(x)
counter HeartRateBpm_AVG LastTimeStamp
1 1 102.25 9/3/2011 7:32
2 2 138.75 9/3/2011 7:33
3 3 138.75 9/3/2011 7:33
4 4 138.75 9/3/2011 7:33
5 5 138.75 9/3/2011 7:33
6 6 138.75 9/3/2011 7:34
> ggplot(data=x,aes(x=LastTimeStamp,y=HeartRateBpm_AVG)) + scale_x_date(format = "%S") + geom_line()
答案 0 :(得分:2)
我不相信您可以使用该输入过程来获取该data.frame。您只在“colClasses”向量中有一个项目。当我使用你的方法时,结果与我使用readLines
的结果差别不大。您的日期 - 时间列不打印,就好像它以可以在没有格式规范的情况下转换的方式进行打印。请尝试改为:
x <- read.csv(textConnection(" counter, HeartRateBpm_AVG, LastTimeStamp
1 , 102.25, 9/3/2011 7:32
2 , 138.75 ,9/3/2011 7:33
3 , 138.75, 9/3/2011 7:33
4 , 138.75 ,9/3/2011 7:33
5 , 138.75, 9/3/2011 7:33
6 , 138.75 ,9/3/2011 7:34"),
header=TRUE, colClasses=c("numeric", "numeric", "character"))
# Then the formating as date-time works well.
x$LastTimeStamp2 <- as.POSIXct(x$LastTimeStamp, format="%m/%d/%Y %H:%M")
head(x)
答案 1 :(得分:0)
这是一个解决方案
x = transform(x, LastTimeStamp = as.POSIXct(LastTimeStamp))
qplot(format(LastTimeStamp), HeartRateBpm_Avg, data = x)