1. 桃園市交通違規取締統計

感謝桃園市政府警察局林應龍,提供程式原始碼並授權本篇刊載。

原始碼請點此進入github下載

本次分析,我們用了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來進行資料視覺化分析。