繁体   English   中英

如何在matplotlib中“关闭” imshow()的模糊效果?

[英]How to 'turn off' blurry effect of imshow() in matplotlib?

我想绘制一个概率图,但是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')

'nearest'也将满足您的需求。 有关所有插值的示例,请参见matlab中像matplotlib imshow一样在imagec \\ imshow的像素之间进行平滑

doc

您还可以使用:

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

这对于离散变量特别有效。

暂无
暂无

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

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