[R] Plotting times at night and getting plot limits correct
Jim Lemon
drjimlemon at gmail.com
Thu May 14 00:56:55 CEST 2015
Hi Bob,
Given the other answers I may be off target, but perhaps this will help:
# create two "nights" worth of data
Times<-strptime(
paste(c("2015-05-13","2015-05-14"),paste(rep(c(18:23,0:6),2),":30:00",sep="")),
"%Y-%m-%d %H:%M:%S")
# telescope the two nights into repeated hours
Hours<-strptime(format(Times,"%H:%M:%S"),"%H:%M:%S")
# get a measure that can be checked for the correct output
calls_per_hour<-sample(10:100,length(Hours))
# plot the repeated values - looks okay
plot(Hours,calls_per_hour)
# now calculate the mean values for each hourly measurement
mean_calls_per_hour<-by(calls_per_hour,as.character(Hours),mean)
# plot the means, making sure that the orders match
plot(sort(unique(Hours)),mean_calls_per_hour)
Jim
On Wed, May 13, 2015 at 1:20 AM, Richard M. Heiberger <rmh at temple.edu> wrote:
> Try this.
>
> >From the full data-time value subtract 18:00:00.
> This places the times you are interested in into the range 00:00:00 - 12:00:00
> Remove the date from these adjusted date-time values and plot y
> against the new times.
> Take control of the tick-labels and display 18:00 - 0600 instead of
> the default 00:00 - 12:00
>
> Rich
>
> On Tue, May 12, 2015 at 10:34 AM, Bob O'Hara <rni.boh at gmail.com> wrote:
>> I'm helping colleagues with analysis of frog calls at night, and they
>> want to plot call statistics against time. This means we hit a
>> problem: we want the x-axis to start at (say) 18:00 and end at (say)
>> 06:00. I'm reluctant to use the date as well, because we have data
>> from several dates, but only want to plot against time of day.
>>
>> Here's some code to illustrate the problem (don't worry about the data
>> being outside the range of the plot: this is only for illustration).
>>
>> library(chron)
>> Times <- chron(times.=paste(c(18:23,0:9),":30:00", sep=""))
>> Thing <- rnorm(length(Times)) # just something for the y-axis
>>
>> plot(Times,Thing) # x-axis wrong
>> plot(Times,Thing, xlim=chron(times.=c("05:00:00", "18:00:00"))) # x-axis right
>> plot(Times,Thing, xlim=chron(times.=c("18:00:00", "05:00:00"))) #
>> would like this to work...
>>
>> Can anyone suggest a solution?
>>
>> Bob
>>
>> --
>> Bob O'Hara
>>
>> Biodiversity and Climate Research Centre
>> Senckenberganlage 25
>> D-60325 Frankfurt am Main,
>> Germany
>>
>> Tel: +49 69 798 40226
>> Mobile: +49 1515 888 5440
>> WWW: http://www.bik-f.de/root/index.php?page_id=219
>> Blog: http://occamstypewriter.org/boboh/
>> Journal of Negative Results - EEB: www.jnr-eeb.org
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
More information about the R-help
mailing list