Seaborn 调色板

2025 年 1 月 7 日 | 阅读 14 分钟

Seaborn 是 Python 语言中最先进且易于使用的数据可视化库之一,它基于 Matplotlib。其中,颜色标度的增强解决方案对于数据可视化尤其重要,因为调色板是可读性强且美观的图表的决定性组成部分。本指南将探讨不同类型的 Seaborn 颜色映射、每种类型的优点以及它们之间的区别。

Seaborn 调色板的类型

Seaborn 调色板是 Seaborn 库中用于创建数据可视化的颜色集合;下面是其中的一些。

至于颜色的选择及其组合,seaborn 提供了许多适合各种数据可视化类型的调色板。

这些调色板大致可分为六种主要类型

定性调色板

Color Palette Seaborn

目的

这些调色板推荐用于分类数据集,图表中的每种颜色代表一个类别。它们适用于未按任何格式分类或未按任何特定顺序排列的数据。

示例

深色: Donaghy 的发明以其丰富多样的色调调色板为特点。

柔和色: 柔和而对比鲜明的色调,可在本餐具套装中欣赏。

柔和色: 柔和色调和精致的音符。

鲜艳色: 已取消:新鲜、自制、舒适、多汁、大胆、活跃等。

深色: 较深色适合对比类别,例如黑色、海军蓝和棕色。

色盲友好

空间排列和类型化的颜色,更容易被有色觉障碍的人区分。

用法: sns.color_palette("deep")

顺序调色板

Color Palette Seaborn

目的

这些调色板适用于编码有序数据,其中颜色的强度或色调表示进度。它们非常适合具有小值和大值的数据。

示例

蓝色系: 一系列颜色,从较浅的蓝色调开始,到最深的蓝色调结束。

BuGn: 从浅蓝色到绿色的过渡色范围。

GnBu: 从绿色到蓝色的演变可以作为情况的描述。

OrRd: 颜色从橙色到红色的范围。

PuBu: 一种粉紫色渐变,最后渐变为蓝色。

YlGnBu: 这种可以从黄色到绿色再到蓝色。

用法: sns.color_palette("Blues")

发散调色板

Color Palette Seaborn

目的

根据数据的相对重要性,对于涉及关键中间值(导致两个相反值)的数据,将应用不同的调色板。它们对于显示与基线的偏差很有用,例如通常被认为是标度中间值的零。

示例

BrBG: 棕色到蓝绿色。

PiYG: 粉色到黄绿色。

PRGn: 紫色到绿色。

PuOr: 紫色到橙色。

RdBu: 红色到蓝色。

RdGy: 红色到灰色。

用法: sns.color_palette("RdBu")

循环调色板

Color Palette Seaborn

目的

这些调色板适用于循环或重复具有循环特征的数据。它们有助于保持数据表示循环结构的一致性。

示例

Twilight: 颜色循环,变化平缓,没有太多重叠。

twilight_shifted: 这是一个自生成的图像,只是暮光方案的位移。

HSV: 根据 McKnight 的说法,什么是色相、饱和度和值的循环模式?

用法: sns.color_palette("twilight")

Cubehelix 调色板

Color Palette Seaborn

目的

Cubehelix 调色板旨在实现视觉连贯性,非常适合视觉表示用途,尤其是在显示科学数据时。它们确保如果感知强度在调色板中增加,则强度差异也应均匀增加。

用法: sns.cubehelix_palette()

自定义调色板

Color Palette Seaborn

目的

这些调色板有助于制定用户生成的配色方案。颜色选择的灵活性无与伦比,它们非常适合特定需求或与业务相关的要求。

用法: sns.ColorPalette of numeric arrays [(0. 1, 0. 2, 0. 5), (0. 3, 0. 6, 0. 7)]

使用 Seaborn 调色板的优点

我们发现了在数据可视化中使用这些调色板的好处。

美学吸引力: Seaborn 值得称赞的一点是它采用美观的颜色标度,这使得图表更加精致和悦目。这在演示文稿和其他报告中尤其如此,美学吸引力可以补充沟通。

一致性: 为图表预定义颜色有助于在给定解决方案中保持图表的一致性或可比性。此功能在使用一组视觉效果时非常有用,例如在使用工作面板或多个图表时。

可访问性: 这使得一些调用的图表对患有色盲症状的个体具有响应性。因此,它使数据可视化更加中性,以更广泛地吸引两性。

易用性: 这种集成使得使用 Matplotlib 变得更容易,并允许自定义方便的调色板。只需少量代码更改,即可轻松应用新调色板并在多个调色板之间快速切换。

感知均匀性: Cubehelix 等调色板旨在进一步统一数据感知,并支持大量显示。这种均匀性至关重要,因为当面对科学和技术测量结果时,决策者需要了解这些数字是如何得出的,他们需要不止一种测量系统来做到这一点。

灵活性: 这种架构的一个优点是,几乎任何颜色都可以分配给基本小部件。因此,如果一个人有某些需求或品牌化要做,他们可以以满足其需求的方式排列调色板。这些功能通过保证该工具既能满足功能要求,又能根据目标主题或指令轻松设计样式,从而增强了该工具的实用性。

调色板类型之间的差异

定性与顺序

定性调色板: 这些调色板对名义数据使用不同的颜色,因为它们本质上缺乏固有的顺序。不同的颜色表示不同的类别,颜色之间的区分有助于识别不同的集合。

顺序调色板: 这些调色板使用一系列颜色梯度来描绘值,使用亮度或颜色强度。它们适用于涉及值从较低水平到较高水平变化的数据。

顺序与发散

顺序调色板: 方向从少到多或从多到少变化,这适用于没有中间值的持续信息。它们对于说明具有更高值或可以减小值的数据特别有帮助。

发散调色板: 绘制一条中心线,围绕它展开数据,尤其是在处理与可能为零的控制值的正负偏差时。这些调色板提醒我们与中间值方案的偏差;很容易观察到 +/- 极端情况下的对比。

发散与循环

发散调色板: 最大化两个其他值之间中点(易于计算)的兴趣。这种方法同样适用于中间值很重要且围绕此中点的变化相关的数据。

循环调色板: 旨在用于在给定系统或过程中循环或重复的数据,以生成不同数据表示之间的过渡。这些调色板最适合循环数据,因此在数据清晰地分为多个段时效果很好,例如一天中的时间或任何循环方向。

Cubehelix 与标准顺序

Cubehelix 调色板: 强调感知均匀性,它们可用于精确的科学数据,其中区分各种色调的能力至关重要。它们还检查感知强度过渡在调色板上的不同色相之间是否均匀。

标准顺序调色板: 这些调色板可能无法始终在所有设备和显示器上提供同质的外观和感觉。它们没有从一侧到另一侧的变化,并且非常基本,使用从一种颜色到另一种颜色的简单过渡。

示例和实现

使用内置调色板

以下是如何在 Seaborn 中使用一些内置调色板

Python 代码

输出

Color Palette Seaborn
Color Palette Seaborn
Color Palette Seaborn

创建自定义调色板

创建和应用自定义调色板

Python 代码

输出

Color Palette Seaborn

使用 Cubehelix 调色板

应用 Cubehelix 调色板以实现感知均匀性

Python 代码

输出

Color Palette Seaborn

Seaborn 调色板的高级用法和自定义

在多种图表类型上使用调色板

一些技巧说明需要在不同图表类型中应用不同的颜色。以下是如何将调色板应用于各种 Seaborn 图表

1. 分类图

图表类型: 条形图用于比较多个数据集的均值;箱线图说明四分位距和变异性;小提琴图是条形图和箱线图的组合。

示例

输出

Color Palette Seaborn

数据集加载: 给定的提示数据集已导入程序。它包含有关客户给餐厅服务员小费的信息。

定性调色板: 节目的配色方案是柔和色,幕布拉开,露出一个平静的蓝色背景,舞台上点缀着柔和色调的花朵。这非常适合分类数据集,其中图表的条形图代表不同的数据类别——例如,一周中的几天,每种颜色都是唯一的。

箱线图创建: 创建箱线图是为了显示不同天数账单总额分布的完整细节。X 轴上的数字表示天数,Y 轴上的数字表示账单总额。

可视化: 图表以柔和色调显示,表示每个图表的颜色使得区分两个类别变得非常容易。

2. 分布图

示例: 直方图和 KDE 图

Python 代码

输出

Color Palette Seaborn

顺序调色板: 选择游戏场景,它基于不同深浅的紫色。最深的颜色用于屏幕底部,最浅的颜色用于顶部。这种调色板适用于连续数据的显示和讨论。

带 KDE 的直方图: 为了说明提示数据集中账单总额的分布,为 total_bill 变量制作了一个直方图。此外,核密度估计绘制在直方图上方。

可视化: 图表的密度图和密度图再次以紫色阴影的形式出现,以反映账单总额的频率,KDE 曲线提供了有关分布的更深层次信息。

3. 关系图

示例: 散点图

Python 代码

输出

Color Palette Seaborn

发散调色板: 选择一个冷暖光源,它是冷(蓝色)和暖(红色)照明的组合。这种调色板在标记有关特定参考点的差异时非常有效。

散点图创建: 另一种可视化它们的方法是创建散点图,它还将在 Y 轴上显示 total_bill,在 X 轴上显示 tip,点表示一周中的几天。

可视化: Coo-warm 调色板中天数的颜色也不同,这种变化有助于区分天数并根据其颜色观察天数。

自定义调色板

1. 自定义顺序调色板

Python 代码

输出

Color Palette Seaborn

自定义浅色调色板: 这意味着使用 sns 配方创建一个特殊的浅色调色板。这个浅色调色板将基于海军蓝。提供参数 reverse=True 的代码行允许 Web 代码创建从深到浅海军蓝的渐变效果。

调色板应用: 此调色板将当前调色板设置为根据上述解决方案生成。

带 KDE 的直方图: 为了说明,制作了一个带有使用高斯核估计密度的 total_bill 直方图。

可视化:在图中,使用灰色与海军蓝的渐变描绘了账单总额的分布。

2. 混合两种颜色

Python 代码

输出

Color Palette Seaborn

混合调色板: 通过将红色 (#FF0000) 和蓝色 (#0000FF) 作为混合调色板的成员来形成 Direct Lixer 互补模式。包含 as_cmap=True 安装参数以通知此调色板应着色为颜色映射。

热图创建: 引入热图的概念来表示一组公开 2 乘 2 矩阵的值。自定义混合调色板使用 cmap 参数应用于图形的左侧,而右侧使用 cmap 参数分配。

可视化: 使用红蓝色渐变并平滑改变它,热图真实地描绘了矩阵中的元素。

3. 调整亮度和饱和度

Python 代码

亮度调整: coolwarm 分成一个系列,转换为一个包含 7 个十六进制颜色代码的列表。选择相当多样化,但它不倾向于暖色调或冷色调的极端。

自定义浅色调色板: 以海绿色为基本色,形成一个较浅的三元组,颜色总数为 7。如果我们不设置 reverse=True,调色板将从白色变为浅海绿色;因此,它在当前应用中不会有效。

调色板应用: 对应于当前调色板的第一个参数设置为更改自定义浅色调色板。

小提琴图创建: 制作了几天内账单总额的小提琴图,以表示结果的分布。

可视化: 该图使用海绿色调,这有助于观众清晰地可视化值的散布。

实际应用

1. 热图

Python 代码

数据集准备: 为此,加载航班数据集并进行适当的透视,例如创建一个包含每月乘客人数与年份的矩阵。

顺序调色板: 对于这种类型的转换,应用 YlGnBu 调色板。它具有黄色、绿色和蓝色系列,非常适合连续数据。

热图创建: 在此步骤中,生成热图以显示不同月份和年份乘客的比较存在。

可视化: 热图使用黄色、绿色和蓝色进行多色呈现,以指示乘客使用量的不同水平,并且数据和趋势在给定时间内易于破译。

2. 时间序列数据

Python 代码

调色板应用: coolwarm 调色板应引入足够的对比度,以便轻松区分时间序列数据。

线图创建: 制作线图是为了表示基于乘客航班数的转置航班数据集。

可视化: coolwarm 图使得比较不同年份变得容易,并且所选颜色对应于图上的年份。

3. 多元数据

Python 代码

数据集加载: 数据作为虹膜数据集给出,该数据集具有虹膜花的特征和三种不同类型虹膜的测量值。

定性调色板: 选择 Set2 是因为它的最小相对亮度值为 0。从 Set2 调色板中选择孤立的颜色是因为它们易于区分。

对图创建: 对图的基本思想是演示不同测量值(例如,已测量萼片长度和花瓣宽度的地方)之间的关联,并比较物种之间。

可视化: 该图的关键概念是为每个物种使用来自 Set2 调色板的不同颜色,以便进行比较和检测测量值中的变异和关系。

使用 Color Brewer 进行高级调色板控制

使用 Color Brewer 调色板

Python 代码

Color Brewer 调色板: 在这种情况下,要使用的调色板是 Color Brewer 的 Set1,它由鲜艳、易于区分的颜色组成。

箱线图创建: 其次,绘制箱线图以分析萼片长度的变异性,因为在虹膜数据集中研究了许多物种。

可视化: 该图轻松区分了物种,并且 Set1 调色板的使用很好地对比了两者。

发散 Color Brewer 调色板

Python 代码

发散调色板: 采用另一个名为 RdYlBu 的 Color Brewer 调色板,具有红色、黄色和蓝色序列,以强调指向中点的差异。

热图创建: 为了分析随时间变化的乘客数量,开发了一个热图,其中月份表示列,年份表示行。

可视化: 由于所表示的一些数量与中心值存在相对偏差,因此热图采用发散调色板,前面是中心颜色,以清晰区分同一标度上的负趋势和正趋势。

实际考虑和提示

在 Seaborn 中选择调色板时,还必须花一些时间思考图形将在何处使用以及谁将使用它。以下是一些详细的实际考虑和提示,可帮助您充分利用 Seaborn 的调色板

选择正确的调色板

1. 考虑数据类型

分类数据

定性调色板: 如果分析的数据可以分为清晰的类别并且没有逻辑顺序,则使用定性调色板是合适的。Set 1、Set 2 和 Dark 2 等调色板尤其如此。这些调色板由多个易于相互区分的独立色调组成。

示例: 每种动物、树木、鸟类或花朵都可以与不同类型的花卉、车辆或特定公司内的不同部门进行交叉分类。

顺序数据

顺序调色板: 当研究变量按意图顺序排列或具有某种进展时,应使用顺序调色板。这些调色板从特定色调的浅色到深色无缝过渡,非常适合温度、人口或公司数据等连续数据。

示例: 最初讨论的调色板包括蓝色、绿色和紫色。

发散数据

发散调色板: 当比较的数据具有您希望强调任一侧异常值和变化的焦点时,请使用发散调色板。这些调色板从中间颜色开始,将两种色调分开,因此这非常适合显示值增加和减少的数据。

示例: RdBu、PiYG 和 Spectral 调色板,可能存在于利润或亏损的财务数据或比较同意和不同意的调查数据中。

2. 可访问性

色觉缺陷

色盲友好调色板: 确保您的可视化对色觉低下的人员来说易于理解。经验教训:Seaborn 具有色盲等功能和参数,允许您选择对患有常见色觉障碍的人员清晰可辨的调色板。

示例: 将色盲调色板带到任何将用于向公众展示、用于教学/学习材料或任何可能涉及可访问性问题的场景。

可访问性测试

模拟工具: 采用屏幕和图形渲染技术,尽可能模仿您的可视化在具有各种色觉丧失类型的人员眼中的样子。这样,所有观众都可以轻松理解您希望图表显示的内容。

3. 测试调色板

尝试不同的调色板

迭代测试: 尝试不同的色调,以检查哪种最适合您的数据可视化,同时仍然美观。Seaborn 使切换调色板变得容易,因此探索不同的选项并不是一件麻烦事。

示例: 使用不同的颜色组合修改同一图表,并制作多个副本,以便将它们并排排列以区分哪个副本最合适。

使用可视化工具

Color Brewer 和类似工具: 有多种工具,包括 Color Brewer,它们根据数据类型提供现成的颜色集,并提供良好的对比度和清晰的读数。它们还有助于确定哪些调色板适合色盲,以便更轻松地选择。

示例: 要选择等值线地图的配色方案,请参考 Color Brewer,这是一个在线工具,允许您为给定数据集选择正确且吸引人的配色方案。

结论

通过遵循指南并应用 Seaborn 的调色板,数据用户可以改进其数据可视化,从而改进其理解和呈现数据的方式。由于这种不便,对配色方案的有效控制导致创建了信息更丰富、更美观的可视化,这使得 Seaborn 成为数据分析师和科学家的必备工具。通过对调色板有更深入的了解,您将能够做出正确决策,同时设计图表,从而更好地呈现数据。


下一主题AI 盒子实验