ax.fill_between 纵坐标归一化
时间: 2024-09-23 09:15:52 浏览: 49
`ax.fill_between()` 是 Matplotlib 库中的一个函数,用于绘制区域填充图。当你想要在直方图、线图或其他基于数据点的图形上添加填充部分,并希望纵坐标的范围被自动调整到 [0, 1] 或者自定义范围内,可以利用纵坐标归一化功能。
当你传入 `fill_between()` 函数的两个数组作为 x 轴值,以及一个数组表示每个 x 值对应的高度区间时,Matplotlib 会将这些区间相对于 y 轴的最大值进行缩放,以便看起来像是在特定比例尺上填充。例如:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一些数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 归一化纵坐标
max_val = max(np.max(y1), np.max(y2))
y1_norm = y1 / max_val
y2_norm = y2 / max_val
# 绘制并填充区域
fig, ax = plt.subplots()
ax.plot(x, y1, label='sin(x)')
ax.plot(x, y2, label='cos(x)')
ax.fill_between(x, y1_norm, y2_norm, alpha=0.5) # 归一化的填充
ax.set_ylim([0, 1]) # 设置 y 轴范围,如果不需要自动归一化,可以省略此行
ax.legend()
plt.show()
```
在这个例子中,`fill_between()` 的高度会被转换成介于0到1之间的比例,使得填充区域适应了纵坐标的动态范围。
阅读全文