如何用RColorBrewer包配置自己需要的顏色
- 使用RColorBrewer中默認的顏色
RColorBrewer中的配色方案可以說是高大上啦,基本能夠滿足大部分的使用場景
我們先來看看主要有哪些顏色,先看圖

從上圖可以看出,顏色分了三個區(qū)域,分別對應的是三個類型,從上到下依次是:
1,seq類型:單漸變色,一種主色由淺到深
2,qual類型:區(qū)分色,幾種區(qū)分度很高的顏色組合
3,div類型:雙漸變色,一種顏色到另外一種顏色的漸變,有兩種主色
先運行這句話,看看文本版的顏色描述
brewer.pal.info

如上圖,
第一列就是顏色名,比如第一個叫"BrBG";
第二列maxcolors是該顏色最大數(shù)量,比如"BrBG"類型最多支持11種顏色區(qū)分。
第三列category就是前面講的三種配色類型啦。
第四列colorblind表示是否對色盲友好。
用display.brewer.pal可以看各種配色類型的具體情況,比如:
display.brewer.pal(11,"PuOr")
橙紫雙色漸變:

display.brewer.pal(9,"OrRd")
紅色的單色漸變

好,講到這里應該對RColorBrewer里面的顏色都熟悉了。
接下來就可以生成RColorBrewer包中自己喜歡的顏色庫了。
先看看顏色存儲格式:
brewer.pal(9,"OrRd")

可以看出,RColorBrewer包中的顏色都是以某種編碼形式保存的,一類顏色可以看作是一個某種格式的向量
- 配色方案1:任意選取一種顏色保存在mycolors中
mycolors<-brewer.pal(9,"YlGnBu")
plotCol(mycolors)

- 配色方案2:選取幾種顏色組合保存在mycolors中
mycolors<-c(brewer.pal(3,"YlGnBu"),brewer.pal(3, "YlOrRd"),brewer.pal(3,"PuOr"))
plotCol(mycolors)

- 配色方案3:生成自己定制的28階漸變色
cols<-brewer.pal(3, "YlOrRd")
pal<-colorRampPalette(cols)
mycolors<-pal(28)
plotCol(mycolors)

因為RColorBrewer中seq最多只支持9種,所以想自己定制的可以用第三種方法。
把配置好的顏色用在ggplot2繪圖系統(tǒng)中
我們用airquality數(shù)據(jù)集作為示例數(shù)據(jù)集
先用ggplot簡單畫一下
ggplot(data=airquality,aes(x = Wind,y = Temp) ) +
geom_point(aes(color=factor(Day)) )
效果如下:

因為不同系列的顏色種類太多,所以在這里用ggplot默認的顏色映射到day緯度效果一般。
下面我們換成我們自己配的顏色mycolors,采用上面提到的第三種方案,把28種改成31種,因為day的種類有31種,也就是31天
cols<-brewer.pal(3, "YlOrRd")
pal<-colorRampPalette(cols)
mycolors<-pal(28)
plotCol(mycolors)
顏色準備好后,可以開始畫圖了,這里用scale_color_manual定制day的顏色名,代碼如下:
ggplot(data=airquality,aes(x = Wind,y = Temp) ) +
geom_point(aes(color=factor(Day)) ) +
scale_color_manual("Day",values = mycolors)
不多說,看效果:

可以看出,對于這種超過10種分類的維度,采用單色多階的配色方案顯示效果不錯。