iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
1
自我挑戰組

新手 R 語言學習紀錄系列 第 25

Day 25- R語言 ggplot2資料視覺化 Part 2- ggplot函數

  • 分享至 

  • xImage
  •  

Day 25- ggplot2資料視覺化 Part 2- ggplot函數
(前言:內個,我只是個剛接觸程式設計的小萌新,如果內文內容、程式碼、統計資料圖寫或畫的不對,還請各位大大指教 Orz,另外今天繪圖用到的資料請參考第22, 23天的cp 空氣品質資料喔,不過後來因爲資料不齊全的關係,我又重新整理匯入一次,所以cp現在長這樣(節錄前6筆)):
https://ithelp.ithome.com.tw/upload/images/20191011/20120887SY0kY2Q5ly.png

用ggplot函數做圖時必須要指定美學屬性(aesthetics)及圖表種類(geometrics),常用圖表種類包含:散佈圖(geom_point),線圖(geopm_line), 直方圖(geom_histogram), 盒型圖(geom_histogram), 及長條圖(geom_bar)

ggplot函數最基本的寫法如下:

ggplot(資料, aes(x = x軸資料, y = y軸資料)) + geom_美學屬性() +facets, geom_smooth等其他圖表設定

假設想要觀察風向以及PM2.5之間的關係,可以做一個風向(wd欄位)對PM2.5數值的點狀圖及盒狀圖。程式碼如下:

ggplot(cp, aes(x = wd, y = PM2.5)) + geom_point()
ggplot(cp, aes(x = wd, y = PM2.5)) + geom_boxplot()

繪圖結果如下:
https://ithelp.ithome.com.tw/upload/images/20191011/20120887NGQThlhKRQ.png
https://ithelp.ithome.com.tw/upload/images/20191011/20120887g4yJsy3hEe.png

Ggplot同樣也可以使用facet功能,概念上與qplot大同小異。因為cp資料組裡面含有兩個月的空氣品值檢測資料,所以用月份來進行分組,程式碼及繪圖結果如下:

ggplot(cp, aes(x = wd, y = PM2.5)) + geom_point() + facet_grid(month~.)
ggplot(cp, aes(x = wd, y = PM2.5)) + geom_boxplot() + facet_grid(month~.) 

https://ithelp.ithome.com.tw/upload/images/20191011/20120887QgWK5zIcOR.png
https://ithelp.ithome.com.tw/upload/images/20191011/20120887xFCMFowdBl.png
facet的這個部分總共有facet_grid, facet_null, 及facet_wrap三個形態,但最常用的還是facet_grid這個型態。

如果要同時檢視盒狀圖及資料的分佈的話,可以在剛剛寫的程式碼後面加上一個 + geom_jitter()
就可以同時檢視盒狀圖及資料分布的情況
https://ithelp.ithome.com.tw/upload/images/20191011/20120887Ey2ziNRQhP.png

今天就先學到這邊好了。當然,ggplot畫圖的種類遠超過想像,不同種類的資料適合畫的圖也都不同,看來ggplot要探索的東西真的很多呢 ˊˇˋ

明天學習用ggplot地圖繪圖功能來做資料視覺化吧

參考資料:

  1. https://yijutseng.github.io/DataScienceRBook/vis.html
  2. https://bookdown.org/tonykuoyj/eloquentr/ggplot2-base.html
  3. https://danzhuibing.github.io/R_ggplot2.html

上一篇
Day 24- R語言 ggplot2資料視覺化 Part 1- 基礎繪圖文法及qplot介紹
下一篇
Day 26- R語言 ggplot2資料視覺化 Part 3(1)- ggplot2 + 地圖
系列文
新手 R 語言學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言