Гистограмма для событий по часам дня

#r #histogram

Вопрос:

У меня есть вектор, содержащий время. Я хочу знать частоту времени в каждом часе. вектор выглядит так

 head(time_col) [1] "2021-11-23 09:00:00 GMT" "2021-11-23 13:55:00 GMT" [3] "2021-11-23 01:25:00 GMT" "2021-11-23 01:50:00 GMT" [5] "2021-11-23 02:25:00 GMT" "2021-11-23 01:30:00 GMT"  hist(time_col,"hours",main = "Density of accidents in each hour" , xlab = "hour" , ylab =  "density",col="green")  

Мне нужна гистограмма частоты

Ответ №1:

Ваши данные:

 df lt;- data.frame(time_col=c("2021-11-23 09:00:00 GMT", "2021-11-23 13:55:00 GMT", "2021-11-23 01:25:00 GMT", "2021-11-23 01:50:00 GMT", "2021-11-23 02:25:00 GMT", "2021-11-23 01:30:00 GMT") )  

Загрузка библиотек:

 library(lubridate) # for date-time manipulation library(tidyverse) # for the handy '%gt;%', mutate() and summarise() library(ggplot2) # for plotting  

Подсчет происшествий по часам

 df %gt;% mutate(time_col = ymd_hms(time_col)) %gt;%   mutate(hour = hour(time_col)) %gt;%   group_by(hour) %gt;% summarise(freq = n()) -gt; hour_freqs   

подход ggplot2 для построения графиков:

 ggplot(hour_freqs, aes(x=hour, y=freq))    geom_bar(fill = 'green', stat='identity')   

Вот как выглядит вывод ggplot2

Для базы R вы могли бы сделать что-то вроде этого:

 barplot(hour_freqs$hour, hour_freqs$freq) axis(2, seq(0, 5, by=1))  

введите описание изображения здесь

Комментарии:

1. Да, это было именно то, что я искал. Спасибо 🙂 🙂 🙂

2. Рад, что помог! Не могли бы вы одобрить мой ответ, если вы довольны ответом? Спасибо!