離散顏色標度連續化的最佳實踐
今天給大家介紹一個ggplot2連續顏色映射函數中一組非常好用的預設函數,它可以很容易的幫我們實現特定離散顏色間的均勻連續化。
說的不那麼專業一點兒,就是如果遇到有連續型變數要使用顏色來表達,那麼通常我們需要自己指定低值、中間值或者高值所代表的顏色,但是以下我介紹的函數則可以直接將RcolorBrewer的標準離散顏色色板通過均勻差值的方式實現連續化。
scale_colour_distiller(type = "seq",palette=1,direction= -1,na.value = "grey50",guide = "colourbar")nscale_fill_distiller(type = "seq",palette = 1,direction =-1, na.value = "grey50",guide = "colourbar")n
以上參數中,type即是指定色盤類別,仍然是三大類別,palette指定色盤代號或者名稱,direction指定方向,na.value指定缺失值顏色,guide指定最終圖例的樣式。
以上兩個配對函數即是我今天要講解的主要內容,這兩個函數是用於線條顏色(含字體)、填充顏色的的標度函數,其將RcolorBrewer色盤中的所有離散顏色組合通過均勻差值連續化,給我們在提供連續性變數的顏搭配了提供了很大的便利,因為RcolorBrewer色盤本身就是專為圖形序列配色量身定製的,儘管其開發之初的主要意圖是為滿足離散序列的科學化顏色搭配,但是將其用於連續化場景也是很棒噠。
library(ggplot2)nggplot(faithfuld) +geom_tile(aes(waiting,eruptions,fill=density))n
當你使用一個默認的連續性映射時,ggplot2會給你的圖表設定一個默認的連續性顏色漸變。如果要自定義,你可能要寫成這樣:
ggplot(faithfuld) +geom_tile(aes(waiting,eruptions,fill=density))+nscale_fill_gradient2(low="yellow",mid="orange",high="red",midpoint=.02)n
但是當你使用以上所提到的函數進行標度的設置之後,你無須進行顏色的制定了,可以直接通過封裝的RcolorBrewer標度函數,設置色盤即可完成離散色盤色連續化。
ggplot(faithfuld) +geom_tile(aes(waiting,eruptions,fill=density))+nscale_fill_distiller(palette="Blues",direction =1)+ntheme_void()nggplot(faithfuld) +geom_tile(aes(waiting,eruptions,fill=density))+nscale_fill_distiller(palette="Greens",direction =1)+ntheme_void()nggplot(faithfuld) +geom_tile(aes(waiting,eruptions,fill=density))+nscale_fill_distiller(palette="Reds",direction =1)+ntheme_void()n
非常推薦大家使用RcolorBrewer中的seq色板中的顏色組合來搭配連續性變數的顏色標度映射,因為這種顏色組合本身就出自同一個色系,用於連續性標度的表達堪稱完美。
當然雙向漸變的離散顏色組合或者多分類色組也是支持這種方式進行連續化的。當然如果是帶有負值的變數,使用這種雙向漸變進行連續化映射絕對是恰到好處。
ggplot(faithfuld) +geom_tile(aes(waiting,eruptions,fill=density))+nscale_fill_distiller(palette="RdYlBu")+ntheme_void()nggplot(faithfuld) +geom_tile(aes(waiting,eruptions,fill=density))+nscale_fill_distiller(palette="RdYlGn")+ntheme_void()n
ggplot(faithfuld) +geom_tile(aes(waiting,eruptions,fill=density))+nscale_fill_distiller(palette="Set1")+ntheme_void()n
但是多分類顏色連續化以後看著就多少有些怪怪的。
RcolorBrewer包中所有離散色組顏色名稱列表:
以下是RcolorBrewer官方網站的地址,網站上 提供整個配色庫中所有顏色組合的Excel宏文件下載渠道,可以作為日常報表配色、圖形配色甚至PPT配色的很好參考依據,每一個職場人都應該了解一下~
colorbrewer
關於RcolorBrewer的內容,請看這幾篇舊文:
R語言顏色綜合運用與色彩方案共享
一個神奇的配色網站~
-----------
本文小節:
---------
連續性的配色方案著實不好搭配,本小節跟大家介紹的這兩個源自於RcolorBrewer的顏色標度調整函數,可以將該包中所預設的所有離散色組全部通過均勻差值的方式連續化,提供給連續性標度配色使用,給我們提供了更為高效的顏色標度調整方案。
聯繫方式:
微信:ljty1991
博客主頁:raindu』s home
個人公眾號:數據小魔方(datamofang)
團隊公眾號:EasyCharts
推薦閱讀:
※R語言 RStudio快捷鍵總結
※R語言文本挖掘包安裝方法匯總
※北京歷史空氣質量數據可視化~
※[原]打造數據產品的快速原型:Shiny的Docker之旅
※當古代文人參加「中國好詩人」節目 | R爬蟲&可視化第2季