Matplotlib Coherence plot ValueError

时间:2015-04-02 17:45:53

标签: python pandas matplotlib

我正在尝试使用此代码在导入的csv中绘制类似于Matplotlib Gallery的连贯图:

r1 = mru['r1']
r2 = mru['r2']
t = mru['time']

plt.cohere(t, r1, 'b-', t, r2, 'g-', ax=ax10)
ax10.xlim(0,5)
ax10.xlabel('time')
ax10.ylabel('r1 and r2')
ax10.grid(True)

我收到此错误:

ValueError: Coherence is calculated by averaging over *NFFT*
length segments.  Your signal is too short for your choice of *NFFT*

所以我将值改为2:

plt.cohere(t, r1, 'b-', t, r2, 'g-', NFFT=2, ax=ax10)

得到此错误:

TypeError: cohere() got multiple values for keyword argument 'NFFT'

如何正确绘制相关性?

1 个答案:

答案 0 :(得分:1)

您传递给cohere()的参数是错误的。您不需要时间,只需要两个系列r1r2,以及常见的采样率Fs

您将收到原始错误消息,因为根据文档(http://matplotlib.org/api/mlab_api.html#matplotlib.mlab.cohere),函数期望NFFT成为第3个参数,并且它以某种方式将'b-'解释为数字。当你在其他地方明确定义NFFT时,你就会加倍研究NFFT的定义。

尝试

plt.cohere(r1, r2, NFFT=256)

或者您需要的任何NFFT值。确保你的采样率也正确,否则你的结果将没有实际意义。