Matplotlib预定义的颜色映射(colormaps)

前言

提醒:
文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。
其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展及意见建议,欢迎评论区讨论交流。


Matplotlib 是一个强大的数据可视化库,它提供了多种预定义的颜色映射(colormaps),用于在不同的可视化场景中展示数据。颜色映射是一种将数据值映射到颜色空间的机制,它对于传达数据的分布、模式和关系至关重要。以下是 Matplotlib 中一些常见的预定义颜色映射及其特点:

1. Perceptually Uniform Colormaps

这些颜色映射在设计时考虑了人类视觉的感知均匀性,即颜色变化在视觉上是均匀的,适合用于科学计算和数据分析。

  • ‘viridis’:默认的颜色映射,从蓝色到黄色的渐变,适合广泛的视觉任务。
  • ‘plasma’:从深蓝色到亮黄色的渐变,类似于温度映射。
  • ‘inferno’:从深蓝色到亮红色的渐变,强调高值。
  • ‘magma’:从深蓝色到亮橙色的渐变,类似于火山岩的颜色。
  • ‘cividis’:从深蓝色到亮绿色的渐变,对色盲友好。
import numpy as np
import matplotlib.pyplot as plt

# 生成数据
data = np.random.rand(10, 10)

# 使用 'viridis' 颜色映射
plt.figure()
plt.imshow(data, cmap='viridis')
plt.colorbar()
plt.title('Viridis Colormap')
plt.show()

运行结果:
在这里插入图片描述

2. Sequential Colormaps

这些颜色映射使用单一颜色的不同亮度来表示数据,适合用于表示数据的大小或强度。

  • ‘Greys’:从黑色到白色的灰度渐变。
  • ‘Purples’:从淡紫色到深紫色的渐变。
  • ‘Blues’:从淡蓝色到深蓝色的渐变。
  • ‘Greens’:从淡绿色到深绿色的渐变。
  • ‘Oranges’:从淡橙色到深橙色的渐变。
  • ‘Reds’:从淡红色到深红色的渐变。
import numpy as np
import matplotlib.pyplot as plt

# 生成数据
data = np.random.rand(10, 10)

# 使用 'Greens' 颜色映射
plt.figure()
plt.imshow(data, cmap='Greens')
plt.colorbar()
plt.title('Greens Colormap')
plt.show()

运行结果:
在这里插入图片描述

3. Diverging Colormaps

这些颜色映射在中间有一个明显的中心点,通常用于表示数据相对于某个中心值(如平均值或零)的偏差。

  • ‘coolwarm’:从蓝色(冷)到红色(暖)的渐变,中间是白色。
  • ‘bwr’:蓝色到红色,中间是白色。
  • ‘seismic’:蓝色到红色,中间是黄色。
  • ’ RdYlBu’:红色到黄色到蓝色,常用于气候数据。
  • ‘PuOr’:紫色到橙色,适合表示正负偏差。
import numpy as np
import matplotlib.pyplot as plt


# 生成有正有负的数据
data_diverging = np.random.randn(10, 10)

# 使用 'coolwarm' 颜色映射
plt.figure()
plt.imshow(data_diverging, cmap='coolwarm')
plt.colorbar()
plt.title('Coolwarm Colormap')
plt.show()

运行结果:
在这里插入图片描述

4. Cyclic Colormaps

这些颜色映射在结束时与开始时颜色相同,形成循环,适合表示周期性数据。

  • ‘hsv’:色相饱和度值(Hue, Saturation, Value)颜色空间,形成完整的色环。
  • ‘twilight’:从蓝色到粉色到黄色的渐变,类似于日出和日落的颜色。
  • ‘twilight_shifted’:'twilight’的变体,颜色偏移。
import numpy as np
import matplotlib.pyplot as plt

# 生成周期性数据
data_cyclic = np.sin(np.linspace(0, 2 * np.pi, 100)).reshape(10, 10)

# 使用 'hsv' 颜色映射
plt.figure()
plt.imshow(data_cyclic, cmap='hsv')
plt.colorbar()
plt.title('HSV Colormap')
plt.show()

运行结果:
在这里插入图片描述

5. Qualitative Colormaps

这些颜色映射包含一系列不连续的颜色,用于表示分类数据。

  • ‘tab10’:10种颜色的调色板,适合分类数据。
  • ‘tab20’:20种颜色的调色板,提供更多颜色选择。
  • ‘Set1’:9种颜色的调色板,颜色鲜明。
  • ‘Set2’:8种颜色的调色板,颜色较柔和。
  • ‘Set3’:12种颜色的调色板,颜色多样。
import numpy as np
import matplotlib.pyplot as plt

# 生成分类数据
categories = np.random.randint(0, 10, size=(10, 10))

# 使用 'tab10' 颜色映射
plt.figure()
plt.imshow(categories, cmap='tab10')
plt.colorbar()
plt.title('Tab10 Colormap')
plt.show()

运行结果:
在这里插入图片描述

6. Miscellaneous Colormaps

这些颜色映射不适合特定的类别,但可能在特定情况下有用。

  • ‘flag’:红、白、蓝、黑的条纹图案。
  • ‘prism’:彩虹色的渐变。
  • ‘ocean’:海洋色的渐变。
  • ‘gist_earth’:地球色调的渐变。
  • ‘terrain’:地形图的渐变,从蓝色到绿色到棕色。
import numpy as np
import matplotlib.pyplot as plt


categories = np.random.randint(0, 10, size=(10, 10))

# 使用 'terrain' 颜色映射
plt.figure()
plt.imshow(data, cmap='terrain')
plt.colorbar()
plt.title('Terrain Colormap')
plt.show()

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值