繁体   English   中英

如何在 python 中使用 plt.savefigure() 保存大量图像?

[英]How can i save a lot of images with plt.savefigure() in python?

我写了下一个代码:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import pandas as pd 
import pylab as pl 


files = ["xyz_01.txt", "xyz_02.txt", "xyz_03.txt", "xyz_04.txt", "xyz_05.txt", "xyz_06.txt", "xyz_07.txt", "xyz_08.txt", "xyz_09.txt", "xyz_10.txt","xyz_11.txt","xyz_12.txt","xyz_13.txt","xyz_14.txt","xyz_15.txt","xyz_16.txt","xyz_17.txt","xyz_18.txt","xyz_19.txt","xyz_20.txt","xyz_21.txt","xyz_22.txt","xyz_23.txt","xyz_24.txt","xyz_25.txt","xyz_26.txt","xyz_27.txt","xyz_28.txt","xyz_29.txt","xyz_30.txt","xyz_31.txt","xyz_32.txt","xyz_33.txt","xyz_34.txt","xyz_35.txt","xyz_36.txt","xyz_37.txt","xyz_38.txt","xyz_39.txt","xyz_40.txt","xyz_41.txt","xyz_42.txt","xyz_43.txt","xyz_44.txt","xyz_45.txt","xyz_46.txt","xyz_47.txt","xyz_48.txt","xyz_49.txt",]
TB=1
for i in files:
 data=pd.read_csv(i,delim_whitespace=True ,names = ['x', 'y', 'z'])
 T=TB*0.0994
 TB = TB+1 
 fig = plt.figure()
 ax1 = fig.add_subplot(111, projection='3d')
 x=data.iloc[:,0]
 y=data.iloc[:,1]
 z=data.iloc[:,2]
 plt.xlabel("EJE X")
 plt.ylabel("EJE Y")
 pl.plot(x, y, color="blue", linewidth=0, label=str(T))
 pl.legend(loc='upper center',bbox_to_anchor=(0.5, 0.95))

 zLabel = ax1.set_zlabel("EJE Z")
 plt.title("Posición de N partículas en el tiempo[Myr]")
 ax1.scatter(x, y, z, c='b', marker='o')
 plt.savefig()
 plt.show()}

此代码为列表命名文件中的每个元素创建一个图表。 知道我需要使用 plt.savefig() 保存每个图形,但我不知道如何为每个文件自动分配不同的名称。 如果你能帮助我,我将不胜感激。

您可以制作一个包含您的文件名的列表。 或者简单地放一些类似'img'+i+'.jpg'并进行递归。

plt.savefig(i[:-4]+'.png')

如果你想根据文件命名你的图像。 i[:-4]是删除i的最后 4 个字符,因此它将从您的文件名中删除.txt 此解决方案仅适用于 3 个字符的扩展名。 对于一般文件名,您可以使用

filename, extension = os.path.splitext(i)

将文件名与其扩展名分开

您需要考虑一些规则,如何将每个文件名转换为 'png' 扩展名或类似的东西。 我面临一个类似的问题,我需要多次更改文件扩展名,我使用的最常见的解决方案是用于文件名操作的os库的配方。 您的情况很简单(只要您没有包含多个点的复杂文件名),这就是我通常使用os的方式:

import os
file = 'this_is.complicated.txt'
name, extension = os.path.splitext(file)
# name is 'this_is.complicated' now
# extension is '.txt' now

如果我们需要构造一个新的文件名,我会像这样替换扩展名:

new_file = name + '.png'
# new_file is 'this_is.complicated.png' now

当然,您将这个新名称提供给savefig方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM