Hi! 大家好,我是Eric,這次要練習運用R語言中的ggplot2套件完成散佈圖(scatter)
緣起:台灣高鐵2007年通車至今12年多,運量也漸趨穩定,我們想要知道營運至今例年運量的變化,並試著找尋其中的pattern。
方法:運用[R語言]的[ggplot2]套件。
使用資料:交通部鐵道局─高鐵運量統計資料,96-106年
1. 載入所需套件。
library(ggplot2)
library(magrittr)
2. 載入資料與前置處理。
setwd("C:/Users/User/Desktop") #設定檔案路徑
HSR_trafficvolume<-read.csv("HSR_trafficvolume.csv") #載入資料
HSR_trafficvolume2<- HSR_trafficvolume %>% mutate(number.of.passenger.by.thousand=HSR_trafficvolume$number.of.passenger/1000)
#新增一個新欄位number.of.passenger.by.thousand,新欄位中資料是將載客數,但是單位改為千人計,提升後面視覺化的易讀性。
3. scatter plot
HSR_trafficvolume2$year<-as.character(HSR_trafficvolume2$year) #將year欄位轉為字串型態(由於我們要分析每年的運量變化,所以需要將year改為類別資料)
ggplot(HSR_trafficvolume2,aes(x=HSR_trafficvolume2$number.of.passenger.by.thousand,y=HSR_trafficvolume2$number.of.Trains.Operated))+
geom_point(aes(color=year,size=1))+
geom_smooth()+
labs(title="Scatter of number of passeger and number of trains operated", x="number of trains operated",y="number of passenger")+
scale_color_discrete(breaks = c("106","105","104","103","102","101","100","99","98","97","96"))+ guides(size=FALSE)
#ggplot()產生空白底圖;
geom_point(aes(color=year,size=1))於底圖上產生線圖,並用顏色區分年份,且設定點的大小;
geom_smooth()依據資料加上趨勢線;
labs(title)加上標題、x軸、y軸名稱;
scale_color_discrete(breaks)設定圖例的順序;
guides(size=FALSE)將size的圖例關掉。
4. 大功告成。