plt.imshow 和 plt.show 的区别,为什么要同时用?
plt.imshow
和 plt.show
是 Matplotlib 库中用于显示图像的两个不同函数。虽然它们常常一起使用,但它们在功能和用途上有明显的区别。
plt.imshow
:
- 功能:
plt.imshow
用于在绘图区域显示一幅图像。它会创建一个图像对象,并将其添加到当前的绘图区域(即当前的 Axes 对象)中。 - 使用场景: 当你有一个图像数据(如一个 NumPy 数组)并希望在绘图区域显示它时,可以使用
plt.imshow
。例如,显示一个二维数组作为图像。
import matplotlib.pyplot as plt import numpy as np # 创建一个随机的二维数组 data = np.random.rand(10, 10) # 使用 plt.imshow 显示数组 plt.imshow(data)
plt.show
:
- 功能:
plt.show
用于显示所有已创建的图形。它会打开一个图形窗口,并渲染当前所有的绘图对象。这是 Matplotlib 用于将绘图对象实际显示在屏幕上的方法。 - 使用场景: 当你完成了所有绘图命令,并希望将图形显示在屏幕上时,可以使用
plt.show
。在没有plt.show
的情况下,绘图命令只是创建了图形对象,并不会真正显示。
# 显示图像 plt.show()
为什么要同时用?
结合使用的典型过程:
- 先使用
plt.imshow
来创建并配置图像。 - 然后使用
plt.show
来实际显示图像。
原因:
plt.imshow
创建图像对象并配置其属性,但不会显示图像。plt.show
实际上显示所有已经配置好的图形,包括由plt.imshow
创建的图像。
举个完整的例子:
import matplotlib.pyplot as plt import numpy as np # 创建一个随机的二维数组 data = np.random.rand(10, 10) # 使用 plt.imshow 显示数组 plt.imshow(data) # 显示图像 plt.show()
在这个例子中,plt.imshow
创建了一个图像对象,plt.show
则将这个图像对象显示在屏幕上。这样,你就可以看到实际的图像输出。