Python:无法获取错误图的图例 (fill_between)

Python: can't get legend for an error plot (fill_between)

我正在使用以下代码绘制三条曲线(1. 平均值,2. uncertainty/error,和 3. 测量数据),但是,我无法为所有这三条曲线获得所需的图例曲线。我可以将 'mean' 和 'measured data' 的图例分别作为蓝色实线和红色圆圈,但是,我无法将蓝色补丁作为 'uncertainty' 的图例。我在 Spyder 中使用 Python 2.7 版本。

qErr = np.std(qArray, axis=1)
h1 = plt.semilogy(T, qArray[:, 2], 'b-', label = 'Mean')
h2 = plt.fill_between(T, qArray[:, 2] - qErr, qArray[:, 2] + qErr, facecolor='b', alpha = 0.2)
plt.hold
h3 = plt.semilogy(T, ORate[idxt0:], 'ro')
plt.legend([h1, h2, h3], ['Mean', 'Uncertainty', 'Measured Data'])

我使用来自 here 的 @kwarrick hack 得到它:

qErr = np.std(qArray, axis=1)
h1 = plt.semilogy(T, qArray[:, 2], 'b-', label = 'Mean')
h2 = plt.fill_between(T, qArray[:, 2] - qErr, qArray[:, 2] + qErr, facecolor='b', alpha = 0.2)
h3 = plt.plot([], [], color='blue', linewidth=10)
h4 = plt.semilogy(T, ORate[idxt0:], 'ro')
plt.legend(['Mean', 'Uncertainty', 'Measured Data'])

P.S.: 但是,我不明白为什么如果我将图例与他们的图句柄对应起来就得不到结果,就像这样:

plt.legend([h1, h3, h4], ['Mean', 'Uncertainty', 'Measured Data'])