相关疑难解决方法(0)

matplotlib中imshow的非线性轴

我在对数间隔轴上生成二维数组(例如,使用生成x像素坐标logspace(log10(0.95), log10(2.08), n).

我希望使用普通的imshow显示图像,原始分辨率和缩放(我不需要拉伸它 ;数据本身已经是日志缩放),但我想添加刻度,标签,行对数轴上的正确位置.我该怎么做呢?

理想情况下,我可以使用命令行,axvline(1.5)并且该行将位于正确的位置(左起58%),但如果唯一的方法是在logscale坐标和图像坐标之间手动转换,那也没关系.

对于线性轴,extents=在调用imshow时使用我想做的事情,但我没有看到用日志轴做同样事情的方法.

例:

from matplotlib.colors import LogNorm

x = logspace(log10(10), log10(1000), 5)
imshow(vstack((x,x)), extent=[10, 1000, 0, 100], cmap='gray', norm=LogNorm(), interpolation='nearest')
axvline(100, color='red')
Run Code Online (Sandbox Code Playgroud)

此示例不起作用,因为extent =仅适用于线性比例,因此当您在100处执行axvline时,它不会出现在中心.我希望x轴显示10,100,1000,并axvline(100)在100点的中心放一条线,而像素保持相等的间距.

plot logarithm image matplotlib

17
推荐指数
2
解决办法
2万
查看次数

标签 统计

image ×1

logarithm ×1

matplotlib ×1

plot ×1