使用imshow创建图像

时间:2018-10-09 09:38:00

标签: python image numpy matplotlib imshow

当我有三个数组时,我正在尝试创建图像,前两个数组包含x和y方向的像素坐标,而第三个数组具有每个像素应具有的值。在x方向上有275个像素,在y方向上有72个像素。x数组由条目1的72倍组成,然后由条目2的72倍组成,依此类推。 y数组由最多计数为72的条目组成,然后再次从头开始,因此总数为72 275次。对于这些像素点中的每一个,我都有一个特定的像素值rad。

fig = figure()
frame = fig.add_subplot(1,1,1)
im = frame.imshow((ix, iy, rad), cmap="inferno")
fig.colorbar(im)
show()

但是输出图像看起来是平坦的而不是正方形的。

代码输出

Output of the code

谢谢!

1 个答案:

答案 0 :(得分:0)

您似乎想要的是pcolormesh,而不是imshow。当您要显示数组时,imshow效果最佳。因此,只会以rad为论点。相反,您希望使用带有x和y坐标的pcolor,以及一个显示每个x,y坐标值的数组。

要注意的是ix,iy和rad都必须是相同的暗度才能使pcolor起作用。但是,使用numpy.meshgrid很容易,它将使用它们来生成您需要的数组。请尝试以下操作:

xx,yy = numpy.meshgrid(ix,iy)
frame.pcolormesh(xx,yy,rad,cmap='inferno')

这应该有效。