Jib*_*Dan 6 python plot matplotlib imshow
我当时正在尝试运行以下代码:
imgplot = plt.imshow(dose_data, extent = [0,4,0,6], aspect = 'auto')
Run Code Online (Sandbox Code Playgroud)
在控制台上,我输入了以下输入:
In[38]:imgplot
Out[38]: <matplotlib.image.AxesImage at 0x123ebd198>
Run Code Online (Sandbox Code Playgroud)
输出使我想知道对象是什么。在查阅了文档之后,它看起来像一个AxesImage对象(AxesImage文档)。但是我想知道如何使用存储在imgplot中的对象。目前,我既看不到它是什么,也无法保存到图像中。
PS我知道如何显示图像以及如何保存图像。我只是想知道这个对象如何有用以及它实际上是什么(例如,它是图像对象还是数组?还是其他一些奇怪的对象类型?)
如您所知,返回类型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。有关更多详细信息,您可能需要优化您的问题,更具体地询问某些属性,应用程序,潜在用途等。
如果您希望使用绘图对象的对象性质,请首先启动图形和轴对象。
figure, axes = plt.subplots()
# or:
figure = plt.figure()
axes = figure.add_subplot(111)
Run Code Online (Sandbox Code Playgroud)
然后您可以使用坐标区对象进行绘图。轴对象可让您操纵绘图中可以看到的大多数内容。
axes.imshow(...)
Run Code Online (Sandbox Code Playgroud)
或者保存数字
figure.savefig('file.png')
Run Code Online (Sandbox Code Playgroud)