matplotlib.pyplot.cohere()函数
Matplotlib是Python中的一个库,它是NumPy库的数值-数学扩展。Pyplot是一个基于状态的Matplotlib模块接口,该模块提供了一个类似matlab的接口。Pyplot中可以使用的绘图有直线图、轮廓图、直方图、散点图、三维图等。
matplotlib.pyplot.cohere()函数:
使用matplotlib库pyplot模块中的coherent()函数绘制x和y之间的相干。相干是归一化的交叉光谱密度。
语法:matplotlib.pyplot.cohere(x, y, NFFT=256, Fs=2, Fc=0, detrend=, window=, noverlap=0, pad_to=None, sides= ‘ default ‘, scale_by_freq=None, *, data=None, **kwargs)
参数:该方法接受如下参数说明:
- x, y:这些参数是数据序列。
- Fs:标量。默认值为2。
- window:该参数接受一个数据段作为参数,并返回该段的窗口版本。其默认值是window_hanning()
- sides:该参数指定返回频谱的哪一边。它可以有以下值:’ default ‘, ‘ onesided ‘和’ twosided ‘。
- pad_to:该参数包含填充数据段的整数值。
- Fc:该参数还包含整数值,用于偏移图形的x个区段,以反映频率范围。默认值为0
- NFFT:该参数包含用于FFT的每个块的数据点的数量。
- detrend:该参数包含在fft-ing之前应用于每个分段的函数,旨在去除平均值或线性趋势{‘ none ‘, ‘ mean ‘, ‘ linear ‘}。
- scale_by_freq:该参数允许对返回的频率值进行集成。
- noverlap:该参数表示块之间的重叠点数量。
- Fc: x的中心频率。
返回如下内容:
- 这将返回相干向量。
- freqs:返回Cxy中元素的频率。
结果是(Cxy,频率)
下面的例子演示了matplotlib.pyplot.figure()函数在matplotlib.axes中的作用:
示例1
# Implementation of matplotlib function
import numpy as np
import matplotlib.pyplot as plt
dt = 0.01
t = np.arange(0, 30, dt)
nse1 = np.random.randn(len(t))
nse2 = np.random.randn(len(t))
s1 = 1.5 * np.sin(2 * np.pi * 10 * t) + nse1
s2 = np.cos(np.pi * t) + nse2
plt.cohere(s1, s2**2, 128, 1./dt)
plt.xlabel('time')
plt.ylabel('coherence')
plt.title('matplotlib.pyplot.cohere() Example\n',
fontsize = 14, fontweight ='bold')
plt.show()
输出:
示例2
# Implementation of matplotlib function
import numpy as np
import matplotlib.pyplot as plt
dt = 0.01
t = np.arange(0, 30, dt)
nse1 = np.random.randn(len(t))
nse2 = np.random.randn(len(t))
r = np.exp(-t / 0.05)
cnse1 = np.convolve(nse1, r, mode ='same')*dt
cnse2 = np.convolve(nse2, r, mode ='same')*dt
s1 = 1.5 * np.sin(2 * np.pi * 10 * t) + cnse1
s2 = np.cos(np.pi * t) + cnse2 + np.sin(2 * np.pi * 10 * t)
fig, [ax1, ax2] = plt.subplots(2, 1)
ax1.set_title('matplotlib.pyplot.cohere() Example\n',
fontsize = 14, fontweight ='bold')
ax1.plot(t, s1, t, s2)
ax1.set_xlim(0, 5)
ax1.set_xlabel('time')
ax1.set_ylabel('s1 and s2')
ax1.grid(True)
ax2.cohere(s1, s2, 256, 1./dt)
ax2.set_ylabel('coherence')
plt.show()
输出: