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

Matplotlib循环保存直方图出现空白图问题求助

解决循环中保存直方图空白的问题

你的问题出在两个关键细节上:

1. plt.show() 和 plt.savefig() 的顺序错误

plt.show() 会弹出显示当前图形,同时会清空并关闭当前画布,所以在它之后调用plt.savefig()时,画布已经没有内容了,自然保存出空白图。把savefig放到show之前就能解决这个核心问题。

2. 循环范围的语法错误

range(len(7))是无效写法,len()只能接收可迭代对象(比如列表、字符串),不能直接传入整数7。如果是要循环7次,直接写range(7);如果是要遍历你的数据列表,注意别用list当变量名(这是Python内置关键字,会引发冲突),应该用range(len(your_data_list))。

另外,循环中每次创建新图后,建议加上plt.close()释放内存资源,避免累积过多未关闭的图形。

修正后的代码示例:

# 替换成你的实际数据列表,避免用list当变量名
data_list = [你的数据1, 你的数据2, ...]

for x in range(len(data_list)):
    plt.figure(figsize=(10, 6))
    hist, bins, patches = plt.hist(data_list[x], 100)
    plt.title(f'pol frac reg {x}')
    plt.savefig(f'pol_frac_{x}.png')  # 建议加上.png后缀明确文件格式
    plt.show()
    plt.close()  # 关闭当前图形,释放内存

如果确定要固定循环7次,就把range(len(data_list))改成range(7)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:23:12