Pandas Data Reader生成图表保存为PNG时显示空白,无报错
问题解决:Matplotlib保存图表为空白PNG的修复
问题原因
你遇到的空白PNG问题,核心原因是**plt.show()会关闭并清空当前的绘图上下文**。当你先调用plt.show()展示图表后,Matplotlib已经释放了当前的绘图资源,此时再执行plt.savefig(),实际是保存了一个全新的空画布,所以文件内容空白。
修复方案
把plt.savefig()的调用移到plt.show()之前,这样就能在图表展示前先完成保存操作:
#Import Modules import pandas as pd import datetime import pandas_datareader as pdr import matplotlib.pyplot as plt #Setting Variables start = datetime.datetime(2010,12,31) end = datetime.datetime(2022,9,20) fnT = pdr.DataReader(['AMD','NVDA','INTC','TSM'], 'yahoo', start = start, end = end)['Adj Close'] #Graph 1 fnT.plot(figsize=(12,6)) plt.savefig('fnPlot1.png') # 先保存再展示 plt.show()
额外说明
- 你代码中导入了很多未使用的模块(比如
seaborn、plotly.express、matplotlib.style等),可以按需删除,减少冗余。 - 如果需要在展示后仍能保存图表,可以先获取当前的绘图对象,再调用保存方法:
ax = fnT.plot(figsize=(12,6)) plt.show() ax.figure.savefig('fnPlot1.png')
内容的提问来源于stack exchange,提问作者DaGi
相关产品推荐
相关产品推荐

