Matlab ColorMap

2025年03月17日 | 阅读 9 分钟

引言

MATLAB 中的颜色映射(colormap)是一个将标量数据值映射到颜色的矩阵。颜色映射矩阵的每一行对应一种颜色,而列则表示该颜色的红色、绿色和蓝色(RGB)分量。在可视化数据时,MATLAB 会将标量值线性映射到颜色映射矩阵的索引,从而为每个值分配一种颜色。

颜色映射的类型

顺序颜色映射

顺序颜色映射常用于表示有序数据,其中值从低到高变化。这些颜色映射具有平滑的颜色过渡,便于解释数据中的趋势和变化。

下面是一些更详细的例子

Parul: 'Parula' 是 MATLAB R2014b 中引入的默认颜色映射。它是感知均匀的,这意味着它在整个范围内保持颜色之间一致的感知差异。

示例

输出

Matlab ColorMap

Jet: 'Jet' 是 MATLAB 中的经典颜色映射,但需要注意的是,由于其感知属性不均匀(尤其是在灰度显示时),不建议用于科学可视化。

示例

输出

Matlab ColorMap

Hot: 'Hot' 颜色映射从黑色过渡到红色、黄色和白色。它通常用于表示与温度相关的数据,其中黑色对应低温度,白色对应高温度。

示例

输出

Matlab ColorMap

Viridis: 'Viridis' 是 MATLAB 作为“感知均匀”颜色映射系列的一部分引入的颜色映射之一。它旨在对所有类型的色觉缺陷都具有感知均匀性。

示例

输出

Matlab ColorMap

发散颜色映射

发散颜色映射非常适合突出偏离中心参考点的正负偏差。这些颜色映射通常使用两种不同的颜色,从中间的灰色点发散开。

让我们深入了解一些例子

Coolwarm: 'Coolwarm' 从蓝色(负值)平滑过渡到白色(中间点),然后再过渡到红色(正值)。

示例

输出

Matlab ColorMap

Bwr (蓝-白-红): 'Bwr' 颜色映射由表示负值的蓝色、表示零值的白色和表示正值的红色组成。它提供了从中心参考点偏差的清晰视觉表示,其中蓝色和红色分别表示负偏差和正偏差。

示例

输出

Matlab ColorMap

循环颜色映射

循环颜色映射适用于极端值会循环的数据,例如角度或周期性数据。这些颜色映射在最高值和最低值之间无缝过渡,没有任何可感知的间断。这里有两个例子

Hsv: 'Hsv' 颜色映射在色调-饱和度-值颜色空间中表示颜色。它平滑地遍历色轮的所有色调,适合周期性数据。

示例

输出

Matlab ColorMap

Twilight: 'Twilight' 是另一种循环颜色映射,它平滑地过渡到各种色调,为周期性数据提供了视觉上吸引人的表示。它可以自定义以根据可视化需求调整亮度和饱和度。

示例

输出

Matlab ColorMap

定性颜色映射

定性颜色映射表示类别或离散数据,需要不同的颜色来区分不同的类别。

一些例子包括

Lines: 'Lines' 颜色映射包含一组适合表示图中不同类别或组的独特颜色。每种颜色都易于区分,使其成为定性数据可视化的理想选择。

示例

输出

Matlab ColorMap

Prism: 'Prism' 颜色映射提供了一系列鲜艳而独特的颜色,适合可视化具有多个组或类别的类别数据。它提供了视觉上吸引人的表示,同时又不牺牲清晰度。

示例

输出

Matlab ColorMap

Flag: 'Flag' 颜色映射包含大胆而对比鲜明的颜色,适合突出图中类别差异。当可视化具有少量不同类别的数时,它特别有用。

示例

输出

Matlab ColorMap

自定义颜色映射

MATLAB 提供了各种自定义颜色映射的选项,以满足特定的可视化需求。

更改颜色映射长度

您可以使用 `colormap` 函数调整颜色映射中的颜色数量。默认情况下,MATLAB 颜色映射的长度为 64,但您可以指定不同的长度以实现更平滑或更详细的颜色过渡。例如

反转颜色映射

要反转颜色映射中的颜色顺序,您可以使用 `flipud` 函数。这对于改变可视化中的颜色过渡方向非常有用。例如

创建自定义颜色映射

MATLAB 允许您创建量身定制的自定义颜色映射以满足您的特定需求。您可以将颜色映射定义为一个矩阵,指定每种颜色的 RGB 值。例如

您还可以使用 `rgbplot` 和 `colorGradient` 等工具来帮助创建自定义颜色映射。

使用颜色条解释颜色映射

使用颜色映射可视化数据时,务必在图旁边包含颜色条。这允许查看者解释颜色与数据值的映射关系。您可以自定义颜色条以显示相关的刻度、标签和单位,为可视化提供额外上下文。

例如

将颜色映射应用于特定绘图

您可以将不同的颜色映射应用于同一图形内的特定绘图或不同图形之间。这种灵活性允许您根据每个绘图的数据特性优化其视觉表示。

例如

实施

输出

Matlab ColorMap

说明

上面的 MATLAB 程序通过一系列散点图、曲面图和颜色条演示了各种颜色映射自定义选项。以下是对程序每个部分作用的简短而简洁的解释

创建示例数据: 为可视化目的生成示例数据(xy)。

自定义颜色映射

  • 将默认 Parula 颜色映射的长度更改为 128(original_parula)。
  • 反转 Parula 颜色映射以创建新的颜色映射(reversed_parula)。
  • 定义一个具有四种指定颜色的自定义颜色映射(custom_map)。

创建图形: 初始化一个新图形用于绘图。

使用不同的颜色映射进行绘图

  • 在一个子图中,使用原始 Parula 颜色映射绘制示例数据。
  • 在另一个子图中,使用反转的 Parula 颜色映射绘制示例数据。
  • 在另一个子图中,使用自定义定义的颜色映射绘制示例数据。
  • 在另一个子图中,使用 Jet 颜色映射绘制示例数据,并添加带有自定义刻度标签的颜色条。
  • 在另一个子图中,使用 Jet 颜色映射绘制曲面图。
  • 在另一个子图中,使用带有线性颜色插值的默认 Parula 颜色映射绘制示例数据。

调整布局和显示

  • 将整个图形的标题设置为“组合颜色映射自定义示例”。

每个子图都演示了颜色映射自定义的不同方面,例如更改颜色映射长度、反转颜色映射、定义自定义颜色映射、添加颜色条、将颜色映射应用于特定绘图以及颜色插值。该程序提供了这些颜色映射自定义选项如何影响绘图外观的视觉表示。

颜色映射使用的最佳实践

选择合适的颜色映射

  • 根据您的数据特征和可视化目标选择颜色映射。
  • 考虑数据是顺序的、发散的、循环的还是定性的,并选择相应的颜色映射类型。
  • 确保颜色映射能够有效传达信息,而不会产生误导。

考虑色觉缺陷

  • 避免主要使用红色和绿色的颜色映射,因为它们不适合色觉缺陷者。
  • 选择专为色觉缺陷者设计的颜色映射,例如“Viridis”、“inferno”、“plasma”和“magma”。

保持一致性

  • 在多个绘图中保持颜色映射的一致性,以方便数据比较和解释。
  • 如果同一图形或不同图形中使用多个绘图,请确保颜色映射一致,以避免混淆。

记录颜色映射选择

  • 记录可视化中使用的颜色映射,以提供上下文并帮助可重复性。
  • 包括有关颜色映射类型、名称以及应用的任何自定义选项的信息。

考虑文化差异

  • 在选择颜色映射时,请注意颜色感知和解释方面的文化差异。
  • 避免使用在某些文化背景下可能具有负面含义或联想的颜色映射。

寻求反馈

  • 征求同事或领域专家的反馈,以确保您选择的颜色映射能够有效传达预期信息。
  • 根据反馈迭代您的可视化,以提高清晰度和有效性。

颜色映射是 MATLAB 中可视化数据的不可或缺的工具。通过了解可用的颜色映射类型、对其进行有效自定义以及遵循颜色映射使用的最佳实践,您可以创建清晰且信息丰富的可视化,从而增强对数据的理解。尝试不同的颜色映射和设置,以找到最适合您特定可视化任务的表示。


下一主题Matlab fft()