I spent some time trying to figure out why the hour ticks were shifted when scale_x_datetime was applied. I\'ve tried to give the timezone when the Date/Time column was crea
Update for ggplot 3+. scale_x_datetime
allows you to set the x-axis time zone directly (using a syntax slightly different than that given in older answers). The correct code now is:
scale_x_datetime(limits = lims, breaks = date_breaks("2 hour"),
date_labels = "%m/%d %H:%M",
timezone = "America/Toronto")
The function date_format()
takes a tz
argument that is by default set to "UTC"
. Therefore, your labels are converted to UTC. To use the time zone "America/Toronto", you can do the following:
scale_x_datetime(limits = lims, breaks = date_breaks("2 hour"),
labels = date_format("%m/%d %H:%M", tz = "America/Toronto"))
This argument was introduced with version 0.2.5. Code that uses date_format()
to create plots in other time zones than UTC must be changed after the update.