【问题标题】:Matplotlib subplot missing gridMatplotlib 子图缺少网格
【发布时间】:2020-09-23 20:09:17
【问题描述】:

我正在尝试绘制两张图。
第一张显示随机生成的像素,第二张显示随机生成的像素。
当我绘制这些子图时,第一个子图不显示网格,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()

【问题讨论】:

    标签: python numpy matplotlib scikit-image imshow


    【解决方案1】:

    这里是反转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() 显示的刻度是指每个单元格的中心,因为这是您感兴趣的信息。在迦太基平面,因为这不是迦太基平面。您正在翻译图像中矩阵的内容,因此imshow() 会向您显示每个单元格中心的刻度。

    【讨论】:

      猜你喜欢
      • 2020-12-11
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 2013-12-01
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多