<p><a href="https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.fill_between.html" rel="nofollow noreferrer">^{<cd1>}</a>假设两个系列都有公共的x值。如果起始值和结束值相同,则可以插值<a href="https://stackoverflow.com/a/63541903/8881141">as implemented here</a>。但是,在您的示例中并非如此。
您可以改为创建路径对象并将其添加为填充面片:</p>
<pre><code>import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.path import Path
from matplotlib.patches import PathPatch
fig, ax = plt.subplots(figsize=(15, 10))
#test data generation
highs = pd.DataFrame({'Date': [1, 2, 4, 5], 'Data_Value': [17, 21, 18, 19]})
lows = pd.DataFrame({'Date': [0, 2, 3, 4], 'Data_Value': [1, 3, 2, 3]})
#path object added as patch
p = Path(list(zip(lows['Date'], lows['Data_Value']))[::-1] + list(zip(highs['Date'], highs['Data_Value'])))
patch = PathPatch(p, facecolor="orange", lw=0, alpha=0.2, zorder=-1)
ax.add_patch(patch)
#line graphs plotted on top of the patch
ax.plot(highs['Date'], highs['Data_Value'], label = "Record High", lw=2)
ax.plot(lows['Date'], lows['Data_Value'], label = "Record Low", lw=2)
ax.set_xlabel("Year", fontsize=16)
ax.set_ylabel("Temperature in \N{DEGREE SIGN}C", fontsize=16)
ax.set_title("Extreme Temperature Recorded Every Year")
ax.legend(loc='best')
plt.show()
</code></pre>
<p>样本输出:
<a href="https://i.stack.imgur.com/YOhaf.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/YOhaf.png" alt="enter image description here"/></a></p>