为什么Matplotlib的imshow不会将0.5绘制为灰色?

问题描述 投票:0回答: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()

如果我不将单位矩阵乘以一半,我就会得到我所期望的结果。 但是,将其乘以一半,我预计会沿对角线看到灰色。 然而,它仍然在那里绘制白色。

我是否遗漏了一些小细节? 有没有办法获得我期望的行为?

python-3.x matplotlib
1个回答
0
投票

您可能想要这个 -

import numpy as np
from matplotlib import pyplot as plt


matrix = 0.5*np.identity(5)
plt.imshow(matrix, cmap='gray', vmin=0, vmax=5)
plt.show()

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

© www.soinside.com 2019 - 2024. All rights reserved.