iT邦幫忙

0

[R語言]資料視覺化G02─運用ggplot2完成散佈圖(scatter)

Hi! 大家好,我是Eric,這次要練習運用R語言中的ggplot2套件完成散佈圖(scatter)/images/emoticon/emoticon07.gif


緣起:台灣高鐵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. 大功告成。

https://ithelp.ithome.com.tw/upload/images/20190304/20115774ZmnSJOcFIE.png


尚未有邦友留言

立即登入留言