Python:具有辅助轴的Suplots

时间:2015-10-31 20:28:07

标签: python matplotlib

我在下面编写了以下代码来执行以下图表: enter image description here

fig, ax = plt.subplots(figsize=(8, 6))
ax.patch.set_facecolor('white')
ax.plot(df.index, df.X1.values, 'b',
        label='NMA', linewidth=1.5)
ax.set_ylabel('Index')
ax2 = ax.twinx()
ax2.plot(df.index, df.Y.values, 'r--',
         label='Rate', linewidth=1.5)
ax2.set_ylabel('Rate')
lines = ax.get_lines() + ax2.get_lines()
lgd = ax.legend(lines, [line.get_label() for line in lines],
                loc='lower center', ncol=2, bbox_to_anchor=(0.5, -0.15),
                frameon=False)
ax.set_title('Economic Rate and Index',
             weight='bold')
for i in range(5):
    plt.axvspan(Dates['Peak'][i], Dates['Trough'][i],
                facecolor='grey', alpha=0.5)
plt.grid(False)
plt.savefig('C:\\test.pdf',
            bbox_extra_artists=(lgd,), bbox_inches='tight')

我很难在子图(2X2)中重现这个数字。我在每个子图中唯一要改变的是蓝线(df中的X1 ...对于X2,X3 ......)。如何获得上图的2X2子图?当然,我只会在子图的底部保留一个图例。谢谢你的帮助。

数据为here,“日期”用于重现灰色栏here

1 个答案:

答案 0 :(得分:0)

这是你如何使用twinx创建一个2x2栅格:

printf( "\n" );

结果: result