Python 如何';关闭&x27;matplotlib中imshow()的模糊效果?

Python 如何';关闭&x27;matplotlib中imshow()的模糊效果?,python,numpy,matplotlib,plot,Python,Numpy,Matplotlib,Plot,我想做一个概率的彩色图,但是imshow会为概率为零的点生成模糊值。如何去除真实网格点周围的模糊边缘 例如: import numpy as np import matplotlib.pyplot as plt a=np.asarray([[ 0.00000000e+00 , 1.05824446e-01 , 2.05086136e-04, 0.00000000e+00], [ 1.05824446e-01 , 3.15012305e-01 , 1.31255127e-01 ,

我想做一个概率的彩色图,但是imshow会为概率为零的点生成模糊值。如何去除真实网格点周围的模糊边缘

例如:

import numpy as np
import matplotlib.pyplot as plt

a=np.asarray([[  0.00000000e+00 , 1.05824446e-01 ,  2.05086136e-04,   0.00000000e+00],
[  1.05824446e-01 ,  3.15012305e-01  , 1.31255127e-01  , 1.05209188e-01],
 [  2.05086136e-04  , 1.31255127e-01 ,  0.00000000e+00 ,  0.00000000e+00],
 [  0.00000000e+00   ,1.05209188e-01  , 0.00000000e+00  , 0.00000000e+00]])
im=plt.imshow(a,extent=[0,4,0,4],origin='lower',alpha=1,aspect='auto')
plt.show()

默认情况下(更改为mpl 2.0),
imshow
插值数据(就像您希望对图像所做的那样)。您只需告诉它不要插值:

im = plt.imshow(..., interpolation='none')
“最近的”
也可以满足您的需求。有关各种插值的示例,请参见

您还可以使用:

im = plt.imshow(..., interpolation='nearest')

这对于离散变量尤其有效。

谢谢。正确的属性是插值
im=plt.imshow(…,interpolation='none')
注意,有些后端不支持
none
,而
最近的
似乎到处都可以接受。@tiago什么后端不接受'none'?这听起来像是个虫子me@tcaswell:macosx的
后端不支持它。它抛出以下警告:
警告:后端(matplotlib.backends.backend_macosx.RendererMac)不支持interpolation='none'。图像将以“最近”模式插值。[matplotlib.image]
不应发出警告,因为这是记录在案的行为: