我有一个熊猫数据框,如下图所示,其指数为yyyy-mm,美国经济衰退期(USREC)和时间序列可变M1。请参阅下表
Date USREC M1
2000-12 1088.4
2001-01 1095.08
2001-02 1100.58
2001-03 1108.1
2001-04 1 1116.36
2001-05 1 1117.8
2001-06 1 1125.45
2001-07 1 1137.46
2001-08 1 1147.7
2001-09 1 1207.6
2001-10 1 1166.64
2001-11 1 1169.7
2001-12 1182.46
2002-01 1190.82
2002-02 1190.43
2002-03 1194.85
2002-04 1186.82
2002-05 1186.9
2002-06 1194.55
2002-07 1199.26
2002-08 1183.7
2002-09 1197.1
2002-10 1203.47
我想在python中绘制一个图表,看起来像是在excel.中创建的附图。
我在线搜索了各种示例,但没有一个能够显示如下图表。你能帮忙吗?谢谢。
我很感激,如果有更容易使用的绘图库,它具有很少的输入但易于使用大多数类似于excel提供的绘图。
编辑:我检查了页面https://matplotlib.org/examples/pylab_examples/axhspan_demo.html中的示例。我使用的代码如下。
fig, axes = plt.subplots()
df['M1'].plot(ax=axes)
ax.axvspan(['USREC'],color='grey',alpha=0.5)
所以我没有在matplotlib.org网页的任何示例中看到我可以输入另一列作为axvspan范围。在上面的代码中我得到了错误
TypeError: axvspan() missing 1 required positional argument: 'xmax'
我想到了。我为USREC创建了辅助Y轴并隐藏了轴标签,就像我想要的那样,但它也隐藏了USREC的传奇。但这是一件小事.
def plot_var(y1):
fig0, ax0 = plt.subplots()
ax1 = ax0.twinx()
y1.plot(kind='line', stacked=False, ax=ax0, color='blue')
df['USREC'].plot(kind='area', secondary_y=True, ax=ax1, alpha=.2, color='grey')
ax0.legend(loc='upper left')
ax1.legend(loc='upper left')
plt.ylim(ymax=0.8)
plt.axis('off')
plt.xlabel('Date')
plt.show()
plt.close()
plot_var(df['M1'])