Dear all,
I have a data set containing GPS fixes of animal locations. To check that
the GPS's are working properly, I would like to plot the time of the fixes
(y-axis) against the date of the fixes (x-axis). If all works well, the
plot should show four regular fixes per day. The x-axis should be labelled
with month/year (i.e. 11/04) and the y-axis by hour from 00 to 24. I would
like to control the x-axis limits.
I have looked at several date and time related help pages, but get horribly
lost in all the terminology. The main challenge is to isolate date and time
from the date/time object for plotting (marked ???). Therefore, I would
like the following example code to work:
>
>
dates <- c("02/27/92", "02/27/92", "01/14/92",
"01/14/92", "03/28/92",
"03/28/92") #
times <- c("23:03:20", "10:29:56", "01:03:30",
"13:03:30", "18:21:03",
"06:56:26") #
x <- paste(dates, times) #
DateTime <- strptime(x, "%m/%d/%y %H:%M:%S") #
Date <- DateTime ??? #
Time <- DateTime ??? #
plot(x=Date, y=Time,
xlab= "Date (month/year)", ylab= "Time (hours)",
xaxt="n", yaxt="n",
xlim=c(as.Date("01/01/92", format="%m/%d/%y"),
as.Date("04/01/92",
format="%m/%d/%y")),
ylim=c(0, 24)
) #
r <- as.POSIXct(round(range(Date), "days")) #
axis.POSIXct(1, at=seq(r[1], r[2], by="month"),
format="%m/%y") #
r <- as.POSIXct(round(range(Time), "hours")) #
axis.POSIXct(2, at=seq(r[1], r[2], by="hour"), format="%H")
#
>
>
Thanks for any suggestions,
Sander Oom.
--------------------------------------------------------------
Dr. Sander P. Oom
Animal, Plant and Environmental Sciences
University of the Witwatersrand
Private Bag 3
Wits 2050
South Africa
Tel (work) +27 (0)11 717 64 04
Tel (home) +27 (0)18 297 44 51
Fax +27 (0)18 299 24 64
Email sander at oomvanlieshout.net
Web www.oomvanlieshout.net/sander
Prof Brian Ripley
2004-May-17 13:58 UTC
[R] Plotting Time against Date for time series data?
On Mon, 17 May 2004, Slist wrote:> I have a data set containing GPS fixes of animal locations. To check that > the GPS's are working properly, I would like to plot the time of the fixes > (y-axis) against the date of the fixes (x-axis). If all works well, the > plot should show four regular fixes per day. The x-axis should be labelled > with month/year (i.e. 11/04) and the y-axis by hour from 00 to 24. I would > like to control the x-axis limits. > > I have looked at several date and time related help pages, but get horribly > lost in all the terminology. The main challenge is to isolate date and time > from the date/time object for plotting (marked ???). Therefore, I would > like the following example code to work: > > > > > > dates <- c("02/27/92", "02/27/92", "01/14/92", "01/14/92", "03/28/92", "03/28/92") # > times <- c("23:03:20", "10:29:56", "01:03:30", "13:03:30", "18:21:03", "06:56:26") # > x <- paste(dates, times) # > DateTime <- strptime(x, "%m/%d/%y %H:%M:%S") #Why do you end lines with #? It is rather confusing. Date <- trunc(DateTime, "day") Time <- DateTime - Date plot(Date, Time) appears to do what you want (except the x axis labelling, which you can alter by a call to axis.POSIXct and x-axis limits, which need to be set via xlim as a POSIXct object.). -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595