Python 如何使用matplotlib.fill_避免和where之间的间隙

Python 如何使用matplotlib.fill_避免和where之间的间隙,python,numpy,matplotlib,Python,Numpy,Matplotlib,我希望填充两条曲线之间的区域,但仅当较低的曲线>0时。 我在matplotlib中使用where条件(用于测试哪个曲线更大)和numpy.max()(用于测试较低的曲线是否>0)。但是填充中存在间隙,因为较低的曲线在整数之间穿过x轴,而最大值的结果在x轴处击中一个整数。我怎样才能解决这个问题 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 10) a = np.array([101, 102, 71, 56

我希望填充两条曲线之间的区域,但仅当较低的曲线>0时。 我在
matplotlib
中使用
where
条件(用于测试哪个曲线更大)和
numpy.max()
(用于测试较低的曲线是否>0)。但是填充中存在间隙,因为较低的曲线在整数之间穿过x轴,而
最大值的结果在x轴处击中一个整数。我怎样才能解决这个问题

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 10)
a = np.array([101, 102, 71, 56, 49, 15, 29, 31, 45, 41])
b = np.array([52, 39, 8, -7, -12, -45, -23, -9, 14, 19])

fig, ax = plt.subplots()
ax.plot(x, a)
ax.plot(x, b)
ax.fill_between(x, a, np.maximum(b, 0), where=a >= b, alpha=0.25)

plt.axhline(0, color='black')


(我希望白色三角形也被着色。)

使用以下方法插值:

应替换为:

x2 = np.linspace(x[0], x[-1], len(x) * 100)

x2 = np.linspace(x[0], x[-1] + 1, len(x) * 100)
x2 = np.linspace(x[0], x[-1], len(x) * 100)