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

如何在for循环中生成并保存多个无重叠的PNG格式图表?

解决Matplotlib循环绘图重叠问题

问题根源在于Matplotlib默认复用同一个画布,循环迭代时新的绘图元素会叠加在之前的内容上,导致图片重叠。下面是两种可行的解决方法:

方法一:每次绘图后清除画布内容

在保存图片后调用plt.clf()清除当前画布的所有元素,确保下一次绘图是空白画布:

import matplotlib.pyplot as plt

for i in range(10):
    y = arr_df[i].flatten()
    plt.title('Nitrat Graph')
    plt.xlabel('X Axis')
    plt.ylabel('Y Axis')
    plt.plot(x_axis, y, color='blue')
    plt.savefig(f'NO_{i}.png')
    plt.clf()  # 清除画布内容,为下一次绘图重置

方法二:每次循环新建独立画布

每次迭代时创建全新的画布,避免复用旧画布的内容,绘图完成后可关闭画布释放内存:

import matplotlib.pyplot as plt

for i in range(10):
    plt.figure()  # 创建新的空白画布
    y = arr_df[i].flatten()
    plt.title('Nitrat Graph')
    plt.xlabel('X Axis')
    plt.ylabel('Y Axis')
    plt.plot(x_axis, y, color='blue')
    plt.savefig(f'NO_{i}.png')
    plt.close()  # 关闭画布,释放内存资源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:15:41