[R] Plotting times at night and getting plot limits correct

Thierry Onkelinx thierry.onkelinx at inbo.be
Tue May 12 17:07:49 CEST 2015


Dear Bob,

Is this useful?

library(lubridate)
library(ggplot2)
n <- 100
h <- sample(c(18:23, 0:9), size = n, replace = TRUE)
m <- sample(0:59, size = n, replace = TRUE)
d <- sample(1:3, size = n, replace = TRUE)
dataset <- data.frame(
  Time = as.POSIXct(paste0("2015-01-", d, " ", h, ":", m, ":0")),
  Thing = rnorm(n)
)
dataset$rTime <- round_date(dataset$Time, unit = "day")
dataset$Time2 <- dataset$Time - dataset$rTime + min(dataset$rTime)
ggplot(dataset, aes(x = Time2, y = Thing, colour = factor(rTime))) +
geom_point()

Best regards,


ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey

2015-05-12 16:34 GMT+02:00 Bob O'Hara <rni.boh op gmail.com>:

> 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 op 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list