繁体   English   中英

在 matplotlib 中防止 imshow 的抗锯齿

[英]Prevent anti-aliasing for imshow in matplotlib

当我使用 matplotlib 的 imshow() 方法来表示一个小的 numpy 矩阵时,它最终会在像素之间进行一些平滑处理。 有什么办法可以禁用它吗? 它使我的数字在演示中具有误导性。使用 imshow() 绘制的 28x28 矩阵

上图是一个 28x28 的图像,所以我应该看到代表每个像素的单色大方块(因为 matlab 会在使用 imagesc() 时显示它)。 但相反,像素似乎被相邻像素模糊了。 有没有办法禁用这种行为?

imshow有一个插值选项,它控制如何以及是否将插值应用于矩阵的渲染。 如果你试试

imshow(array, interpolation="nearest") 

你可能会得到更像你想要的东西。 举个例子

A=10*np.eye(10) + np.random.rand(100).reshape(10,10)
imshow(A)

显示(A)

和....相比

A=10*np.eye(10) + np.random.rand(100).reshape(10,10)
imshow(A, interpolation="nearest")

在此处输入图片说明

你也可以试试这个功能

matshow 

哪个名称表明它完全符合您的要求 - 代表矩阵。 当您不需要过多自定义图形时,它非常方便。

顺便说一句,matplotlib 最好的资源之一是他们的画廊

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM