Python 如何使用matplotlib.fill_避免和where之间的间隙
我希望填充两条曲线之间的区域,但仅当较低的曲线>0时。 我在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
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)