我使用值范围(0,1)为RGB颜色的自定义3xN数据,并希望使用matplotlib.imshow()来显示它。
import pylab as plt
import numpy as np
Z = np.vstack([np.zeros((1, 256)), np.zeros((1, 256,)), np.zeros((1, 256,))])
im = plt.imshow(Z, interpolation='none', aspect='auto')
plt.colorbar(im, orientation='horizontal')
plt.show()
我希望这能给我一个黑色的形象。但我却得到了这样一个绿色的:
而且Y形记号看起来很有趣。我根本不明白Y轴上的-0.5勾号。为什么y轴的范围在[-0.5,2.5]之间?
因为您基本上已经向
np.imshow
发送了一个无效图像。尝试打开计算机中的图像并进行比较。打开一个图像会给你一个(dimx, dimy, color_depth)
形状,而你的Z
是(3, 256)
形状。要确切地了解发生了什么,您可能应该查看imshow
源代码,但我相当肯定它们有一些错误处理,从而产生您的结果。要创建一个图像,您可能应该它会给你一个你想要的黑色方块。
此外,imshow还显示了一个坐标系,该坐标系左上角有一个
(0,0
,以匹配其他人传统上如何显示图像坐标系。对于那些几年前登陆这个页面的人来说,OP找到了最初问题的原因,但是更简单的解决方法是:
np.dstack()
。numpy.dstack我自己想出来了:
下面是一个简单的解决方案:
相关问题 更多 >
编程相关推荐