2013-11-15 18 views
41

私は確率のカラープロットを作成したいが、imshowは確率がゼロの点に対してぼやけた値を生成する。実際の格子点の周りのこのぼやけた周辺をどうやって取り除くことができますか?matplotlibのimshow()のぼかし効果を「消す」方法は?

例:(MPL 2.0に変更された)デフォルトで

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.15e-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() 

enter image description here

答えて

56

(あなたがイメージのためにやりたいように)、imshowは、データを補間します。

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

'nearest'また、あなたが望むもののために動作します:あなたがやらなければならないことは、補間しないようにということを教えています。すべての種類の補間の例については、smoothing between pixels of imagesc\imshow in matlab like the matplotlib imshowを参照してください。

doc

+1

ありがとうございます。正しい属性は補間です。 'im = plt.imshow(...、補間= 'none')' – Cupitor

+1

@Naji Yupそれについては申し訳ありません。私はこれを1日に数回タイプします.... – tacaswell

+3

いくつかのバックエンドは 'none'をサポートしていませんが、' nearest'はどこでも受け入れられるようです。 – tiago

3

はまた、使用することができます:これは、離散変数のために特に適しています

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

関連する問題