Matplotlib 子图缺少网格

Matplotlib subplot missing grid

我正在尝试绘制两个图表。
第一个显示随机生成的像素,第二个显示腐蚀的像素。
当我绘制那些子图时,第一个不显示网格,Y 轴编号也反转并且原点移动了一点点。
你能告诉我如何解决这些问题吗?

下面是我的代码:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from skimage.morphology import disk,erosion

x=np.random.randint(2,size=(10,10))
se=disk(1)
y=erosion(x,se)

fig, (ax0, ax1) = plt.subplots(1,2, figsize=(10,5))
cmap = mpl.colors.ListedColormap(['w', 'k'])

ax0.set_xticks(np.arange(0, 10, 1))
ax0.set_yticks(np.arange(0, 10, 1))
ax0.set_title("Input image")

ax1.set_xticks(np.arange(0, 10, 1))
ax1.set_yticks(np.arange(0, 10, 1))
ax1.set_title("Eroded Image")

ax0.imshow(x,interpolation='none', cmap=cmap, norm=norm)
ax1.imshow(y,interpolation='none', cmap=cmap, norm=norm)

plt.rc('grid', linestyle="-", color='red')
plt.grid(True)
plt.show()

这里是反转y轴的代码:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from skimage.morphology import disk,erosion

x=np.random.randint(2,size=(10,10))
se=disk(1)
y=erosion(x,se)

fig, (ax0, ax1) = plt.subplots(1,2, figsize=(10,5))
cmap = mpl.colors.ListedColormap(['w', 'k'])

ax0.set_xticks(np.arange(0, 10, 1))
ax0.set_yticks(np.arange(0, 10, 1))
ax0.set_title("Input image")

ax1.set_xticks(np.arange(0, 10, 1))
ax1.set_yticks(np.arange(0, 10, 1))
ax1.set_title("Eroded Image")

ax0.imshow(x,interpolation='none', cmap=cmap)
ax1.imshow(y,interpolation='none', cmap=cmap)

plt.rc('grid', linestyle="-", color='red')
ax0.invert_yaxis()
ax1.invert_yaxis()

plt.grid(True)
plt.show()

绘制内容后使用.invert_yaxis()方法即可。这是结果:

关于刻度线:您正在通过 imshow() 绘制矩阵,因此 x 和 y 值沿其轴不连续,它们集中在矩阵的单元格中。 imshow() 显示的刻度指的是每个单元格的中心,因为这是您感兴趣的信息。没有 'origin' 穿过 'x' 和'y' 轴在直角坐标平面中,因为这不是直角坐标平面。您正在翻译图像中矩阵的内容,因此 imshow() 向您显示每个单元格中心的刻度。