iT邦幫忙

1

[R語言]資料分析讀書心得02---Aesthetic Mappings

「圖表最重大的價值在於,它迫使我們注意到從沒預料會看到的東西。」---------John Tukey

在這篇文章,aes() (Aesthetic Mappings 美學映射) 是我們這次主要要介紹的主題,首先我們先看到上次文章中出現的點狀圖。

library(tidyverse)
ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy))

https://ithelp.ithome.com.tw/upload/images/20200731/20124935h4DVAu3jTA.png

雖然它是二維圖形(x,y兩個變數,即displ,hwy),但是我們可以透過aes()使得我們可以看到第三種變數。

我們來回顧一下資料型態:

glimpse(mpg)

https://ithelp.ithome.com.tw/upload/images/20200731/20124935348Oubplej.png

其中displ代表的意思是車子的引擎大小,hwy代表的意思是車子在高速公路上的燃油效率。那我們再考慮class這個變數,它的意思是車子的種類。

我們如果執行以下程式碼

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy,color=class))

https://ithelp.ithome.com.tw/upload/images/20200731/20124935CCmvP4OfkM.png

則我們會看到,除了之前的散佈圖以外,它會依照class的不同,自動的給予不同的顏色,這樣我們就可以看到更多的資訊。

接著我們還可以把color換成size,alpha或是shape試試。

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy,size=class))

https://ithelp.ithome.com.tw/upload/images/20200731/20124935GnlhfYv0wy.png

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy,alpha=class))

https://ithelp.ithome.com.tw/upload/images/20200731/201249354gIQONK0kt.png

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy,shape=class))

https://ithelp.ithome.com.tw/upload/images/20200731/20124935dbJcsz0isF.png

我們會發現,會有各式不同的參數在支援我們繪圖。而且它會自動幫你配好顏色或是形狀,但是其實我們也可以自己設定。

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy),color="blue")

https://ithelp.ithome.com.tw/upload/images/20200731/20124935sH1xycjtlk.png

甚至也可以做一些真假值的操作

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy,color=displ<5))

https://ithelp.ithome.com.tw/upload/images/20200731/20124935mkI1hAOqhH.png

我們還有其他方法可以檢視到第三種變數。

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy))+
  facet_wrap(~class,nrow=2)

https://ithelp.ithome.com.tw/upload/images/20200731/20124935gLL1iu7Njd.png

這個方法就是把我們第一張散佈圖根據不同的class做分類,個別繪製出子圖,nrow的意思代表是要分成幾列去呈現。

除此之外,我們甚至可以去看新增了兩種變數的情況

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy))+
  facet_grid(drv~cyl)

https://ithelp.ithome.com.tw/upload/images/20200731/20124935kZP7HoIcjj.png

如上圖,它會把drv跟cyl再次做成二維網格,有些情況你會希望能做到這類的事情。

今天介紹了點狀圖的一些變形,事實上上述的一些方法也可應用在其他類型的圖形上,我們在之後的文章會陸續介紹到,謝謝大家。


尚未有邦友留言

立即登入留言