matplotlib色带
时间: 2025-05-13 10:45:19 浏览: 85
### Matplotlib 中色带 (Colormap) 的使用
Matplotlib 提供了丰富的功能来处理颜色映射(colormap),这使得数据可视化更加直观和美观。以下是关于如何在 Matplotlib 中使用或自定义色带的具体说明。
#### 官方提供的色带
Matplotlib 自带了许多预定义的颜色映射方案,可以通过 `matplotlib.colormaps` 获取所有可用的色带名称[^2]。例如:
```python
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
print(plt.colormaps()) # 列出所有可用的 colormap 名称
```
这些色带可以根据需求直接应用于图像或其他图形对象中。比如,使用名为 `"viridis"` 的色带绘制热力图:
```python
data = [[i * j for i in range(10)] for j in range(10)]
plt.imshow(data, cmap="viridis")
plt.colorbar()
plt.show()
```
上述代码展示了如何通过指定 `cmap` 参数应用特定的色带。
#### 自定义色带
如果默认的色带无法满足需求,则可以创建自己的色带。一种常见的方法是利用 `LinearSegmentedColormap.from_list()` 函数来自定义渐变效果[^3]。下面是一个例子:
```python
from matplotlib.colors import LinearSegmentedColormap
# 创建一个简单的红绿蓝三段式色带
colors = ["red", "green", "blue"]
custom_cmap = LinearSegmentedColormap.from_list("my_colormap", colors)
data = [[i * j for i in range(10)] for j in range(10)]
plt.imshow(data, cmap=custom_cmap)
plt.colorbar()
plt.show()
```
此代码片段演示了如何基于一组离散颜色构建连续变化的色带。
#### 使用 Colorbar 工具
Colorbar 是用于解释颜色含义的重要工具,在无实际地图或者图表的情况下也能单独绘制出来[^1]。以下是如何独立生成一条 colorbar 的示例:
```python
norm = mcolors.Normalize(vmin=-1, vmax=1)
sm = plt.cm.ScalarMappable(cmap='coolwarm', norm=norm)
sm.set_array([]) # 只是为了兼容性设置为空数组
fig, ax = plt.subplots(figsize=(8, 1))
cb = fig.colorbar(sm, cax=ax, orientation='horizontal')
cb.set_label('Custom Label')
plt.show()
```
这里的关键在于创建了一个虚拟的对象 (`ScalarMappable`) 来承载颜色信息并传递给 colorbar 方法。
---
阅读全文
相关推荐


















