官术网_书友最值得收藏!

1.6.3 度量調整

度量用于控制變量映射到視覺對象的具體細節(jié),比如:X軸和Y軸、alpha(透明度)、colour(輪廓色、)fill(填充顏色)、linetype(線形狀)、shape(形狀)等,它們都有相應的度量函數,如表1-6-3所示。根據視覺通道映射的變量屬性,將度量調整函數分成數值型和類別型兩大類。R ggplot2的默認度量為scale_×××_identity()。需要注意的是:scale_*_manual()表示手動自定義離散的度量,包括colour、fill、alpha、linetype、shape和size等視覺通道映射參數。

表1-6-3 ggplot2常見度量調整函數

在表1-6-3中,X軸和Y軸度量是控制坐標軸的間隔與標簽的顯示等信息,會在1.6.4節(jié)時再進行詳細介紹。顏色作為數據可視化中尤為重要的部分,colour和fill會在1.7節(jié)時再進行詳細介紹。在實際的圖表繪制中,我們很少使用,因為這很難觀察到透明度的映射變化。每個度量調整函數的具體參數可以使用RStudio的“help”界面或者查看ggplot2的官方手冊ggplot2的官方手冊:https://ggplot2.tidyverse.org/reference/index.html

圖1-6-9為散點圖不同度量的調整效果,圖1-6-9(a)是將數值離散型變量age映射到氣泡的大小(size),再使用scale_size(range=c(a, b))調整了散點大小(size)的度量,range表示視覺通道映射變量轉化后氣泡面積的映射顯示范圍。圖1-6-9(b)是在圖1-6-9(a)的基礎上添加了顏色的映射,使用scale_fill_distiller(palette="Reds")函數將數值離散型變量age映射到紅色漸變顏色條,其中,direction= 0表示顏色是從淺到深漸變的(注意:需要加載RColorBrewer包,才能使用“Reds”顏色主題)。圖1-6-9(c)是將類別離散型類別變量Class映射到不同的填充顏色(fill)和形狀(shape),使用scale_*_manual()手動自定義fill和shape的度量。圖1-6-9(d)是將數值離散型變量age和類別離散型變量Class分別映射到散點的大小(size)和填充顏色(fill),然后scale_size()和scale_fill_manual()分別調整氣泡大小(size)的映射范圍與填充顏色(fill)的顏色數值。

圖1-6-9 不同的度量調整效果

關鍵是,要學會合理地使用視覺通道映射參數,并調整合適的度量。可視化最基本的形式就是簡單地把數據映射成彩色圖形。它的工作原理就是大腦傾向于尋找模式,你可以在圖形和它所代表的數字間來回切換。1985年,AT&T貝爾實驗室的統(tǒng)計學家威廉·克利夫蘭(William Cleveland)和羅伯特·麥吉爾(Robert McGill)發(fā)表了關于圖形感知和方法的論文[18]。研究焦點是確定人們理解上述視覺暗示(不包括形狀)的精確程度,最終得出如圖1-6-10所示的數值型數據使用不同視覺暗示的精確程度排序。

圖1-6-10 克利夫蘭和麥吉爾的視覺暗示排序[18]

我們能用到的視覺暗示通常有長度、面積、體積、角度、弧度、位置、方向、形狀和顏色(色相和飽和度)。所以正確地選擇哪些視覺暗示就取決于你對形狀、顏色、大小的理解,以及數據本身和目標。不同的圖表類型應該使用不同的視覺暗示,合理的視覺暗示組合能更好地促進讀者理解圖表的數據信息。如圖1-6-11所示,相同的數據系列采用不同的視覺暗示的組合共有6種,分析結果如表1-6-4所示。

表1-6-4 圖1-6-11系列圖表的視覺暗示組合分析結果

圖1-6-11 不同視覺暗示的組合結果

根據表1-6-4可知,圖1-6-11 (f)是最優(yōu)的視覺暗示組合結果,既能保證很容易區(qū)分數據系列,也保證圖表很美觀,同時也適應于彩色與黑白兩種印刷方式。當圖1-6-11(f)采用黑白印刷時,色相視覺暗示會消除,只保留位置+方向+形狀,如圖1-6-11(c)所示,但是這樣也能容易區(qū)分數據系列,保證讀者正確、快速地理解數據信息。表1v6-5展示了圖1-6-11系列圖表的視覺暗示組合代碼與說明。

表1-6-5 圖1-6-11系列圖表的視覺暗示組合代碼與說明

在表1-6-5中,我們需要重點理解fill、color、size、shape等視覺通道映射參數的具體位置,何時應該在aes()內部,何時應該在aes()外部的區(qū)別。

當我們指定的視覺通道映射參數需要進行個性化映射時(即一一映射),應該寫在aes()函數內部,即每一個觀測值都會按照我們指定的特定變量值進行個性化設定。典型情況是需要添加一個維度,將這個維度按照顏色、大小、線條等方式針對維度向量中每一個記錄值進行一一設定。

當我們需要統(tǒng)一設定某些圖表元素對象(共性,統(tǒng)一化)時,此時應該將其參數指定在aes()函數外部,即所有觀測值都會按照統(tǒng)一屬性進行映射,例如size=5, linetype="dash",color="blue"。典型情況是需要統(tǒng)一所有點的大小、顏色、形狀、透明度,或者線條的顏色、粗細、形狀等。這種情況下不會消耗我們數據源中的任何一個維度或者度量指標,僅僅是對已經呈現(xiàn)出來的圖形元素的外觀屬性做了統(tǒng)一設定。

主站蜘蛛池模板: 东阿县| 丘北县| 襄樊市| 商洛市| 达孜县| 蛟河市| 五寨县| 昭觉县| 密山市| 崇左市| 潼关县| 阳山县| 文安县| 会理县| 通道| 沁阳市| 张家口市| 延津县| 巴彦县| 长宁县| 内黄县| 岳池县| 晴隆县| 太保市| 威宁| 渝中区| 焉耆| 雷山县| 吉木乃县| 彰化市| 漾濞| 桃园市| 绥阳县| 宁乡县| 宜章县| 神池县| 芒康县| 曲水县| 罗定市| 乐陵市| 蒙城县|