【发布时间】:2018-05-21 04:14:03
【问题描述】:
我浏览了两者的文档,但文档没有指定两者的特定用例。我还发现,有时 imshow() 属性自己会显示图形,但有时需要使用 show() 属性来显示图形。在文档中, imshow() 属性提到了在轴上显示图像,但 show() 属性中缺少“axes”一词。轴这个词更具体指的是什么?
【问题讨论】:
标签: python matplotlib plot imshow
我浏览了两者的文档,但文档没有指定两者的特定用例。我还发现,有时 imshow() 属性自己会显示图形,但有时需要使用 show() 属性来显示图形。在文档中, imshow() 属性提到了在轴上显示图像,但 show() 属性中缺少“axes”一词。轴这个词更具体指的是什么?
【问题讨论】:
标签: python matplotlib plot imshow
正如您在文档中看到的那样,imshow 显示一个图像,而show 显示一个图形。
Imshow 的参数是 array_type 对象,例如 jpeg 图片(形状可以是 nxmx 3 表示 colored,或 nxm 表示黑色和白色的。
当你运行一个调用 .plot() 或 hist() 方法的脚本时,你需要调用 .show() 来显示它们。
要显示图像,请调用 imshow()。
希望对你有帮助。
【讨论】:
除了imshow 和show 都带有“show”这个词外,它们没有任何共同之处。
imshow 是一个绘图命令。因此,它与plot、scatter、pcolor、contour 等其他绘图命令处于同一级别。这些绘图命令将在轴内生成一些图形数据表示。轴本质上是您在绘图周围看到的矩形。
plt.show() 是您需要在最后给出的命令以生成图形输出。正是该功能使先前由一个或多个绘图命令生成的图形实际显示在屏幕上 - 因此名称为“显示”。
所以你通常有
import matplotlib.pyplot as plt
<plotting command>
plt.show()
例如
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(...)
改为。
【讨论】: