2022/06/08-2022/06/09 Python 处理数据
2022-06-08
import csv,sys,os import matplotlib.pyplot as plt def getdata(filename): # filename = '15_000_ALL.csv' csv_reader = csv.reader(open(filename)) n = 0 ls = [] res = [0] val = [] res_val = [] for row in csv_reader: n += 1 if n <=12: continue tmp = float(row[1]) if tmp < -4.4: tmp = -5 ls.append([n,tmp]) elif tmp < -0.75: tmp = -1 ls.append([n,tmp]) elif 1.35 < tmp < 1.7: tmp = 1.5 ls.append([n,tmp]) elif tmp > 1.8: tmp = 2 ls.append([n,tmp]) else: tmp = 0 if tmp != res[-1] and tmp != 0: res.append(tmp) if tmp == 1.5 or tmp == -1: val.append(float(row[3])) continue elif val != []: res_val.append([res[-1],sum(val)/len(val)]) val = [] # print(res,len(res)) return res_val start_list = [1,1,1,1,1,1,1,1,3,6,4,3,1,1] filelist = ['{}_000_ALL.csv'.format(i) for i in [1,2,3,4,5,6,7,8,10,11,12,13,14,15]] # filename = '14_000_ALL.csv' # print(getdata(filename),len(getdata(filename))) def output(filename,index): writefilename = filename + '.csv' with open(writefilename,'w',encoding='gbk',newline="") as f: csv_writer = csv.writer(f) tmp = getdata(filename) print(len(tmp)) for i in tmp[index-1:index+28]: csv_writer.writerow(i) f.close() print(filename + ' is done!') for i,j in enumerate(filelist): output(j,start_list[i])
2022-06-09
import matplotlib.pyplot as plt import numpy as np import xlrd,sys,os import xlwt as ExcelWrite filename = 'Eng_Sweep_IdVg_220609_095907.xlsx' data = xlrd.open_workbook(filename) table = data.sheet_by_name('Sheet1') V = table.col_values(2) I = table.col_values(3) tmp = 7 ls = [] for i in range(1,513): ls.append(tmp) if i%8 == 0: tmp += 108 else: tmp += 114 index = 0 for i,j in enumerate(ls): if i%8 == 0: plt.savefig('fig/IdVg{}.jpg'.format(index)) index += 1 plt.figure() plt.title('Start from No. {} row!'.format(j)) label='{}'.format(i%8) plt.plot(V[j-1:j+49],I[j-1:j+49],'.-',label=label) plt.yscale('log') plt.xlabel('Voltage') plt.ylabel('Current') plt.legend() plt.savefig('fig/IdVg{}.jpg'.format(index))