如何使用 matplotlib fill_ Between 作为默认 ylim

Mit*_*wal 2 python matplotlib

无填充:

在此输入图像描述

带填充:

在此输入图像描述

plt.fill_between(n,data)

我想填写默认的 y 限制。

另外我可以做渐变填充吗?

Joh*_*anC 5

您可以使用ax.get_ylim()来获取 y 限制。ax.fill_between(n, ymin, data)填充最小值和曲线之间的区域。如果您没有为 提供两个 y 值fill_between0则使用默认值,在这种情况下与实际曲线相距甚远。

可以提取创建的多边形fill_between并将其用作渐变矩形的剪切路径。

这是一些示例代码:

import matplotlib.pyplot as plt
from matplotlib.patches import PathPatch
import numpy as np

np.random.seed(123)
n = np.arange(12)
data = np.random.randint(97800, 98400, len(n))
fig, ax = plt.subplots()
ax.plot(n, data, color='dodgerblue')
ymin, ymax = ax.get_ylim()
fill_poly = ax.fill_between(n, ymin, data, color='none')
gradient_rect = ax.imshow(np.arange(256).reshape(-1, 1), extent=[n.min(), n.max(), ymin, ymax],
                      cmap='Blues_r', aspect='auto')
clip_poly = PathPatch(fill_poly.get_paths()[0], transform=ax.transData)
gradient_rect.set_clip_path(clip_poly)
plt.show()
Run Code Online (Sandbox Code Playgroud)

用渐变填充之间