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