You could bump up the day each time an hour was less than the previous one. E.g., testtime <- c("20:00:00","22:10:00","22:20:00","23:15:00","23:43:00","00:00:00","00:51:00","01:00:00") var <- seq_along(testtime) # so you know what the plot should look like # turn it ino a POSIXlt object so you can do arithmetic on it t <- strptime(testtime,format="%H:%M:%S") # now add a day each time t[i]<t[i-1] td <- t + .difftime(cumsum(c(FALSE, diff(t)<0)), units="days") # compare plots par(mfrow=c(2,1)) plot(t,var,type="b",xlab="Time",ylab="Var") plot(td,var,type="b",xlab="Time",ylab="Var") This is dicey because you may have skipped more than one day.
Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf > Of Law, Jason > Sent: Wednesday, October 16, 2013 5:04 PM > To: Charles Novaes de Santana; r-help@r-project.org > Subject: Re: [R] Plot time series data irregularly hourly-spaced > > You just need the date, otherwise how would it know what time comes first? > In > strptime(), a date is being assumed. > > Try this: > > testtime<- > c("20:00:00","22:10:00","22:20:00","23:15:00","23:43:00","00:00:00","00:51:00","01:00: > 00") > testday <- rep(Sys.Date() - c(1,0), times = c(5,3)) > plot(as.POSIXct(paste(testday, testtime)), var) > > Jason > > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf > Of Charles Novaes de Santana > Sent: Wednesday, October 16, 2013 2:58 PM > To: r-help@r-project.org > Subject: [R] Plot time series data irregularly hourly-spaced > > Dear all, > > I have a time series of data that I would like to represent in a plot. But I > am facing some > problems to do it because the time is represented in "hours", it can start in > one day and > end in another day, and it is not regularly spaced. > > My problem is that when I plot my data, my X-axis always starts from the > lower values of > my time data. For example, I would like to plot data that starts at 20:00:00 > and ends at > 01:00:00, but R considers that 01:00:00 is lower than 21:00:00 and my plot is > kind of > "crossed over time". > > Please try this example to see it graphically: > > testtime<- > c("20:00:00","22:10:00","22:20:00","23:15:00","23:43:00","00:00:00","00:51:00","01:00: > 00") > var<-runif(length(testtime),0,1) > plot(strptime(testtime,format="%H:%M:%S"),var,type="b",xlab="Time",ylab="Var") > > In this case, I would like to have a plot that starts at 20:00:00 and ends at > 01:00:00. > > Does anybody know how to make R understand that 00:00:00 comes after 20:00:00 > in > this case? Or at least does anybody know a tip to make a plot with this kind > of X-axis? > > Thanks for your time and thanks in advance for any help. > > Best regards, > > Charles > -- > Um axé! :) > > -- > Charles Novaes de Santana, PhD > http://www.imedea.uib-csic.es/~charles > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.