1、导入相关模块

import matplotlib.pyplot as plt  #绘图模块
from scipy import interpolate  #插值模块
import numpy as np  #数值计算模块

2、目标文件的定义与读取

file = 'F:\XZ_DL\GLS.txt' #以高岭石波谱曲线为例
a = np.loadtxt(file)
x = a[:,0]  #读取第一列所有数据
y = a[:,1]  #读取第二列所有数据

3、函数拟合与插值

tck = interpolate.splrep(x,y)  #拟合y与x
xx = np.linspace(min(x),max(x),200)  #x插值
yy = interpolate.splev(xx,tck,der=0)
print(xx)

输出结果为:
[0.400279   0.41322232 0.42616564 0.43910896 0.45205229 0.46499561
 0.47793893 0.49088225 0.50382557 0.51676889 0.52971222 0.54265554
 0.55559886 0.56854218 0.5814855  0.59442882 0.60737215 0.62031547
 0.63325879 0.64620211 0.65914543 0.67208875 0.68503208 0.6979754
 0.71091872 0.72386204 0.73680536 0.74974868 0.76269201 0.77563533
 0.78857865 0.80152197 0.81446529 0.82740861 0.84035193 0.85329526
 0.86623858 0.8791819  0.89212522 0.90506854 0.91801186 0.93095519
 0.94389851 0.95684183 0.96978515 0.98272847 0.99567179 1.00861512
 1.02155844 1.03450176 1.04744508 1.0603884  1.07333172 1.08627505
 1.09921837 1.11216169 1.12510501 1.13804833 1.15099165 1.16393497
 1.1768783  1.18982162 1.20276494 1.21570826 1.22865158 1.2415949
 1.25453823 1.26748155 1.28042487 1.29336819 1.30631151 1.31925483
 1.33219816 1.34514148 1.3580848  1.37102812 1.38397144 1.39691476
 1.40985809 1.42280141 1.43574473 1.44868805 1.46163137 1.47457469
 1.48751802 1.50046134 1.51340466 1.52634798 1.5392913  1.55223462
 1.56517794 1.57812127 1.59106459 1.60400791 1.61695123 1.62989455
 1.64283787 1.6557812  1.66872452 1.68166784 1.69461116 1.70755448
 1.7204978  1.73344113 1.74638445 1.75932777 1.77227109 1.78521441
 1.79815773 1.81110106 1.82404438 1.8369877  1.84993102 1.86287434
 1.87581766 1.88876098 1.90170431 1.91464763 1.92759095 1.94053427
 1.95347759 1.96642091 1.97936424 1.99230756 2.00525088 2.0181942
 2.03113752 2.04408084 2.05702417 2.06996749 2.08291081 2.09585413
 2.10879745 2.12174077 2.1346841  2.14762742 2.16057074 2.17351406
 2.18645738 2.1994007  2.21234403 2.22528735 2.23823067 2.25117399
 2.26411731 2.27706063 2.29000395 2.30294728 2.3158906  2.32883392
 2.34177724 2.35472056 2.36766388 2.38060721 2.39355053 2.40649385
 2.41943717 2.43238049 2.44532381 2.45826714 2.47121046 2.48415378
 2.4970971  2.51004042 2.52298374 2.53592707 2.54887039 2.56181371
 2.57475703 2.58770035 2.60064367 2.61358699 2.62653032 2.63947364
 2.65241696 2.66536028 2.6783036  2.69124692 2.70419025 2.71713357
 2.73007689 2.74302021 2.75596353 2.76890685 2.78185018 2.7947935
 2.80773682 2.82068014 2.83362346 2.84656678 2.85951011 2.87245343
 2.88539675 2.89834007 2.91128339 2.92422671 2.93717004 2.95011336
 2.96305668 2.976     ]

4、绘图与显示

plt.plot(x,y,'-',xx,yy,color='red')     #定义样式
plt.xlabel('Wavelength(μm)')  #横坐标含义
plt.ylabel('Data Value')  #纵坐标含义
plt.title('Kaolinite')```#图名(若附中文名称需导入并定义中文模块matplotlib.font_manager)

结果显示:
高岭石
常用线条样式及颜色对应参数可参考博客:https://blog.csdn.net/qq_45398466/article/details/109278791

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐