我在使用imshow绘制对数y轴图时遇到问题。我的相关代码如下:
plt.imshow(power[channel], extent=(0,600,1,45), \
origin='lower', cmap='jet', aspect='auto', vmin=0, vmax=0.00025)
plt.colorbar()
plt.show(block=False)
这给出了以下图:
我的问题是,我需要“范围”参数,因为否则y轴标记在我的情况下是不正确的。然而,似乎imshow(其中包括“范围”参数)不允许对数轴缩放。添加线
plt.yscale('log')
给了我一个警告“图像不支持非线性轴”。
有没有一种方法可以在保持“范围”功能的同时获得对数y轴缩放?
1条答案
按热度按时间insrf1ej1#
我想你现在已经解决了这个问题,但是我想发布一个答案,以防有人来找我(像我一样)。我在尝试使用log y轴做
plt.imshow()
时遇到了一个非常类似的问题:使用范围给了我错误的轴标签。我的“解决方案”是使用
plt.pcolormesh()
而不是plt.imshow()
。你可以在你的图像旁边传递一个x和y网格,然后你可以设置你的对数轴,如我下面所示。输出为:
你可以看到它很好地处理了对数轴。希望这能帮助你或其他任何人来看(我知道这并不能回答你的确切问题,但它是一个直接的解决方案)。