我正在尝试使用 imshow 绘制图像,但我得到了我没想到的输出......显示我的图像的方法是:
def generate_data_black_and_white_heat_map(data, x_axis_label, y_axis_label, plot_title, file_path):
plt.figure()
plt.title(plot_title)
plt.imshow(data.data, extent=[0, data.cols, data.rows, 0], cmap='Greys')
plt.xlabel(x_axis_label)
plt.ylabel(y_axis_label)
plt.savefig(file_path + '.png')
plt.close()
我的数据表示为:
def __init__(self, open_image=False):
"""
The Data constructor
"""
self.data = misc.lena() / 255.0
x, y = self.data.shape
self.rows = x
self.cols = y
我做了一些计算,在某些时候我必须这样做:
# A -> 2D ndarray
A.data[A.data >= 0.5] = 1.0
A.data[A.data < 0.5] = 0.0
这给了我:
但我想要相反的(白色背景)。所以,我只是这样做了:
# A -> 2D ndarray
A.data[A.data >= 0.5] = 0.0
A.data[A.data < 0.5] = 1.0
然后,我得到了这个(!!!):
我只是没明白。这对我来说很有意义。奇怪的是,如果我这样做:
for x in range(A.cols):
for y in range(A.rows):
if A.data[x][y] >= 0.5:
A.data[x][y] = 0.0
else:
A.data[x][y] = 1.0
有用。我是否以错误的方式访问某些内容?
任何帮助我澄清这一点将不胜感激。
先感谢您。