📅  最后修改于: 2023-12-03 15:37:21.043000             🧑  作者: Mango
在 Python 中使用 matplotlib 库的函数 imshow() 可以显示图片,但默认情况下会显示网格,有些情况下需要将网格删除。
以下是一些方法来实现在 imshow 中删除网格:
简单地使用 plt.axis('off') 将使整个图表中的所有轴的刻度和标签隐藏掉。
示例代码如下:
import matplotlib.pyplot as plt
import numpy as np
# Generate random data
data = np.random.randint(0, 255, size=(100, 100))
# Show image without grid
plt.imshow(data, cmap='gray')
plt.axis('off')
plt.show()
可以设置 x 轴和 y 轴上的 ticks 和 ticklabels 的属性来删除网格。只需要将它们的可见性设置为 False 即可。
示例代码如下:
import matplotlib.pyplot as plt
import numpy as np
# Generate random data
data = np.random.randint(0, 255, size=(100, 100))
# Show image without grid
plt.imshow(data, cmap='gray')
plt.tick_params(axis='both', which='both', length=0, labelsize=0)
plt.show()
可以使用 mpl.ticker.NullLocator() 来删除 x、y 轴上的 ticks。
示例代码如下:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
# Generate random data
data = np.random.randint(0, 255, size=(100, 100))
# Show image without grid
plt.imshow(data, cmap='gray')
ax = plt.gca()
ax.xaxis.set_major_locator(mpl.ticker.NullLocator())
ax.yaxis.set_major_locator(mpl.ticker.NullLocator())
plt.show()
以上是在 imshow 中删除网格的三种不同方法,可以根据不同的需求进行选择。