【发布时间】:2019-02-21 11:13:15
【问题描述】:
在 ggplot 上绘制 x 轴刻度时出现错误。
lubridate::parse_date_time(df1$hr,"H:M") -> df1$hr
ggplot(data = df1 , aes(x = hr, y = Val, color = Date)) +geom_line() +
scale_x_datetime(date_breaks = "1 hours", date_labels = "%H:%M")
以下是我的示例数据。
df1 <- data.table::fread("Date hr Val
19/02/19 0:00 1292
19/02/19 1:00 1047
19/02/19 2:00 160
19/02/19 3:00 80
19/02/19 4:00 67
19/02/19 5:00 48
19/02/19 6:00 30
19/02/19 7:00 99
19/02/19 8:00 188
19/02/19 9:00 42
19/02/19 10:00 14
19/02/19 11:00 27
19/02/19 12:00 21
19/02/19 13:00 21
19/02/19 14:00 110
19/02/19 15:00 535
19/02/19 16:00 1503
19/02/19 17:00 2626
19/02/19 18:00 4859
19/02/19 19:00 5699
19/02/19 20:00 5718
19/02/19 21:00 5337
19/02/19 22:00 6101
19/02/19 23:00 5381
20/02/19 0:00 1836
20/02/19 1:00 236
20/02/19 2:00 96
20/02/19 3:00 79
20/02/19 4:00 115
20/02/19 5:00 123
20/02/19 6:00 137
20/02/19 7:00 142
20/02/19 8:00 119
20/02/19 9:00 99
20/02/19 10:00 92
20/02/19 11:00 109
20/02/19 12:00 118
20/02/19 13:00 159
20/02/19 14:00 269
20/02/19 15:00 648
20/02/19 16:00 981
20/02/19 17:00 1371
20/02/19 18:00 1804
20/02/19 19:00 2772
20/02/19 20:00 4582
20/02/19 21:00 5346
20/02/19 22:00 5244
20/02/19 23:00 4956")
我想要做的是在 x 轴刻度上绘制所有小时但低于错误
Error in as.POSIXlt.character(as.character(x), ...) : character string
is not in a standard unambiguous format.
但它适用于同一数据框的子集。
我认为当小时是 1 位长或两位长而不是同时时,它会起作用
【问题讨论】:
-
它在那里。只需向下滚动.. ggplot(data = df1, aes(x = hr, y = Val, color = Date)) +geom_line()+ scale_x_datetime(date_breaks = "1 hours", date_labels = "%H:%M")
-
检查
parse_date_time的结果 - 这不是正确的日期时间格式。 -
你想画什么?每天不同的线路?
-
是的。每个日期的不同行。 x 轴上只有一个小时
-
改行
> df1$hr<-as.POSIXct(df1$hr,format="%H") > ggplot(data = df1 , aes(x = hr, y = Val, color = Date)) +geom_line()+ + scale_x_datetime(date_labels = "%H",date_breaks = "1 hour")解决了