当前位置: 首页 > 知识库问答 >
问题:

使用for循环保存多个图。我做错了什么?

安博文
2023-03-14

我有一个要打印的值列表,并将每个打印保存为单独的文件。我创建了一个for循环,它可以很好地在IDE中显示绘图,但当我试图将它们保存在单独的文件中时,我会遇到这样的情况:第一个创建的png文件会随着每次迭代而被覆盖,而不是创建新文件。

这是我的循环

for name in names:
    DDT = dfs[dfs['Name']== name]
    plt.figure(figsize=(15,7))
    plt.plot(DDT['Time'], DDT['Low'], label = 'Low')
    plt.plot(DDT['Time'], DDT['Heigh)'], label = 'Heigh')
    plt.plot(DDT['Time'], DDT['Average'], label = 'AVG')
    plt.title(name)
    plt.legend()
    y = 1
    plt.savefig("plot{y}.png".format(y=y))
    y+=1
    plt.close()
    # plt.show()

我添加奇怪的“y”值的原因是名称中包含斜杠,所以程序“认为”它是不同的文件夹。所以基本上我想得到plot1。png,图2。翁。。。普洛顿。结果是巴布亚新几内亚。

如何避免覆盖单个创建的png文件,并为每个循环获得单独的文件?

共有1个答案

穆承运
2023-03-14

在python中,有一个用于索引循环的内置解决方案。您可以为此使用枚举

    for idx, name in enumerate(names):
        DDT = dfs[dfs['Name']== name]
        plt.figure(figsize=(15,7))
        plt.plot(DDT['Time'], DDT['Low'], label = 'Low')
        plt.plot(DDT['Time'], DDT['Heigh)'], label = 'Heigh')
        plt.plot(DDT['Time'], DDT['Average'], label = 'AVG')
        plt.title(name)
        plt.legend()  
        plt.savefig("plot{idx}.png".format(idx=idx))
        plt.close()
        # plt.show()

 类似资料:
  • 我有两个循环。在第一个循环中,我分割字段(分割)。在第二个循环中,我想打印新的字段值。只有0。我想知道循环有什么问题。我没有发现错误。:)我认为问题出在这方面: 我在Windows 7中使用Visual Studio 2013编程。 %lf输出(正确): %f输出(不正确):

  • 本文向大家介绍python 利用for循环 保存多个图像或者文件的实例,包括了python 利用for循环 保存多个图像或者文件的实例的使用技巧和注意事项,需要的朋友参考一下 在实际应用中,会遇到保存多个文件或者图像的操作,利用for循环可以实现基本要求: 就解决了,出去50组图片。 和print格式化输出有异曲同工之妙: 以上这篇python 利用for循环 保存多个图像或者文件的实例就是小编分

  • 我如何比较用户输入的这些数组呢?

  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误

  • 问题内容: 我看到了如下一行代码: 就我所知,我认为要能够以这种格式编写for循环,我们需要将“ words”作为实现Iterable接口并覆盖iterator()函数的类的实例。但是’words’是String数组类型,这对于循环格式如何正确? 有人可以给我一些提示吗? 问题答案: 从有关此主题的Java教程中: for-each构造也适用于数组,其中它隐藏索引变量而不是迭代器。以下方法返回in

  • 我有这个代码,它是用for循环实现的。我想用一个字母来写。流和。map()函数。我试着用这个。map()函数。但不幸的是,我得到了以下错误: 不兼容的类型。必填列表 这里是旧代码: 这是我使用。地图() 有没有关于我如何解决这个问题的建议?或者我应该注意什么?