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