代码之家  ›  专栏  ›  技术社区  ›  scribe

为什么Matplotlib的imshow图0.5不会显示为灰色?

  •  0
  • scribe  · 技术社区  · 1 月前

    我记得这个工作。零意味着完全黑暗,一意味着完全照亮,介于两者之间意味着一些灰色阴影,用于绘制 pyplot.imshow 我记得像那样绘制手写数字的MNIST数据。我写了以下内容,

    import numpy as np
    from matplotlib import pyplot as plt
    
    
    matrix = 0.5*np.identity(5)
    plt.imshow(matrix, cmap='grey')
    plt.show()
    

    如果我不把恒等式矩阵乘以一半,我就得到了我所期望的结果。但是,把它乘以一半,我预计对角线上会看到灰色。然而,它仍然在那里策划白人。

    我错过了一些小细节吗?有没有办法得到我所期望的行为?

    1 回复  |  直到 1 月前
        1
  •  1
  •   Karan Shishoo    1 月前

    你可能想要这个-

    import numpy as np
    from matplotlib import pyplot as plt
    
    
    matrix = 0.5*np.identity(5)
    plt.imshow(matrix, cmap='gray', vmin=0, vmax=1)
    plt.show()
    

    当输入为0.5单位矩阵时,您的程序似乎默认为vmax为0.5(并使0.5的值与1的值基本相同),设置边界似乎可以解决这个问题