2011-09-19 66 views
0

我从我的Garmin有一些GPS数据我想绘制时间缩放图。我在使用ggplot2的网上找到了一些例子,但是有问题 - 我相信我可能需要重新格式化我的日期时间列,但是无法找到'net并查看ggplot2源代码。任何帮助非常感谢。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() 
+1

'dput(head(x,20))'会更好 – Chase

回答

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) 
+0

colClasses数据类型规定做到了!我需要在R上找到一本好书 - 刚开始尝试学习它。感谢这篇文章。 – Chad

+0

很高兴听到它。有时问题与你第一次想到的不同。很好,你发布了你的输入策略。 –

0

这里是一个解决方案

x = transform(x, LastTimeStamp = as.POSIXct(LastTimeStamp)) 
qplot(format(LastTimeStamp), HeartRateBpm_Avg, data = x)