在哪些特定情况下使用了两个 - matplotlib.pyplot.imshow()和matplotlib.pyplot.show()?

时间:2017-12-07 06:02:00

标签: python matplotlib plot imshow

我查看了两者的文档,但文档没有为两者的特定用例指定。我还发现有时imshow()属性会自动显示数字,但有时需要使用show()属性来显示数字。在文档中,imshow()属性提到了在轴上显示图像但是单词" axes"在show()属性中缺少。字轴更具体地指的是什么?

Button Style with Gylph-icons

imshow() documentation

2 个答案:

答案 0 :(得分:0)

正如您在文档中看到的那样,imshow会显示 图片 ,而show会显示 数字< / EM> 即可。

Imshow的参数是array_type对象,例如jpeg图片(对于有色,其形状可以是 nxmx 3 ,对于黑色可以是 nxm 和白色。

当你运行一个调用方法为.plot()或hist()的脚本时,你需要调用.show()来显示它们。

要显示图像,请调用imshow()。

希望它有所帮助。

答案 1 :(得分:0)

除了imshowshow中都有“show”这两个词,它们没有任何共同之处。

imshow是一个绘图命令。因此,它与其他绘图命令(如plotscatterpcolorcontour等处于同一级别。这些绘图命令将在轴内生成一些图形数据表示。轴基本上是您在绘图周围看到的矩形。

plt.show()是您需要在结束时生成图形输出的命令。这个功能使以前由一个或多个绘图命令生成的图形实际显示在屏幕上 - 因此名称为“show”。

所以你通常有

import matplotlib.pyplot as plt
<plotting command>
plt.show()

E.g。

plt.scatter(...)
plt.show()

plt.imshow(...)
plt.show() 

现在在某些情况下,根据您运行代码的环境,不需要使用plt.show()。这是因为环境意识到正在生成matplotlib图,因此它将自动为您生成输出,而无需调用plt.show()。这主要是在IPython会话或Jupyter笔记本中。

总结:为了制作带有图像的情节,请致电plt.imshow(..)。您是否需要调用plt.show()来调用屏幕上的表示取决于环境。如果您不想在屏幕上显示图像,例如将其保存到文件中,您将省略plt.show()并调用

plt.imshow(...)
plt.savefig(...)

代替。