大熊猫数据框经济衰退突出情节

时间:2017-12-24 17:53:51

标签: python pandas matplotlib

我有一个pandas数据帧,如下图所示,索引为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中创建的附图。Chart

我在线搜索了各种示例,但没有一个能够显示如下图表。你能帮忙吗?谢谢。

如果有更容易使用的绘图库,我很感激,这些绘图库输入很少但很容易用于大多数类似于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'

1 个答案:

答案 0 :(得分:1)

我明白了。我为USREC创建了辅助Y轴并隐藏了轴标签,就像我想要的那样,但它也隐藏了USREC的传奇。但这是一件小事。enter image description here

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'])