gpt4 book ai didi

python - plt.savefig 不会覆盖现有文件

转载 作者:行者123 更新时间:2023-12-04 08:36:12 28 4
gpt4 key购买 nike

我有一个循环,它遍历一组“程序”名称,创建一个绘图并将其放置在每个带有 xlsxwriter 的工作表上。为此,它暂时将绘图本地保存为“chart.png”

plt.savefig('chart{}.png'.format(program))
plt.close()
ws.insert_image(r,2,'chart{}.png'.format(program),{'x_scale': 0.5, 'y_scale': 0.5})
这工作得很好,但它为每个程序创建了一个单独的文件,其中我有五十多个。我想简单地创建一个“chart.png”文件,放置它,然后覆盖下一个图表的文件,等等。但是,这段代码:
plt.savefig('chart.png')
plt.close()
ws.insert_image(r,2,'chart.png',{'x_scale': 0.5, 'y_scale': 0.5})
在每张纸上放一张相同的图表。尽管之前的代码显示 matplotlib 正在为每个程序创建一个新图表,但看起来 chart.png 并没有被每个新保存覆盖。感谢您对此的任何帮助。

最佳答案

worksheet.insert_image() 不会将图像直接存储到 XLSX 文件中 ( Python source )。相反,它只在列表中记录单元格、图像文件名、偏移量、比例等信息。
仅在 workbook.close() ,XLSX 和随附的图像被存储到磁盘。因此,您应该只看到文件中重复的图像的最后一个版本。
最简单的方法是接受这样一个事实,即在写入 XLSX 之前需要多个临时图像文件。您可以将它们存储在临时目录中,跟踪文件名并在工作簿写入磁盘后删除这些文件。

关于python - plt.savefig 不会覆盖现有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64789048/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com