通过使用插值numpy.interp http://docs.scipy.org/doc/numpy/reference/generated/numpy.interp.html:
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])
x2 = np.linspace(x[0], x[-1] + 1, len(x) * 100) # <---
a2 = np.interp(x2, x, a) # <---
b2 = np.interp(x2, x, b) # <---
x, a, b = x2, a2, b2 # <---
fig, ax = plt.subplots()
ax.plot(x, a)
ax.plot(x, b)
ax.fill_between(x, a, np.maximum(0, b), where=a>b, alpha=0.25)
plt.axhline(0, color='black')
UPDATE
x2 = np.linspace(x[0], x[-1] + 1, len(x) * 100)
应替换为:
x2 = np.linspace(x[0], x[-1], len(x) * 100)