ggthemes/Stanford 的分类法提供三类调色板:定性分类(regular)、顺序渐变(ordered-sequential)、发散对比(ordered-diverging),涵盖从经典 Tableau 10 到专业无障碍配色的数十种方案
⚠️ 说明:本文采用 ggthemes(R 包)和 Stanford Vis Group 的调色板分类体系(Regular / Ordered-Sequential / Ordered-Diverging),而非 Tableau 软件自身的分类方法。Tableau 产品中采用 Categorical(分类)/ Ordinal(有序)/ Quantitative Sequential(定量顺序)/ Quantitative Diverging(定量发散)的分类方式。本文仅说明如何在这些工具中使用 Tableau 的经典配色。
本文介绍 ggthemes(R 包)和 Stanford Vis Group 颜色分析器 中可用的 Tableau 配色方案——注意这不是 Tableau 软件内置的分类体系,而是数据分析工具中如何使用这些经典配色。Tableau 之所以在数据可视化领域备受推崇,除了强大的 VizQL 引擎,还有一整套经过精心设计的默认配色方案。这些调色板由 Maureen Stone 等色彩专家设计,兼顾了美观性、可读性和色盲友好性。
一、三类调色板概览
ggthemes/Stanford 的分类法 提供三种类型的调色板,分别对应不同的数据特征和分析需求:
| 类型 | 英文 | 适用场景 | 代表调色板 |
|---|---|---|---|
| 定性分类 | Regular | 离散类别,如产品线、地区 | Tableau 10 / Tableau 20 |
| 顺序渐变 | Ordered-Sequential | 有序连续数据,如销售额、密度 | Blue / Orange / Green |
| 发散对比 | Ordered-Diverging | 有正负两极的数据,如同比变化 | Orange-Blue / Red-Green |
二、定性分类调色板(Regular)
定性调色板用于 离散的、无顺序关系的分类数据。
Tableau 最经典的 Tableau 10 就是这一类,包含 10 种经过精心挑选的颜色,确保相邻类别在视觉上容易区分。
Tableau 10 是 Tableau 的默认配色,适用于大多数分类场景。10 种颜色涵盖了蓝、橙、红、青、绿、黄、紫、粉、棕、灰,色彩跨度大,相邻色区分度高。
Tableau 10:
#5778a4
#e49444
#d1615d
#85b6b2
#6a9f58
#e7ca60
#a87c9f
#f1a2a9
#967662
#b8b0ac
Tableau 20 是 Tableau 10 的扩展版本,每种颜色加入了一个浅色变体。当分类数量超过 10 个时使用,注意浅色变体在浅色背景上可能辨识度不足。
颜色名称距离矩阵(Color Name Distance)
以下矩阵来自 Stanford Vis Group 的 Color Palette Analyzer(Heer & Stone, CHI 2012)。每个单元格 = 两个颜色的「名称距离」——基于 XKCD 数万人的颜色命名调查数据,衡量人们用多「不同」的词来描述两个颜色。距离越大,越不容易叫混。
Color Blind 色盲友好配色
色盲友好配色使用橙-蓝-灰等色盲人群易区分的颜色组合,避免红绿搭配带来的辨识困难。
Color Blind:
#377eb8
#ff7f00
#4daf4a
#f781bf
#a65628
#984ea3
#999999
#e41a1c
#dede00更多定性调色板
- Seattle Grays:西雅图灰色系,低调专业,适合企业报告
- Traffic:交通灯配色:红-黄-绿,直观但需注意色盲友好性
- Miller Stone:Miller Stone 设计,暖色石材系
- Jewel Bright:宝石亮色,高饱和度,适合需要强调的场合
- Summer / Winter:夏季暖色 / 冬季冷色,适合季节性数据
- Hue Circle:色环,沿色相环均匀分布
三、顺序渐变调色板(Ordered-Sequential)
顺序渐变调色板用于 从低到高有明确顺序的连续数据,如销售额、温度、密度等。颜色从浅到深渐变,数值越大颜色越深。
Tableau中称之为 Quantitative。
使用建议:数值越大 → 颜色越深。顺序调色板不适合有正负值的数据。
Blue:
#D9E6F2 → #8CB2D2 → #4E79A7 → #2C5A84 → #143C61Orange:
#FDE8D2 → #F7B87A → #F28E2B → #C06816 → #8A4507Green:
#E2F0D9 → #A5D194 → #59A14F → #3C7234 → #1E4A1ARed:
#FBE5D6 → #F5977A → #E15759 → #B12E31 → #7C1517Purple:
#E9DBF0 → #C49FD4 → #B07AA1 → #7D4E79 → #4B2651Gray:
#E6E6E6 → #BAB0AC → #79706E → #4D4442 → #2A2423四、发散对比调色板(Ordered-Diverging)
发散调色板用于 有明确中点(如零值、均值)的双向数据,经典场景是同比变化的增长(正)与下降(负)。
颜色从一种色调渐变到中性色,再到另一种色调。
Orange-Blue Diverging:
#DF7C33 → #F0B27A → #F7F3EB → #9ECAE1 → #3182BDRed-Green Diverging:
#D73027 → #F59888 → #F7F7F7 → #A6D96A → #1A9641Red-Blue Diverging:
#D73027 → #F59888 → #F7F7F7 → #9ECAE1 → #3182BDTemperature Diverging:
#D73027 → #F59888 → #F7F3EB → #A6D96A → #1A9641Sunset-Sunrise Diverging:
#7B3294 → #C2A5CF → #F7F7F7 → #FDB863 → #E66101五、在 R 和 Python 中使用 Tableau 调色板
R · ggthemes 包
ggthemes 让 ggplot2 用户可以直接调用 Tableau 配色方案:
library(ggplot2)
library(ggthemes)
# 使用 Tableau 10 调色板
ggplot(mtcars, aes(factor(cyl), mpg, fill=factor(cyl))) +
geom_col() +
scale_fill_tableau("Tableau 10")
# 使用色盲友好配色
ggplot(iris, aes(Sepal.Length, Sepal.Width, color=Species)) +
geom_point(size=3) +
scale_color_tableau("Color Blind")
# 连续数据用顺序渐变
ggplot(diamonds, aes(carat, price, color=depth)) +
geom_point(alpha=0.5) +
scale_color_gradient_tableau("Blue")Python · Matplotlib
Python 用户可以通过 matplotlib 的 tableau 调色板或者第三方库使用:
import matplotlib.pyplot as plt
# Matplotlib 内置 Tableau 10
colors = plt.cm.tab10.colors # 10 色
colors_20 = plt.cm.tab20.colors # 20 色
# Tableau 10 精确 hex 值
tableau_10 = ['#5778a4','#e49444','#d1615d','#85b6b2',
'#6a9f58','#e7ca60','#a87c9f','#f1a2a9',
'#967662','#b8b0ac']
# Tableau 20 精确 hex 值
tableau_20 = ['#1F77B4','#AEC7E8','#FF7F0E','#FFBB78',
'#2CA02C','#98DF8A','#D62728','#FF9896',
'#9467BD','#C5B0D5','#8C564B','#C49C94',
'#E377C2','#F7B6D2','#7F7F7F','#C7C7C7',
'#BCBD22','#DBDB8D','#17BECF','#9EDAE5']
# 使用
fig, ax = plt.subplots()
ax.bar(range(10), range(10,0,-1), color=tableau_10)
plt.show()六、配色最佳实践
- 优先使用 Tableau 10:默认已覆盖大部分场景,色彩区分度高
- 色盲友好:选用 Color Blind 调色板,或避免红绿搭配
- 顺序数据用渐变:连续性数据务必用 sequential/diverging 而非 qualitative
- 控制颜色数量:分类超过 10 个时考虑合并小类或使用 Tableau 20
- 打印友好:Seattle Grays 等灰度系在黑白打印时仍可辨识
Tableau 调色板 = 科学配色 + 场景适配。
定性用 Tableau 10/20,连续用 Blue/Orange 渐变,双向对比用 Orange-Blue/Red-Green 发散。
配色即信息传递的第一层语言。
参考资料
- ggthemes 文档:jrnold.github.io/ggthemes
- Maureen Stone, 'Designing Colors for Data' (2007)
- Heer & Stone, 'Color Naming Models for Color Selection' (CHI 2012)
- http://vis.stanford.edu/color-names/analyzer/
No comments yet