I have a number of times and want to plot the frequency of each time in a barplot
library(ggplot2)
library(chron)
test <- data.frame(times = c(rep("7:00:00",4), rep("8:00:00",3),
rep("12:00:00",1), rep("13:00:00",5)))
test$times <- times(test$times)
test
times
1 07:00:00
2 07:00:00
3 07:00:00
4 07:00:00
5 08:00:00
6 08:00:00
7 08:00:00
8 12:00:00
9 13:00:00
10 13:00:00
11 13:00:00
12 13:00:00
13 13:00:00
The value of binwidth
is chosen to represent minutes
p <- ggplot(test, aes(x = times)) + geom_bar(binwidth=1/24/60)
p + scale_x_chron(format="%H:%M")
As you see the scales are plus one hour in the x-axis:
I have the feeling that is has something to do with the timezone, but I cant really place it:
Sys.timezone()
[1] "CET"
Edit: Thanks @shadow for comment
UPDATE:
If I run Sys.setenv(TZ='GMT')
first it works perfectly. The problem is in the times()
function. I automatically sets the timezone to GMT
and if I'm plotting the x-axis, ggplot notices that my system-timezone is CET
and adds one hour on the plot.
Now if i'm setting my system-timezone to GMT
, ggplot doesn't add an hour.