matplotlib更改位图颜色映射

matplotlib更改位图颜色映射,matplotlib,Matplotlib,我正在使用matplotlib(从原始数据和图像)生成一些合成图形。我试图让脚本拍摄几种文件格式的图像文件,然后通过以下方式打印: Nxy = mpimg.imread(Nxy_filename) imgplot = ax1.imshow(Nxy) 其中ax1是我希望图像显示在其中的子地块。这对于PNG和JPEG图像都适用,但是对于.bmp(相同图像)matplotlib似乎会将其变为蓝色,即 变成: 另一方面,png和jpg文件看起来与原始文件完全相同。你知道为什么会这样吗?我不愿意盲目

我正在使用matplotlib(从原始数据和图像)生成一些合成图形。我试图让脚本拍摄几种文件格式的图像文件,然后通过以下方式打印:

Nxy = mpimg.imread(Nxy_filename)
imgplot = ax1.imshow(Nxy)
其中ax1是我希望图像显示在其中的子地块。这对于PNG和JPEG图像都适用,但是对于.bmp(相同图像)matplotlib似乎会将其变为蓝色,即

变成:


另一方面,png和jpg文件看起来与原始文件完全相同。你知道为什么会这样吗?我不愿意盲目地改变代码中的颜色映射,因为其他图像格式如预期的那样出现。

听起来您的PNG和JPEG图像是RGB图像,恰好是灰色的,而BMP图像是灰色的。检查Nxy的形状。我猜BMP是二维的,而PNG和JPEG图像阵列是三维的。

是的,就是这样。谢谢作为旁注,您可能希望使用
imshow(…,interpolation='nearest')