我此刻正试图运行以下代码:
imgplot = plt.imshow(dose_data, extent = [0,4,0,6], aspect = 'auto')
在控制台上,我输入了以下输入:
In[38]:imgplot
Out[38]: <matplotlib.image.AxesImage at 0x123ebd198>
输出让我想知道对象是什么。在查阅文档后,它看起来像一个AxesImage对象(AxesImage Documentation)。但是我想知道如何使用imgplot中存储的对象。目前,我既不能看到它是什么,也不能将其保存为图像。
P.S。我知道如何显示图像以及如何保存图像。我只是想知道这个对象是如何有用的以及它实际上是什么(比如,它是一个图像对象?一个数组?还是其他一些奇怪的对象?)
答案 0 :(得分:3)
正如您已经发现的那样,plt.imshow()
的返回类型是matplotlib.image.AxesImage
。调用img
时得到的对象img = plt.imshow()
是该类的实例。
一般情况下,你不必关心这个对象,因为它绑定到一个轴上,你想要做的大部分工作,如显示图形或保存它,不需要任何控制AxesImage
本身。
与任何其他对象一样,访问其某些属性以供以后使用可能很有用。例如img.cmap
会返回行李的颜色图,img.get_extent()
会为您提供图片范围。
我想到了两个应用程序,经常使用AxesImage
:
img.set_data(data)
plt.colorbar(img, cax=cax)
将图片img
的颜色条设置为轴cax
。有关详细信息,您可能需要优化您的问题,更具体地询问某些属性,应用程序,潜在用途等。
答案 1 :(得分:1)
如果您希望使用绘图对象的对象特性,请首先启动一个图形和轴对象。
figure, axes = plt.subplots()
# or:
figure = plt.figure()
axes = figure.add_subplot(111)
然后您可以使用axes对象进行绘图。使用axes对象可以操作绘图中可以看到的大部分内容。
axes.imshow(...)
或保存数字
figure.savefig('file.png')