我在将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()