1 RColorBrewer工具包

该包是R中常用的颜色选取工具包,它具有简单易用的特点,对于不具备太多色彩理论的读者来说也十分友好。虽然该包主要是为地图上色而设计,但也可以用于其他用途。

library(RColorBrewer)

下面就逐一介绍该包的4个函数或数据集:

display.brewer.all()

使用该函数可以展示RColorBrewer工具包中所有的颜色系列,如下:

par(plt = c(0.1,1,0,1))
display.brewer.all()



r语言中的颜色参数 r语言常用颜色_html

上图中,左侧是颜色系列的名称,右侧是对应的颜色。从图中可以看出,这些颜色系列共分为三类:

  • 第一类颜色是单种颜色由浅到深的梯度变化,记作seq(sequential);该系列的颜色主要适用于连续型变量或有序分类变量;
  • 第二类颜色的彼此差异性较大,且不具备明显的等级关系,记作qual(qualitative);该系列的颜色主要适用于无序的分类变量;
  • 第三类颜色是两种颜色分别朝两个方向由浅到深的梯度变化,记作div(diverging);该系列的颜色主要适用于中间值具有特殊意义的连续变量或有序分类变量,如摄氏温度、Logistic模型的OR值等。

display.brewer.all()函数的type参数默认为all,所以可以展示所有系列的颜色,若取值为seqqualdiv,则分别展示相应类别的颜色系列。

par(plt = c(0.1,1,0,1))
display.brewer.all(type = "seq")



r语言中的颜色参数 r语言常用颜色_css_02

display.brewer.pal()

该函数展示特定系列的颜色,它共有两个参数:

display.brewer.pal(n, name)
  • n:颜色分割的个数;
  • name:颜色系列的名称。

OrRd系列颜色为例,当我们把它分割成6份,效果如下:

display.brewer.pal(6, "OrRd")



r语言中的颜色参数 r语言常用颜色_css_03

分割成9份的效果如下:

display.brewer.pal(9, "OrRd")



r语言中的颜色参数 r语言常用颜色_正则化_04

brewer.pal.info

每个系列的颜色能被分割的份数(即参数n)都存在上限,当设置的参数n超过上限时会出现提示,如OrRd系列的上限是9。

brewer.pal.info数据集储存了所有颜色系列的一些信息,包括分割上限:

brewer.pal.info
##          maxcolors category colorblind
## BrBG            11      div       TRUE
## PiYG            11      div       TRUE
## PRGn            11      div       TRUE
## PuOr            11      div       TRUE
## RdBu            11      div       TRUE
## RdGy            11      div      FALSE
## RdYlBu          11      div       TRUE
## RdYlGn          11      div      FALSE
## Spectral        11      div      FALSE
## Accent           8     qual      FALSE
## Dark2            8     qual       TRUE
## Paired          12     qual       TRUE
## Pastel1          9     qual      FALSE
## Pastel2          8     qual      FALSE
## Set1             9     qual      FALSE
## Set2             8     qual       TRUE
## Set3            12     qual      FALSE
## Blues            9      seq       TRUE
## BuGn             9      seq       TRUE
## BuPu             9      seq       TRUE
## GnBu             9      seq       TRUE
## Greens           9      seq       TRUE
## Greys            9      seq       TRUE
## Oranges          9      seq       TRUE
## OrRd             9      seq       TRUE
## PuBu             9      seq       TRUE
## PuBuGn           9      seq       TRUE
## PuRd             9      seq       TRUE
## Purples          9      seq       TRUE
## RdPu             9      seq       TRUE
## Reds             9      seq       TRUE
## YlGn             9      seq       TRUE
## YlGnBu           9      seq       TRUE
## YlOrBr           9      seq       TRUE
## YlOrRd           9      seq       TRUE

brewer.pal()

该函数的参数名及含义与display.brewer.pal()函数完全一致,但它输出对象是颜色的16进制编码,可以直接赋值给其他函数的颜色参数。

brewer.pal(5, "OrRd")
## [1] "#FEF0D9" "#FDCC8A" "#FC8D59" "#E34A33" "#B30000"
library(tidyverse)
library(sf)
data <- albersusa::counties_sf(proj = "laea") %>%
  mutate(fips = as.character(fips)) %>%
  left_join(socviz::county_data, by = c("fips" = "id"))

plot(data["hh_income"], nbreaks = 5,
     breaks = "quantile",
     pal = brewer.pal(5, "OrRd")) # 颜色参数



r语言中的颜色参数 r语言常用颜色_正则化_05

相关网站