You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:35:29