所以我试图基于numpy数组创建2D图像,其中值是x处的强度,y是数组的行/列。通过处理图像的径向轮廓然后在一定范围的半径上积分来生成阵列中的各个值。我得到了4096个值的列表,我将其重塑为64x64数组然后绘制数组。这一切都运行良好,我得到了我正在寻找的数字,并确保它与我的堆栈清除工作。但是,现在当我运行它而不更改集成范围以外的任何内容时,也使用清除的堆栈,图形无法正常生成。我尝试改回原来的限制,现在它也不会生成。
而不是一个完整的图形窗口,窗口出现,我想要的图像位于左下角,非常小,我无法调整大小,放大,移动它或任何东西。如果我尝试保存图像,它只会保存灰色图形窗口,图像位于角落。 Example of the tiny image
在此实例中用于处理图像的代码是
def pixel(image,s,e):
centre = CoM.centre_of_mass(image)
rad = CoM.radial_profile (image, centre)
sumRange = sp.integrate.simps(rad[s:e])
return sumRange
results = []
for i in range(0,64):
for j in range(0,64):
results.append(CoM.pixel(im[i,j].data,30,60))
data = np.array(results)
fig = plt.figimage(data.reshape(64,64))
plt.show()
所以我的问题是,我在我的代码/编译中做了什么,会影响这样的图像,我该如何解决呢?
我尝试使用tight_layout()
,但figimage()
没有将此作为属性。我也试过只使用一个标准的plt.plot(),但我得到的数组的每一行作为一个单独的行绘制。
答案 0 :(得分:1)
也许您想尝试plt.imshow
。 plt.figimage
不会重新取样图像并以像素为单位进行绘制。
来自figimage
的文档:
figimage补充了轴图像(imshow()),它将被重新采样以适合当前轴。如果要重新采样的图像填充整个图形,可以定义大小为[0,1,0,1]的轴。