概述
最近在帮女朋友处理一些数据,就顺手写一些博客记录一下过程。
环境:Anaconda3(Jupyter Notebook)
实验数据:两个csv文件,双列(截取部分)
代码:
from matplotlib import pyplot as plt
import csv
import glob
from os.path import basename
from scipy.interpolate import make_interp_spline
import numpy as np
fig=plt.figure(dpi = 300, figsize=(10,6))
# plt.title("图片标题",fontsize = 16)
plt.xlabel("Wavelength(nm)", fontsize = 16) #横坐标
plt.ylabel("Absorbance", fontsize = 16) #纵坐标
files = sorted(glob.glob("*.csv")) #读取目录下所有以.csv结尾的文件,这里可以添加绝对路径
for file in files:
filename = basename(file).rsplit('.', 1)[0] #用.来分割文件名,取前半部分,例如XX.csv,取XX
# print('r'+ filename + " ", flush = True)
with open(file) as f:
csvreader = csv.reader(f, delimiter = ",", quotechar='"')
for line in range(0): #0代表从文件第一行开始读取
next (csvreader)
Wavelength = []
Absorbance = [] #横纵坐标分别建立了两个list
for row in csvreader:
Wavelength.append(float(row[0]))
Absorbance.append(float(row[1])) #读取数据,放入list
#平滑处理
Wavelength_array=np.array(Wavelength)
Absorbance_array=np.array(Absorbance) #list转array,为了调用下面的min,max
plt.xlim((180,820))
plt.ylim((0,4))
x_smooth = np.linspace(Wavelength_array.min(), Wavelength_array.max(), 300)
y_smooth = make_interp_spline(Wavelength_array, Absorbance_array)(x_smooth)
plt.plot(x_smooth, y_smooth)
# plt.plot(voltage, current, '-', label=filename)
# plt.legend() #原本是做了一个右上角的label的,但是她不要
# print("Done processing " + str(len(files)) + " files.")
plt.show()
# plt.savefig('图片名' + '.png', dpi = 300) #不知道为什么保存了啥也看不到…
生成图片样式:
最后
以上就是伶俐大碗为你收集整理的Python处理多个csv文件生成叠加曲线图的全部内容,希望文章能够帮你解决Python处理多个csv文件生成叠加曲线图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复