Seaborn 调色板

在前面,我们使用 Matplotlib 绘图时,需要自行指定多种颜色,当需要的颜色比较多时,非常不方便。

使用 Seaborn 库进行绘图就不需要担心这类问题啦,Seaborn 为了我们提供了在诸多使用的调色板~

首先,第一步还是导入工具包并执行魔法指令:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

%matplotlib inline

离散色板

下面是我们使用 Seaborn 库绘制多组数据时默认的颜色:

data = np.random.normal(size=(20, 6)) + np.arange(6) / 2

sns.set_style("whitegrid")
sns.boxplot(data=data)

使用 sns.color_palette() 即可获取当前使用的色板,使用 sns.palplot 可以绘制色板:

current_palette = sns.color_palette()
sns.palplot(current_palette)

上述 6 个盒图使用的就是色板中的前 6 种颜色。那如果我们需要的颜色比默认的画板提供的颜色更多怎么办呢?

我们可以使用 hls 颜色空间的画板,均匀产生出指定个数的颜色,并且所有颜色的亮度和饱和度是一致的。

sns.palplot(sns.color_palette("hls", 12))

在绘图时只需要指定 palette 关键字参数为指定的调色板即可:

sns.boxplot(data=data, palette=sns.color_palette("hls", 6))

实际绘图时,我们经常会在刚开始指定好调色板,类似于绘图风格的设定 sns.set_style ,Seaborn 使用 set_palette 设置所有图的颜色。

使用 hls 调色板时,还可以使用 hls_palette() 函数来控制颜色的亮度和饱和度。

  • l - 亮度 lightness
  • s - 饱和 saturation

下面产生饱和度为 0.9 ,亮度为 0.7 的 10 种颜色:

sns.palplot(sns.hls_palette(10, l=0.7, s=0.9))

使用 hls_palette 调色板绘图:

sns.boxplot(data=data, palette=sns.hls_palette(6, l=0.7, s=0.9))

此外,sns.color_palette 还可以按对儿产生颜色:

sns.palplot(sns.color_palette("Paired",10))

使用上述调色板绘图:

sns.boxplot(data=data, palette=sns.color_palette('Paired', 6))

连续色板

sns.palplot(sns.color_palette("Blues"))

翻转色板颜色:

sns.palplot(sns.color_palette("Blues_r"))

连续色板常见的还有 cubehelix 线性色板:

sns.palplot(sns.color_palette("cubehelix", 10))

sns.cubehelix_palette 进一步指定线性变化的范围:

sns.palplot(sns.cubehelix_palette(10, start=.5, rot=-.75))
sns.palplot(sns.cubehelix_palette(10, start=.75, rot=-.150))

使用 light_palette 指定亮色调的连续色板:

sns.palplot(sns.light_palette("green", 10))

使用 dark_palette 指定暗色调的调色板:

sns.palplot(sns.dark_palette("purple", 10))

将色板翻转,只需要指定 reverse=True 参数即可:

sns.palplot(sns.light_palette("navy", 10, reverse=True))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容