首页 > 解决方案 > 如何在 librosa specshow 中显示节拍数而不是时间?

问题描述

我正在使用 librosa 来计算和显示一个色谱图,其中帧是按节拍周期聚合的。

chromagram = librosa.feature.chroma_cqt(y=y_h[in_range], sr=sr)
beat_chroma = librosa.util.sync(chromagram, beat_frames, aggregate=np.median)
fig,ax = plt.subplots()
librosa.display.specshow(beat_chroma, x_axis='time', y_axis='chroma')
ax.set(title='Chromagram aggregated by beats');

在此处输入图像描述

x 刻度值是错误的,它们应该是 0、1、2、3 等节拍数,而不是根据默认采样率 22k 计算的时间。我没有在x_axis选项中看到简单显示索引号的可能性。我能做的最好的就是隐藏轴。如何

我可以显示索引而不是时间吗?我必须在 pyplot 中手动设置 xticks 和 xlabels 吗?

标签: pythonlibrosa

解决方案


推荐阅读