Matplotlib 如何保存与原始数组维度相同的彩色映射数组?

Matplotlib 如何保存与原始数组维度相同的彩色映射数组?,matplotlib,colormap,Matplotlib,Colormap,我有我想保存为png的数据。我需要保持精确的像素尺寸-我不需要任何像素间插值、平滑或上/下大小调整等。不过,我确实希望使用彩色贴图(以及matplotlib的imshow的一些其他功能)。在我看来,有几种方法可以做到这一点: 1) 手动滚动我自己的颜色映射。(我宁愿不这样做) 2) 了解如何确保imshow生成的图形中图像的像素尺寸准确无误,然后仅提取图形的图像部分进行保存 3) 使用其他一些方法,可以直接为我提供一个颜色映射数组(即我的NxN灰度数组->NxNx3数组,使用matplotlib

我有我想保存为png的数据。我需要保持精确的像素尺寸-我不需要任何像素间插值、平滑或上/下大小调整等。不过,我确实希望使用彩色贴图(以及
matplotlib
imshow
的一些其他功能)。在我看来,有几种方法可以做到这一点:

1) 手动滚动我自己的颜色映射。(我宁愿不这样做)

2) 了解如何确保imshow生成的图形中图像的像素尺寸准确无误,然后仅提取图形的图像部分进行保存

3) 使用其他一些方法,可以直接为我提供一个颜色映射数组(即我的NxN灰度数组->NxNx3数组,使用matplotlibs颜色映射之一)。然后使用另一个png保存方法保存它,例如
scipy.misc.imsave

如何执行上述操作之一?(或其他替代方法)

当我直接使用
savefig
保存图形时,我的问题出现了,我意识到我无法放大细节。放大并不能解决这个问题,因为像素之间的模糊正是我要寻找的东西之一,而像素大小具有物理意义

编辑: 例如:


注意:放大交互式图形会给您一个非常不同的视图,然后尝试放大保存的图形。我可以提高保存图形的分辨率,但这有它自己的问题。我真的需要修复分辨率。

看来您正在寻找

在这种情况下,

plt.imsave("filename.png", Z, cmap='inferno')

尝试
plt.savefig('colormapeg.png',dpi=1000)
?这仍然不能很好地工作,因为它会增加样本。如果你对它进行了足够的采样,那么在原始图像中每像素有10+个像素,这部分是有效的(至少在视觉上),因为最近邻插值。我在这里感兴趣的是检查像素尺度上的细节——以及像素化是如何影响它的——所以任何干扰像素化的东西都不起作用。有一个函数直接用于此。不知道我怎么会错过它。谢谢
plt.imsave("filename.png", Z, cmap='inferno')