plt.scatter 设置cmap的范围
时间: 2025-05-23 11:18:45 浏览: 19
### 在 Matplotlib 中设置 `plt.scatter` 的 `cmap` 范围
当使用 `plt.scatter` 绘制散点图并指定颜色映射 (`cmap`) 时,可以通过调整颜色映射的范围来控制颜色的变化区间。这通常涉及两个主要参数:`vmin` 和 `vmax`。这两个参数用于定义颜色映射的颜色上下限[^1]。
#### 基本概念
- 参数 `vmin` 表示颜色映射的最小值。
- 参数 `vmax` 表示颜色映射的最大值。
- 数据中小于 `vmin` 或大于 `vmax` 的部分会被截断到对应的边界值,并应用相应的颜色[^2]。
下面是一个完整的例子展示如何自定义 `cmap` 的范围:
```python
import numpy as np
import matplotlib.pyplot as plt
# 示例数据
a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])
c = np.array([0, 1, 2, 3, 4])
# 自定义 cmap 范围
plt.scatter(a, b, c=c, s=80, cmap=plt.cm.Spectral, vmin=-1, vmax=5)
plt.colorbar() # 添加颜色条以直观查看颜色映射范围
# 图像保存与显示
plt.savefig('scatter_plot.png') # 先保存图片
plt.show() # 再显示图像
plt.clf() # 清理缓存
```
在这个例子中,尽管数组 `c` 的实际取值范围是从 0 到 4,但是通过设定 `vmin=-1` 和 `vmax=5`,我们可以人为扩大颜色映射的应用范围。这样做的效果是让原本属于 `[0, 4]` 区间内的值被重新分配在整个 `-1` 至 `5` 的颜色范围内。
另外值得注意的一点是,为了更好地理解颜色分布情况,在绘制图形的同时还可以调用 `colorbar()` 方法添加一个颜色条辅助解释颜色含义[^2]。
---
### 总结
在使用 `plt.scatter` 进行绘图过程中,合理配置 `vmin` 和 `vmax` 可以为用户提供更大的灵活性去定制化视觉呈现方式。这种技术尤其适用于需要突出特定区域或者对比不同类别之间差异的情况下。
阅读全文
相关推荐



















