代码之家  ›  专栏  ›  技术社区  ›  mins

如何在librosa specshow中显示节拍而不是时间?

  •  0
  • mins  · 技术社区  · 4 年前

    我用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');
    

    enter image description here

    x刻度值是错误的,它们应该是拍数的0、1、2、3等,而不是根据默认采样率22k计算的时间。我看不到 x_axis 选项可以简单地显示索引编号。我能做的就是把轴心藏起来。怎样

    我可以用指数代替时间吗?我必须在pyplot中手动设置Xtick和Xlabel吗?

    0 回复  |  直到 4 年前