title: 学习 seaborn [05]: 调色板 slug: color-seaborn date: 2020-12-14 tags:
- seaborn
- python category: 数据分析 link: description: type: text
选择调色板
调色板是一组颜色搭配方案,绘图时候程序从中选取颜色进行数据可视化。调色板中颜色之间的色相、饱和度、明度等差异,区别出不同系列的数据关系,因此调色板比其他元素更加影响绘图的视觉效果。
seaborn提供了一些现成的配色方案,也可以利用其提供的函数自定义调色板。
调色板分类
- 定性调色板:一组在视觉上有差异的颜色,用于区分不具有内在顺序的离散数据;
- 顺序调色板:一组视觉温度递增或递减的颜色,一般是单一色相,也可以是多种色相,用于当数据集的范围从相对低值(不感兴趣)到相对高值(很感兴趣)时;
- 发散调色板:一组颜色的中间位置颜色的视觉温度最亮或最暗,然后分别向两端递增或递减,用于当数据集的低值和高值都很重要,且数据集中有明确定义的中点时。
生成调色板的函数
可生成三种调色板的函数
color_palette():生成调色盘,接受所有的seaborn调色板或者matplotlib Colormap或者Color Brewer库的配色方案,返回RGB元组的列表;set_palette():接受与color_palette()相同参数,设置所有图像的默认配色方案;xkcd_rgb():使用xkcd颜色名字设置单一颜色;xkcd_palette():使用xkcd颜色名字生成调色板,适用于各种调色板;choose_colorbrewer_palette():通过交互式组件辅助进行Color Brewer库的配色方案选择,适用于各种调色板,只能在Jupyter Notebook中使用;
用于生成定性调色板的函数
hls_palette():使用hls颜色空间生成间距相等的颜色(色调变化,明度和饱和度不变),适用于定性调色板;husl_palette():使用HSLuv颜色空间生成间距相等的颜色,比上述hls更符合人眼视觉感受,适用于定性调色板;
用于生成顺序调色板的函数
cubehelix_palette():使用cubehelix调色板系统生成配色方案,适合黑白打印,且对色盲友好,适用于顺序调色板;choose_cubehelix_palette():通过交互式组件辅助进行cubehelix调色板的配色方案选择,只能在Jupyter Notebook中使用;light_palette()和dark_palette():指定一个颜色,会由明向暗或由暗向明生成一组颜色,适用于顺序调色板;
用于生成发散调色板的函数
diverging_palette():用来创建发散调色板;choose_diverging_palette():通过交互式组件辅助进行发散调色板的配色方案选择,使用HSLuv颜色空间,只能在Jupyter Notebook中使用;
生成调色板的方式
seaborn中生成调色板的方式大致有三种:
- 直接指定一组颜色代码或名字,如
color_palette()、xkcd_palette(); - 从现成的配色方案中选取,如
color_palette()中直接使用seaborn内置配色方案,或从Color Brewer网站上挑选; - 利用函数生成配色方案,如
hls_palette()、husl_palette()、cubehelix_palette()、light_palette()、dark_palette()、diverging_palette()。
如果绘图时没有特殊的美学需求,方便起见可以直接使用现成的配色方案。
seaborn内置配色方案
seaborn内置配色方案有六种,下图从上到下依次为deep(默认), muted, pastel, bright, dark, 和colorblind。






Color Brewer库中的配色方案
Color Brewer库为三种类型调色板都提供了不少美观的配色方案,并且对色盲友好。
Color Brewer库地址:http://colorbrewer2.org
登陆网站后,通过选择调色板类型,颜色数量,配色方案,会得到配色方案的名称。

如上图中是个顺序调色板,配色方案名字叫PuBuGn,颜色数量是3,传递给color_palette()函数,可生成对应的调色板。
