我的数据如图所示。我的所有数据都是.txt格式,我的目标是循环文件并绘制它们。第一行代表我的变量 (WL,ABS,T%)所以首先我需要在继续之前删除它们。
with open('Desktop/100-3.txt', 'r') as f:
data = f.read().splitlines(True)
with open('Desktop/100-3.txt', 'w') as f:
f.writelines(data[1:])
可能没有必要,但我在Numpy中很新。基本上算法如下:
我尝试了什么
from numpy import loadtxt
import os
dizin = os.listdir(os.getcwd())
for i in dizin:
if i.endswith('.txt'):
data = loadtxt("??",float)
答案 0 :(得分:1)
对于像这样的数据文件,我更喜欢np.genfromtxt而非np.loadtxt,它有许多有用的选项,你可以在文档中查找。 glob模块也可以通过通配符迭代目录作为过滤器:
from glob import glob
import numpy as np
import matplotlib.pyplot as plt
# loop over all files in the current directory ending with .txt
for fname in glob("./*.txt"):
# read file, skip header (1 line) and unpack into 3 variables
WL, ABS, T = np.genfromtxt(fname, skip_header=1, unpack=True)
# first plot
plt.plot(WL, T)
plt.xlabel('WL')
plt.ylabel('T%')
plt.show()
plt.clf()
# second plot
plt.plot(ABS, T)
plt.xlabel('WL')
plt.ylabel('ABS')
plt.show()
plt.clf()
下一步是对matplotlib进行一些研究,以使这些图看起来更好。
如果代码不起作用,请告诉我,我会尝试修复它。
编辑:添加plt.clf()以在创建新图之前清除该图。