RColorBrewer | R语言中的配色方法汇总(Ⅰ)

RColorBrewer是R语言中用于颜色选取的工具包,尤其适合地图上色。它包含seq(连续),qual(无序分类)和div(有特殊中间值)三种颜色系列。display.brewer.all()函数可以展示所有颜色系列,而display.brewer.pal()和brewer.pal()则分别用于查看特定系列的颜色和获取颜色的16进制编码,后者常用于地图或其他可视化中设定颜色。brewer.pal.info数据集提供了每个系列的最大分割数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 RColorBrewer工具包

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

library(RColorBrewer)

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

display.brewer.all()

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

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

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

  • 第一类颜色是单种颜色由浅到深的梯度变化,记作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")

display.brewer.pal()

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

display.brewer.pal(n, name)
  • n:颜色分割的个数;

  • name:颜色系列的名称。

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

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

分割成9份的效果如下:

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

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")) # 颜色参数

相关网站

  • http://www.colorbrewer.org

  • https://colorbrewer2.org

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值