Python数据可视化分析

太赫兹波是一种远红外波,在物质检测方面具有其它检测技术不可比拟的优势。下面两个文件中的数据为太赫兹检测数据,其中C100为被检测物质的数据,background为背景/参考数据,实验值在表中分别以++++++ Result Data ++++++标记,共3列,第一列为点号,约6万个点,第二列为时间值x,第三列为幅度值y,要求如下:
1.分别在同一张图中绘制C100和参考数据的时间曲线T(x),其中:Xaxis代表x坐标,单位ps,result代表y坐标无单位。要求调整横坐标范围(如15-35)可以较为直观的展示图形,并且有单位,title、label,legend等.
2.快速傅里叶变换FFT是一种常用的频域分析方法,可以将时间序列变化成频率数据,请分别将上述数据的result值进行FFT变换,计算出样品的频域数据F(w)-C100和参考的频域数据F(w)-参考。函数接口如下:from scipy.fftpack import fft、import numpy as np、y=np.fft.fft()
3.经过FFT变换后的频域数据为对称复数,绘制经过FFT变换后的C100和参考数据的频率曲线F(w)-C100曲线和F(w)-参考曲线(取前200个点)。
fori in range(65536):×列表.append(i*500/65536)
其中×坐标通过上述语句获得,单位为THz;y坐标分别取F(w)-C100和F(w)-参考数据的模,方法为abs(),无单位。
4.系统函数通常用来描述黑盒子的系统特性,定义为H(w)=F(w)样本/F(w)参考,结合上述结果计算出C100的H(w),并绘制系统函数曲线,只保留前200个点即0-1.4Thz的数据。其中x坐标同上,y坐标为H(w)的模,无单位.
5.将数据采用线性拟合的方法拟合系统函数曲线,并计算误差MSE和相关系数,论述前200个点是否符合线性关系,如果不符合请通过观察寻找哪段数据符合线性关系,并计算斜率、偏置、误差和相关系数。可以调用接口也可以自行编写公式。

第一题参考示例代码:

import pandas as pd
import matplotlib.pyplot as plt

df=pd.read_csv('tt.csv',skiprows=1,header=None)
plt.title('Diagram')
plt.plot(df[1],df[2],color='green',label='ap')
plt.legend()
plt.xlim(df[1][3],df[1][10])
plt.xticks(rotation=30)
plt.xlabel('time (ps)')
plt.ylabel('ap(THZ)')
plt.tight_layout()
plt.show()