49

matplotlib の imshow() メソッドを使用して小さなでこぼこした行列を表すと、最終的にピクセル間の平滑化が行われます。これを無効にする方法はありますか?プレゼンテーションで私の図が誤解を招くようになります。imshow() でプロットされた 28x28 行列

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

4

2 に答える 2

54

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")

ここに画像の説明を入力

于 2011-12-04T16:25:59.983 に答える
20

機能を試すこともできます

matshow 

この名前は、それがあなたが求めたものを正確に実行することを示しています-行列を表します。フィギュアをあまりカスタマイズする必要がない場合にとても便利です。

ところで、matplotlibの最高のリソースの1つは彼らのギャラリーです

于 2012-02-12T19:09:18.047 に答える