Вам нужно подсчитать количество событий в каждый период времени и нанести эти значения на ось y. Вы не предоставили достаточно данных для воспроизводимого примера, поэтому я создал небольшой пример. Мы будем использовать пакеты tidyverse dplyr
и lubridate
, чтобы помочь нам здесь:
library(lubridate)
library(dplyr)
library(ggplot2)
set.seed(69)
fullUsage <- data.frame(Dates = as.POSIXct("2020-01-01") +
minutes(round(cumsum(rexp(10000, 1/25))))
)
head(fullUsage)
#> Dates
#> 1 2020-01-01 00:02:00
#> 2 2020-01-01 00:15:00
#> 3 2020-01-01 00:22:00
#> 4 2020-01-01 00:29:00
#> 5 2020-01-01 01:13:00
#> 6 2020-01-01 01:27:00
Прежде всего, мы создадим столбцы, которые показывают час дня и месяц, когда произошли события:
fullUsage$hours <- hour(fullUsage$Dates)
fullUsage$month <- floor_date(fullUsage$Dates, "month")
Теперь мы можем просто подсчитать количество событий в месяц и построить это число для каждого месяца:
fullUsage %>%
group_by(month) %>%
summarise(n = length(hours)) %>%
ggplot(aes(month, n)) +
geom_col()
And we can do the same for the hour of day:
fullUsage %>%
group_by(hours) %>%
summarise(n = length(hours)) %>%
ggplot(aes(hours, n)) +
geom_col() +
scale_x_continuous(breaks = 0:23) +
labs(y = "Hour of day")
Created on 2020-08-05 by the пакет REPEX (v0.3.0)