Mysql 在使用SQL UNIX_TIMESTAMP()之后,如何在ggplot轴上显示一天中的时间?

Mysql 在使用SQL UNIX_TIMESTAMP()之后,如何在ggplot轴上显示一天中的时间?,mysql,r,ggplot2,Mysql,R,Ggplot2,我正在处理类似以下查询返回的数据: SELECT UNIX_TIMESTAMP(timestamp) DIV 300 AS period, COUNT(*) as count from tbl GROUP BY UNIX_TIMESTAMP(timestamp) DIV 300 将计数分组为5分钟间隔,然后导入R,如下所示: set.seed(1) mydata <- data.frame(period = seq(5391360, 5391647), count = rpois(288

我正在处理类似以下查询返回的数据:

SELECT UNIX_TIMESTAMP(timestamp) DIV 300 AS period, COUNT(*) as count from tbl
GROUP BY UNIX_TIMESTAMP(timestamp) DIV 300
将计数分组为5分钟间隔,然后导入R,如下所示:

set.seed(1)
mydata <- data.frame(period = seq(5391360, 5391647), count = rpois(288, 4))
head(mydata)
##     period count
## 1 5391360     3
## 2 5391361     3
## 3 5391362     4
## 4 5391363     7
## 5 5391364     2
## 6 5391365     7
这就产生了:


但是,如上所述,我希望x轴具有小时标签:01:00、02:00等在这个解决方案中,首先我创建一个日期时间值向量。向量
df1$period
乘以300并强制为class
“POSIXct
。然后保留小时和分钟

period <- as.POSIXct(df1$period*300, origin = "1970-01-01")
period <- format(period, "%H:%M")

library(ggplot2)

ggplot(data = data.frame(period, count = df1$count),
       mapping = aes(period, count)) +
  geom_col(position = position_dodge())

谢谢(+1)。但是我需要每隔1小时使用x轴标签(因为我有24小时的数据),我已经用更真实的数据集更新了问题。@JoeKing答案更新,现在看看是否符合您的要求。太好了。谢谢!
period <- as.POSIXct(df1$period*300, origin = "1970-01-01")
period <- format(period, "%H:%M")

library(ggplot2)

ggplot(data = data.frame(period, count = df1$count),
       mapping = aes(period, count)) +
  geom_col(position = position_dodge())
set.seed(1)
mydata <- data.frame(period = seq(5391360, 5391647), count = rpois(288, 4))

mydata$hour <- as.POSIXct(mydata$period*300, origin = "1970-01-01")
mydata$hour <- format(mydata$hour, "%H")
agg <- aggregate(count ~ hour, mydata, sum)

library(ggplot2)

ggplot(data = agg, aes(hour, count)) +
  geom_col(position = position_dodge())