我有一個資料框,每個觀察表示一個我使用 OpenCV 計算的現實世界中的物件。經過一些突變并使用 tidyverse 和 lubridate 我的資料框如下所示:
> head(odcCountsRoadUsers)
frameId objectClass dayOfWeek ymdhms hourOfDay
1 1133 car 1 2021-12-05 13:45:25 13
2 1159 car 1 2021-12-05 13:45:26 13
3 1243 car 1 2021-12-05 13:45:31 13
4 1280 person 1 2021-12-05 13:45:33 13
5 1305 bus 1 2021-12-05 13:45:34 13
6 1812 person 1 2021-12-05 13:46:03 13
我有多天的資料,還包含相同的多個計數dayOfWeek。我想要做的是為一周中的每一天(總共 7 個)創建一個直方圖,其中包含一天中每個小時的觀察次數。結果應該與此類似(一周中每天一個直方圖):

我的問題是:
- 如何使用 ggplot2 以便它使用 POSIXct作為 x 軸,而對于 y 軸,通過(或如果可能的話直接使用)和過濾器來
ymdhms聚合觀察數?hourOfDayymdhmsdayOfWeek - 由于我有多天的記錄,我只想要 a 的平均值,
dayOfWeek而不是簡單地將不同日期的所有觀察值的計數加在一起。我怎樣才能有效地做到這一點?在繪圖之前為它創建一個單獨的資料框是否有意義,或者可以使用它輕松完成ggplot2嗎?
關于分開/分組的機會的額外問題objectClass,但這兩個是我自己似乎無法弄清楚的最緊迫的問題。
如果有幫助,
添加物件類作為引數group_by允許我們進行額外的分層:
aggregated_data2 <-
data %>%
mutate(
weekday = wday(time, label = TRUE),
hour = hour(time),
date = date(time)
) %>%
count(objectClass, weekday, date, hour) %>%
# average e.g over all mondays for each object class
group_by(objectClass, weekday, hour) %>%
summarise(n = mean(n))
aggregated_data2 %>%
ggplot(aes(hour, n, color = objectClass))
geom_line()
facet_wrap(~weekday, scales = "free")

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478908.html
下一篇:如何在R中生成帶注釋的每月熱圖?
