imshow:标签作为图像指标的任意函数(imshow: labels as any arbitra

2019-08-01 01:23发布

imshow绘出针对其列索引(x轴)和行索引(y轴)的矩阵。 我想轴标签不是指数,而是指数的任意功能。

例如,基音检测

imshow(A, aspect='auto')其中A.shape == (88200,8)

在x轴,示出了在大约几蜱[11000, 22000, ..., 88000]在y轴,示出了频率仓[0,1,2,3,4,5,6,7]

我要的是:

x轴标记是从样品到秒归一化。 在44.1kHz的采样率2秒的音频,我想在两个蜱[1,2]

y轴标示为节距为注释。 我想在音符的音调的标签['c', 'd', 'e', 'f', 'g', 'a', 'b']

理想情况下:

imshow(A, ylabel=lambda i: freqs[i], xlabel=lambda j: j/44100)

Answer 1:

你可以组合做Locator S和Formatter小号(DOC) 。

ax = gca()
ax.imshow(rand(500,500))

ax.get_xaxis().set_major_formatter(FuncFormatter(lambda x,p :"%.2f"%(x/44100)))
ax.get_yaxis().set_major_locator(LinearLocator(7))
ax.get_yaxis().set_major_formatter(FixedFormatter(['c', 'd', 'e', 'f', 'g', 'a', 'b']))
draw()


文章来源: imshow: labels as any arbitrary function of the image indices