【问题标题】:How to identify all x co-ordinate values for a certain y value from the mathplot in python如何从python中的mathplot中识别某个y值的所有x坐标值
【发布时间】:2020-03-19 11:46:31
【问题描述】:

我已经绘制了使用 matplotlib 和 scipy 从视频中提取的音频 wav 的频率与时间图。

现在我想确定频率(y 坐标)的某个值(如零、峰值正频率等)的所有时间值(x 坐标)。 这是我的绘图代码:

sr, signal = wavfile.read(wave_file_path)

y = signal[:, 0] 
t = np.arange(len(y)) / float(sr)

plt.plot(t, y)
plt.xlabel('t')
plt.ylabel('y')
#plt.show()
plt.save("myplot.png")

我试过(np.interp(0, Signal,time))但这只是给出时间的第一个零频率值,而不是整个y坐标值列表。顺便提一下,我还尝试了print(np.where(t == 0.0)),我不确定这是否是正确的使用方法,因为我只得到(array([0]),) 作为每个wav 文件的结果。

这是我从音频文件中绘制的图表。 我保存了绘图而不是查看,因为我使用的是没有 GUI 的 linux 服务器。 如果通过 GUI 有更简单的方法,那么我也可以尝试。

【问题讨论】:

  • 你能分享yt的至少一些内容,或者wave文件吗?这可能就是要找到答案的地方,对吧?我不认为 matplotlib 对此会有多大用处。

标签: python numpy matplotlib audio scipy


【解决方案1】:

谢谢@Alexander Cécile。是的,我很晚才弄清楚这一点。我设法通过yt 列表的索引获得了我想要的值。我只是使用 matplotlib 使基本列表迭代的操作变得复杂。

我有了使用 mathplotlib 的想法,因为我发现与 scipy 打交道的每个人都在使用 mathplotlib 来绘制他们的点(峰,+ ve 峰,...等),这根本不是我的用例。在没有任何批判性思考的情况下发布这个问题我觉得很愚蠢,不确定我是否应该删除这个问题,所以我回答它而不是评论。

【讨论】:

    猜你喜欢
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 2018-05-12
    相关资源
    最近更新 更多