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

matplotlib使用savefig保存柱状图无报错但图片为空问题求助

问题解答

错误根因

代码的问题是plt.show()和plt.savefig()的调用顺序错误。
plt.show()在弹出绘图预览窗口后,会自动清空当前画布的所有内容,后续执行plt.savefig()时只能保存空的新画布,所以得到的是空白图片。

修复方案

调整两个方法的调用顺序,把plt.savefig()放在plt.show()之前执行即可。另外建议用with上下文管理器打开文件,自动处理文件关闭避免资源泄漏,修正后的完整代码如下:

import matplotlib.pyplot as plt
import numpy as np


# Declaring data
year = []
relative_recurrence = []

# Open data file
with open('relative recurrence plot.txt','r') as f:
    for row in f:
        row = row.split(' ')
        year.append(int(row[0]))
        relative_recurrence.append(float(row[1]))
        
# Plot the graph    
plt.bar(year, relative_recurrence,color = 'grey', label = 'HILDCAAS', edgecolor='black')
plt.xticks(np.arange(min(year), max(year) + 1, 5))

# Label for x-axis
plt.xlabel("YEAR")

# Label for y-axis
plt.ylabel("Relative Occurence")

# 先保存图像再弹出预览窗口
plt.savefig('recurrence plot.png', dpi=100) # dpi参数可按需调整图片分辨率
plt.show()

内容的提问来源于stack exchange,提问作者Prater

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:54:04