以下代码未被转换为纽约时间。知道为什么吗?我看到它在发布的答案中有效,但我机器上的代码会改变时间。
time = as.POSIXct(c("2016-06-30 15:20:23 GMT","2016-06-30 15:20:25 GMT","2016-06-30 15:20:27 GMT"),tz = "GMT")
attr(time, "tzone") <- "America/New_York"
#time = as.POSIXct(format(time, tz="America/New_York"),tz ="America/New_York")
class(time)
value = c(10,11,12)
category = c(0,1,0)
dat = data.frame(time = time, value = value, category = category)
dat
time value category
1 2016-06-30 11:20:23 10 0
2 2016-06-30 11:20:25 11 1
3 2016-06-30 11:20:27 12 0
dat显示11作为小时,但下图仍显示小时为15?
str(dat)
library(ggplot2)
ggplot(dat, aes(x=time, y = value, group = 1 )) +
geom_point(aes (color = as.factor(category)) ) +geom_line() + scale_x_datetime(date_labels = "%H:%M:%S")
它没有转换到NY时间,因为scale包已过期
答案 0 :(得分:3)
要设置时区,请使用tz =
参数as.POSIXct()
。您的输入位于"GMT"
,因此我们可以告诉R
这种情况。要转换为其他时区,请相应地设置属性tzone
。
要将x轴缩放为日期/时间,请使用scale_x_datetime()
和相应的格式代码。
time = as.POSIXct(c("2016-06-30 15:20:23 GMT",
"2016-06-30 15:20:25 GMT",
"2016-06-30 15:20:27 GMT"), tz = "GMT")
attr(time, "tzone") <- "America/New_York"
value = c(10,11,12)
category = c(0,1,0)
dat = data.frame(time = time, value = value, category = category)
library(ggplot2)
ggplot(dat, aes(x = time, y = value, group = 1)) +
geom_point(aes(color = as.factor(category))) +
geom_line() +
scale_x_datetime(date_labels = "%H:%M:%S %Z")