Imshow 方面效果不佳

Fra*_*ank 1 python matplotlib aspect-ratio imshow

我进行数值模拟,但我的绘图有问题...我的模拟区域的6x35\xc2\xb5m分辨率为640x1024px. \n当我想使用 绘制模拟数据imshow并设置纵横比时:aspect=6/35时,绘图的高度是正确的,但太长了?我究竟做错了什么?

\n\n

图片中:

\n\n

top:模拟掩模,所有图应具有相同的纵横比。

\n\n

middle:方面设置为手动设置为模拟遮罩的方面(6/35)

\n\n

bottom:方面设置为1

\n\n

在此输入图像描述

\n\n

这是我的代码

\n\n
fig = pl.figure(num=None, figsize=(10, 10))\nax = fig.add_subplot(1,1,1)\nimg = ax.imshow(data, aspect=6./35)\n
Run Code Online (Sandbox Code Playgroud)\n

Rut*_*ies 5

您还需要考虑沿两个轴的分辨率差异。对于 6 微米,您的 y 轴有 640 个数据点;对于 35 微米,您的 x 轴有 1024 个数据点。Matplotlib 假设两者相等。

data = np.random.rand(640,1024)

fig, axs = plt.subplots(2,1, figsize=(10, 4))

aspect = 6 / 35

axs[0].set_title('aspect: %1.2f' % aspect)
axs[0].imshow(data, aspect=aspect, interpolation='none')

aspect = (6/35.) * (1024 / 640)

axs[1].set_title('aspect: %1.2f' % aspect)
axs[1].imshow(data, aspect=aspect, interpolation='none')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述