这是接昨天的推文,昨天的推文中我用来分析的数据是自己手动输入的少量数据,但是现实中我们需要的数据可能比较大,因此被存储在电子表格中,我们就需要把数据读取并提取需要的内容进行分析,好吧,开始吧,拉次够

   首先我们把本次实验所需要的库导入,有pandas,matplotlib,和scipy,他们的作用分析+绘图

import matplotlib.pyplot as pltimport pandas as pd#import numpy as np#from pylab import*from scipy import signal

 在Python中,读取excel的xlsx格式数据需要用到pandas库中的read_excel模块,如下,我们来把数据读取进来

tem = pd.read_excel("D:\LIUCAS\Python\TEM.xlsx")

   然后我们可以使用潘大师看看数据长啥样

print(tem.shape)#康康tem这个xlsx数据的维度,显示为696行和3列print(tem.columns)#揭开他的面纱看看长啥样(列INDEX),第一列是year,第二列是month,第三列是tem#print(tem.head or tail(X))查看前or后X行,tail有尾巴的意思print(tem.head(300))#瞅瞅前300行啥样,300x3的维度结构

 上面,我们已经把xlsx数据读取进来了,但是现实情况是我需要其中的某一列数据来进行分析,在web查阅了相关资料后,其实不难,如下

year = pd.read_excel('TEM.xlsx',skiprows=0)['year']#读取时间,这里的0是指第一行temdata = pd.read_excel('TEM.xlsx',skiprows=0)['tem']#读取tem值

    分别把时间和tem读取进来,需要注意的是0值在这里是指第一行,而非第0行

     数据读取完毕,现在进行分析step吧

使用scipy库中的detrend函数进行原始数据的去趋势处理:

tem_det=signal.detrend(temdata,axis=-1, type='linear', bp=1)#scipy的signal。detrend模块去趋势,参数后面可选

     接下来我们分别构建高通滤波和低通滤波,如下:

m, n = signal.butter(8, 0.2, 'highpass')#构建高通滤波,参数分别是滤波阶数,临界频率和typex, y = signal.butter(8, 0.2, 'lowpass')#F_high = signal.filtfilt(m, n, tem_det,axis = 0)#高通滤波F_low = signal.filtfilt(x, y, tem_det,axis = 0)#低通滤波

   上述的数据提取和分析部分就ok了,但是我想把这里的4张图都画在一张纸上,因此我们需要学习一下子图subplot函数的使用,如下:

fig = plt.figure(figsize=(3,3),dpi=100)#建一个画布来画图ax1 = fig.add_subplot(221)plt.plot(year,temdata,c = 'k')#原始数据plt.title('Raw Data')ax2 = fig.add_subplot(222)plt.plot(year,tem_det,c = 'g')#去趋势数据plt.title('Detrend')ax3 = fig.add_subplot(223)plt.plot(year,F_high,c = "r")#高通滤波plt.title('Highpass')ax4 = fig.add_subplot(224)plt.plot(year,F_low,c = "b")#低通滤波plt.title('Lowpass')

    先建一个fig画布,长宽为3x3,分辨率为300dpi,设置大的话耗时长

ax1 = fig.add_subplot(221)

  建立第一个子图,221代表的的行列和序号,这里就是2x2=4个子图,序号是第1个位置,可以用一个示意图很直观的理解,如下示意图

python读取Excel数据绘制曲线 python读取excel绘图_opencv 高通滤波和低通滤波

    最后想要看到图的话,需要plt.show()一下,搞定。结果图如下:

python读取Excel数据绘制曲线 python读取excel绘图_c++读取excel_02

python读取Excel数据绘制曲线 python读取excel绘图_python读取Excel数据绘制曲线_03

python读取Excel数据绘制曲线 python读取excel绘图_python读取Excel数据绘制曲线_04