R:如何按小时绘制x轴

时间:2016-09-23 09:15:01

标签: r charts

我有一个数据框var buildify = require('buildify'); var files = [ "./node_modules/moduleA/file1.js", "./node_modules/moduleB/file2.js", ]; buildify() .concat(files) .save("./dist/www/scripts/init.min.js");

df

在上文中, time value 1 08:04 0 2 08:12 0 3 08:20 60 4 08:28 0 5 08:36 0 6 08:44 0 7 08:52 0 8 09:00 0 9 09:08 0 10 09:16 0 11 09:24 0 12 09:32 0 13 09:40 0 14 09:48 0 15 09:56 0 16 10:04 100 17 10:12 49 18 10:20 49 19 10:28 49 20 10:36 0 21 10:44 0 22 10:52 0 23 11:00 0 24 11:08 0 25 11:16 0 26 11:24 0 27 11:32 0 28 11:40 0 29 11:48 0 30 11:56 0 31 12:04 0 32 12:12 0 33 12:20 0 34 12:28 0 35 12:36 0 36 12:44 0 37 12:52 0 38 13:00 0 39 13:08 0 40 13:16 0 41 13:24 0 42 13:32 0 43 13:40 0 44 13:48 0 45 13:56 0 46 14:04 0 47 14:12 0 48 14:20 0 49 14:28 0 50 14:36 91 51 14:44 44 52 14:52 43 53 15:00 43 54 15:08 0 55 15:16 0 56 15:24 0 57 15:32 0 58 15:40 0 59 15:48 42 60 15:56 41 61 16:04 41 62 16:12 41 63 16:20 41 64 16:28 42 65 16:36 42 66 16:44 42 67 16:52 42 68 17:00 42 69 17:08 42 70 17:16 42 71 17:24 42 72 17:32 41 73 17:40 41 74 17:48 41 75 17:56 41 76 18:04 40 77 18:12 40 78 18:20 40 79 18:28 39 80 18:36 39 81 18:44 37 82 18:52 37 83 19:00 37 84 19:08 37 85 19:16 37 86 19:24 33 87 19:32 33 88 19:40 33 89 19:48 34 90 19:56 34 91 20:04 34 92 20:12 50 93 20:20 67 94 20:28 36 95 20:36 36 96 20:44 36 97 20:52 36 98 21:00 36 99 21:08 37 100 21:16 39 101 21:24 41 102 21:32 42 103 21:40 44 104 21:48 46 105 21:56 47 是一个字符串,df$time是一个整数。

我希望将时间作为x轴绘制,并标记每个小时。我该怎么做?

到目前为止,我已经猜到df$value,但这会返回错误。

2 个答案:

答案 0 :(得分:5)

Base R不支持时间变量,原因很充分,例如像DST这样讨厌的怪癖。您需要创建一个日期时间变量。

df$datetime <- as.POSIXct(paste0("2016-09-23 ", df$time), tz = "GMT")

library(ggplot2)
ggplot(df, aes(x = datetime, y = value)) +
  geom_point() +
  scale_x_datetime(date_labels = "%H:%M", date_breaks = "1 hour")

resulting plot

答案 1 :(得分:1)

My Base R和lubridate解决方案:

library(lubridate)

h <- hour(hm(df$time))

plot(h, df$value)

lubridates函数hm()以小时和分钟转换df$time中的字符串,函数h()提取小时数。