Matplotlib imshow:标签是图像索引的任意函数
Matplotlib imshow:标签是图像索引的任意函数,matplotlib,axis-labels,Matplotlib,Axis Labels,imshow根据其列索引(x轴)和行索引(y轴)绘制矩阵。我希望轴标签不是索引,而是索引的任意函数 e、 g.基音检测 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','
imshow
根据其列索引(x轴)和行索引(y轴)绘制矩阵。我希望轴标签不是索引,而是索引的任意函数
e、 g.基音检测
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)
您可以结合使用定位器和格式化程序来实现这一点
您可以使用定位器
s和格式化程序
s的组合来实现这一点
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()