REGISTRATION_TIME
08:53:16
13:18:57
15:57:58
09:25:47
13:35:54
12:01:31
09:37:57
12:44:47
21:26:12
21:26:12
14:56:13
02:09:31
15:28:51
15:30:57
我正在尝试在X轴上绘制时间并找到每次的计数。这是5,000行的样本数据集。并且还希望每小时创建一个垃圾箱。
我尝试了以下操作:
TIME_plot <- ggplot(LW_Par, aes(REGISTRATION_TIME)) + geom_bar(colour = "white", fill = "#1380A1")
在弄清楚如何编写此代码方面遇到一些麻烦,将不胜感激。
Time_Plot <- LW_Par %>%
mutate(REGISTRATION_TIME = hms(REGISTRATION_TIME)) %>%
ggplot(aes(x = REGISTRATION_TIME)) +
geom_histogram(bins = 24, colour = "white", fill = "#1380A1") +
scale_x_time() + bbc_style()
Time_Plot
因此,使用H 1提供的解决方案(谢谢),我将如何扩展x轴中断以提供有关计数在哪里的更多见解?
还有没有一种方法可以在时间数据上使用“摘要”来查找数据集的平均值或众数?
答案 0 :(得分:2)
一种方法是使用geom_histogram
轻松对数据进行装箱:
library(dplyr)
library(ggplot2)
library(lubridate)
dat %>%
mutate(REGISTRATION_TIME = hms(REGISTRATION_TIME)) %>%
ggplot(aes(x = REGISTRATION_TIME)) +
geom_histogram(bins = 24) +
scale_x_time()
编辑:
您可以在breaks
命令中使用scale
参数来设置x轴标签的数量。您还可以通过使用binwidth
中的geom_histogram
参数来更好地控制垃圾箱。当您具有时间变量时,单位表示秒,因此您可以按15分钟进行分档,例如按“ binwidth = 900”进行分档。
dat %>%
mutate(REGISTRATION_TIME = hms(REGISTRATION_TIME)) %>%
ggplot(aes(x = REGISTRATION_TIME)) +
geom_histogram(binwidth = 900) +
scale_x_time(breaks = hm(paste0(seq(0, 24, by = 3), ":00")))
数据:
dat <- read.table(text = "REGISTRATION_TIME
08:53:16
13:18:57
15:57:58
09:25:47
13:35:54
12:01:31
09:37:57
12:44:47
21:26:12
21:26:12
14:56:13
02:09:31
15:28:51
15:30:57", header = TRUE)
答案 1 :(得分:0)