Matplotlib plt对象在绘图间共享
我有两个函数,一个绘制时间序列线,另一个绘制自动相关Matplotlib plt对象在绘图间共享,matplotlib,Matplotlib,我有两个函数,一个绘制时间序列线,另一个绘制自动相关 def plotacorr(dfasst): # Plot autocorrelation plt.acorr(dfasst, maxlags=3) # Add labels to autocorrelation plot plt.title('Autocorrelation of Asset Balances with previous Months Balances') plt.xlabel('La
def plotacorr(dfasst):
# Plot autocorrelation
plt.acorr(dfasst, maxlags=3)
# Add labels to autocorrelation plot
plt.title('Autocorrelation of Asset Balances with previous Months Balances')
plt.xlabel('Lag in Months')
plt.ylabel('Autocorrelation')
# Display the autocorrelation plot
#plt.show()
plt.savefig('C:/acorr_assets.jpeg')
def plottrend(df_acctsmry2):
fig, ax = plt.subplots()
fmt = '${x:,.0f}'
tick = mtick.StrMethodFormatter(fmt)
ax.yaxis.set_major_formatter(tick)
df_acctsmry2.plot(x='REPORTING_DATE',ax=ax,figsize=(20,12))
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.xlabel('REPORTING_DATE', fontsize=18)
#plt.show()
plt.savefig('C:/output.jpeg')
我首先调用plottrend,然后调用plotacorr
但似乎plt对象在两个图之间以某种方式共享,因此在自相关图中,我看到与plottrend相同的结果。取消对每个函数的
plt.show()
注释,这应该做到(或者在调用函数之间调用plt.show()
)取决于您所说的刷新。这更像是一个“转储”语句。plt句柄中的任何内容都会显示出来。由于您没有创建第二个地物,因此代码将覆盖现有地物,并且应仅显示第二个绘图或在同一地物中绘制所有地物。解决此问题的另一种方法是使用plt.figure()生成第二个地物