如何使用 pyplot 使 x 轴适应音频/声学?

Posted

技术标签:

【中文标题】如何使用 pyplot 使 x 轴适应音频/声学?【英文标题】:How to get an x-axis adapted to audio/acoustics with pyplot? 【发布时间】:2018-05-06 11:06:31 【问题描述】:

绘制频响曲线时:

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
w, h = signal.freqz([1, -1])
x = w * 44100 * 1.0 / (2 * np.pi)
y = 20 * np.log10(abs(h))

然后plt.plot(x, y)plt.semilogx(x, y) 给:

但它们都没有“音频中使用的标准 x 轴”。

问题:音频应用中常用的x轴如何设置?包括:

某种对数轴,但不确定:它真的是正常的对数轴吗(参见后面的示例)? 轴从 20 到 20Khz,刻度线["20", "50", "100", "200", "500", "1K", "2K", "5K", "10K", "20K"]

这里有几个例子来说明我的意思:

【问题讨论】:

【参考方案1】:

你喜欢这个吗?

f, ax = plt.subplots(figsize=(12, 4))
ax.set(xscale="log")
plt.plot(x, y)
plt.grid(which="both", axis='both')
_ = plt.xticks([20,50,100,200,500,1000,2000,5000,10000,20000], 
               ["20", "50", "100", "200", "500", "1K", "2K", "5K", "10K", "20K"])

【讨论】:

以上是关于如何使用 pyplot 使 x 轴适应音频/声学?的主要内容,如果未能解决你的问题,请参考以下文章

pyplot:如何以人类可读的方式显式地对轴进行编号

在 PyPlot 中反转 Y 轴

Pyplot:在x轴上使用百分比

传统声学模型之HMM和GMM

matplotlib.pyplot画图笔记

如何删除 pyplot.bar 中的轴?