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

如何将timeseries-generator生成的图表保存为PNG等图片文件

解决timeseries-generator生成图表的保存问题

问题原因

timeseries-generator的Generator类本身没有savefig方法,直接调用g.savefig()必然报错。g.plot()底层依赖matplotlib绘图,它会返回matplotlib的Figure对象,我们需要通过这个对象执行保存操作。

你尝试的另一篇帖子方法是针对Python内置的生成器迭代器,和这里的timeseries_generator.generator.Generator类完全不是同一概念,因此不适用。

修正后的代码

import random
import pandas as pd
from pathlib import Path
from timeseries_generator import Generator, LinearTrend, WhiteNoise

i = range(0,4) # first number inclusive, second exclusive
outpath = "PATH" # 替换为你的实际路径

for element in i:
    c = random.random()
    o = random.random()
    s = random.random()
    lt = LinearTrend(coef=c, offset=o, col_name=f"plot no. {element}")
    g = Generator(factors={lt}, features=None, date_range=pd.date_range(start="01-01-2020", end="12-31-2020"))
    wn = WhiteNoise(stdev_factor=s)
    g.update_factor(wn)
    g.generate()
    # 获取绘图返回的matplotlib Figure对象
    fig = g.plot()
    # 用Figure对象的savefig方法保存图片
    fig.savefig(Path(outpath) / f"graph_{element}.png")
    # 可选:关闭figure释放内存
    import matplotlib.pyplot as plt
    plt.close(fig)

关键说明

  1. g.plot()会返回matplotlib的Figure实例,该实例自带savefig方法,这才是正确的保存入口
  2. 使用Path拼接路径比path.join更简洁(若习惯用os.path,保留原写法也可)
  3. 循环中频繁绘图建议手动关闭figure,避免内存泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:11:08