web-dev-qa-db-ja.com

matplotlibでのimshowのアンチエイリアスを防止

Matplotlibのimshow()メソッドを使用して小さなnumpyマトリックスを表すと、ピクセル間で平滑化が行われます。これを無効にする方法はありますか?それは私の姿をプレゼンテーションで誤解させるものにします。A 28x28 matrix plotted with imshow()

上の図は28x28の画像なので、各ピクセルを表す大きな正方形の単一色が表示されます(imagesc()を使用すると、MATLABが表示するため)。しかし、代わりに、ピクセルは隣接するピクセルでぼやけているように見えます。この動作を無効にする方法はありますか?

42

imshowの補間オプションがあり、マトリックスのレンダリングに補間を適用する方法と方法を制御します。あなたがしようとすると

imshow(array, interpolation="nearest") 

あなたはあなたが望むような何かを得るかもしれません。例として

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

imshow(A)

と比べて

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

enter image description here

48
talonmies

関数を試すこともできます

matshow 

どの名前がそれがあなたが尋ねたとおりに機能することを示しました-行列を表します。フィギュアをあまりカスタマイズする必要がないときにとても便利です。

ところで、matplotlibの最高のリソースの1つは、その Gallery です。

19
eldad-a