### 如何设置或修改 `contourf` 的颜色
在 Matplotlib 中,可以通过多种方式来定制 `contourf` 函数中的颜色。以下是几种常用的方法:
#### 使用预定义的颜色映射 (Colormap)
Matplotlib 提供了许多内置的颜色映射选项,可以直接通过参数传递给 `contourf` 来应用这些颜色方案。
```python
import numpy as np
import matplotlib.pyplot as plt
X, Y = np.meshgrid(np.arange(-5, 5, 0.1), np.arange(-5, 5, 0.1))
Z = np.sin(np.sqrt(X**2 + Y**2))
plt.figure(figsize=(6, 4))
CS = plt.contourf(X, Y, Z, cmap='coolwarm')
plt.colorbar(CS)
plt.title('Contour Plot with Cool Warm Colormap')
plt.show()
```
此代码展示了如何利用 `'coolwarm'` 这样的预设 colormap 设置填充轮廓图的颜色[^1]。
#### 自定义离散色彩表
如果希望创建特定数量级别的离散颜色,则可以构建一个列表形式的自定义颜色序列,并将其应用于绘图函数中。
```python
from matplotlib.colors import ListedColormap
colors = ['blue', 'green', 'yellow', 'red']
cmap_custom = ListedColormap(colors)
plt.figure(figsize=(6, 4))
CS = plt.contourf(X, Y, Z, levels=4, cmap=cmap_custom)
plt.colorbar(CS, ticks=[-1., -0.33, 0.33, 1])
plt.title('Custom Discrete Colors Contour Plot')
plt.show()
```
这段脚本说明了怎样通过指定四个等级以及对应的颜色实现自定义离散化着色效果[^2]。
#### 定义连续渐变色带
对于更复杂的场景下可能需要更加精细控制颜色过渡过程的情况,还可以借助 LinearSegmentedColormap 类来自动生成线性的分段式颜色条。
```python
from matplotlib.colors import LinearSegmentedColormap
cdict = {'red': ((0.0, 0.25, .25),
(0.7, 1.0, 1.0),
(1.0, 0.9, 1.0)),
'green': ((0.0, 0.0, 0.0),
(0.5, 0.0, .75),
(1.0, 1.0, 1.0)),
'blue': ((0.0, 0.0, 0.0),
(0.5, 0.5, 0.0),
(1.0, 0.9, 0.9))}
custom_cmap = LinearSegmentedColormap('custom_colormap', cdict)
plt.figure(figsize=(6, 4))
CS = plt.contourf(X, Y, Z, cmap=custom_cmap)
plt.colorbar(CS)
plt.title('Linear Segmented Custom Color Map')
plt.show()
```
上述例子解释了如何基于 RGB 值的变化规律设计个性化的连续型颜色映射关系并用于绘制等高线填充分析图表。