Thanks Thierry, Peter, Richard, Jim and Jeff for your help! In the end I used Thierry's suggetion, in essence to add a day onto the sequences that start after midnight, and this seems to work fine.
Bob P.S. What I do during the day is my business, even if it mainly sems to involve feeding frozen fruit & yoghurt to parrots... On 14 May 2015 at 17:56, Jeff Newmiller <jdnew...@dcn.davis.ca.us> wrote: > I might do it this way using Jim's sample data: > > epoch <- as.POSIXct( "1970-01-01" ) # any date you like > dta <- data.frame( Timestamps = epoch > + as.difftime( ifelse( Times >= 5/24 > , Times > , Times + 1 ) > , units="days" ) > , Thing=Thing > ) > brks <- epoch + as.difftime( seq( 5, 29, 1 ), units="hours" ) > plot( Thing ~ Timestamps, dta, xaxt="n", xlim=c( min(brks), max(brks) ) ) > axis.POSIXct( 1, at=brks, format="%H:%M" ) > > or, using ggplot2 instead of base graphics: > > library(ggplot2) > library(scales) > ggplot( dta, aes( x=Timestamps, y=Thing ) ) + > geom_point() + > scale_x_datetime( breaks=brks > , limits=c( min(brks), max(brks) ) > , labels=date_format("%H:%M") ) + > theme( axis.text.x = element_text( angle = 90, hjust = 1 ) ) > > > On Thu, 14 May 2015, Jim Lemon wrote: > >> 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 <r...@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....@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@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@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@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. >> > > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > > > ______________________________________________ > R-help@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. -- 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@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.