1. 桃園市交通違規取締統計
感謝桃園市政府警察局林應龍,提供程式原始碼並授權本篇刊載。
本次分析,我們用了dplyr、ggplot2、viridis與ggthemes套件。
install.packages("dplyr")
install.packages("ggplot2")
install.packages("viridis")
install.packages("ggthemes")
library(dplyr) #資料處理package
library(ggplot2) #視覺化package
library(viridis) #主題package
library(ggthemes) #配色package
我們取得桃園開放資料上的交通違規取締資料
下載CSV的格式後,更改名稱為"traffic.csv",並且欄位名稱依以下對照表進行修改,方便接下來的操作
年度 | 月份 | 舉發種類 | 適用條例 | 車種 | 舉發方式 | 件數 |
---|---|---|---|---|---|---|
year | month | type | law | vehicle_type | method | count |
我們開始讀取csv檔案:
data <- read.csv("traffic.csv",fileEncoding="big5",stringsAsFactors = F)
依據舉發種類、車種、舉發方式做資料分類,並針對件數做排序,輸出三個csv檔案:
type <- data %>%
filter(year == 104) %>%
group_by(type) %>%
summarise(count = sum(count)) %>%
arrange(desc(count))
vtype <- data %>%
filter(year == 104) %>%
group_by(vehicle_type) %>%
summarise(count = sum(count)) %>%
arrange(desc(count))
method <- data %>%
filter(year == 104) %>%
group_by(method) %>%
summarise(count = sum(count)) %>%
arrange(desc(count))
匯出這三個分類統計資料:
write.csv(type,file = "type.csv",row.names = F,fileEncoding="utf-8")
write.csv(vtype,file = "vtype.csv",row.names = F,fileEncoding="utf-8")
write.csv(method,file = "method.csv",row.names = F,fileEncoding="utf-8")
緊接著,我們要開始做視覺化的呈現,將取締資料依據"月份、舉發種類"、"月份、車種"與"月份、舉發方式"進行分類:
type_month <- data %>%
filter(year == 104) %>%
group_by(month,type) %>%
summarise(count = sum(count)) %>%
arrange(desc(count))
vtype_month <- data %>%
filter(year == 104) %>%
group_by(month,vehicle_type) %>%
summarise(count = sum(count)) %>%
arrange(desc(count))
method_month <- data %>%
filter(year == 104) %>%
group_by(month,method) %>%
summarise(count = sum(count)) %>%
arrange(desc(count))
接下來,我們就可以用ggplot2來進行資料視覺化分析。