将x轴与两个y轴同步

时间:2019-09-09 16:17:40

标签: python-3.x data-visualization

enter image description here

我在将x轴与两个y轴对齐时遇到麻烦。一张图表未对齐一格。

我已经通过pd.pivot_table创建了一个数据透视表,并且我试图通过twinx()合并两个图表来节省时间和空间。我可以显示图形,但无法使第二个y轴与x轴对齐。

这是PVT表

master = pd.pivot_table(data, index=['Month'], values=['Leasekey', 'isFunded', 'InvoiceAmount', 'MCC', 'isFPB8D', 'isFPB8DLagMature', 'isFPB15D', 'isFPB15DLagMature'],
                       aggfunc={'Leasekey':len, 'isFunded':np.sum, 'InvoiceAmount':np.sum, 'MCC':np.mean, 'isFPB8D':np.sum, 'isFPB8DLagMature':np.sum, 'isFPB15D':np.sum, 'isFPB15DLagMature':np.sum})
master['ZP_Rate_8'] = master.apply(lambda x: get_zp_rates(x,8), axis=1)
master['ZP_Rate_15'] = master.apply(lambda x: get_zp_rates(x,15), axis=1)
master['Month'] = master.index.get_level_values('Month')
master = master.drop(['isFPB8D', 'isFPB8DLagMature', 'isFPB15D', 'isFPB15DLagMature'], axis=1)
master.style.background_gradient(cmap='Oranges')

这是我要生成的图形的代码

fig, ax1 = plt.subplots(figsize=(10,6))
ax1.set_title('Volume and Invoice being Redecisioned', fontsize=12)
ax1.set_xlabel('Month', fontsize=12)
ax1.set_ylabel('Volume', fontsize=12)
ax2 = sns.barplot(x='Month', y='isFunded', data = master, palette='summer')
ax1.tick_params(axis='y')
ax2 = ax1.twinx()
color = 'tab:red'
ax2.set_ylabel('Invoice', fontsize=12)
ax2 = sns.lineplot(x='Month', y='InvoiceAmount', data = master, color=color)
ax2.tick_params(axis='y', color=color)
fig.tight_layout()
plt.show()

enter image description here

0 个答案:

没有答案