web-dev-qa-db-ja.com

imshow()の図が小さすぎる

Matlabのimagesc()に似ているので、imshow()を使用してnumpy配列を視覚化しようとしています。

imshow(random.Rand(8, 90), interpolation='nearest')

結果の図は、灰色のウィンドウの中央で非常に小さく、ほとんどのスペースは空いています。パラメータを設定して図を大きくするにはどうすればよいですか? figsize =(xx、xx)を試しましたが、それは私が望むものではありません。ありがとう!

74
Ruofeng

aspectimshow引数を指定しない場合、matplotlibrcimage.aspectの値が使用されます。新しいmatplotlibrcのこの値のデフォルトはequalです。したがって、imshowは、等しいアスペクト比で配列をプロットします。

等しいアスペクトが必要ない場合は、aspectautoに設定できます

imshow(random.Rand(8, 90), interpolation='nearest', aspect='auto')

次の図が得られます

imshow-auto

等しいアスペクト比が必要な場合は、figsizeをアスペクトに合わせて調整する必要があります

fig, ax = subplots(figsize=(18, 2))
ax.imshow(random.Rand(8, 90), interpolation='nearest')
tight_layout()

あなたに与えます:

imshow-equal

110
bmu

それは奇妙です、それは間違いなく私のために働く:

from matplotlib import pyplot as plt

plt.figure(figsize = (20,2))
plt.imshow(random.Rand(8, 90), interpolation='nearest')

私は「MacOSX」バックエンドを使用しています。

19
Nikolas

私もpythonが初めてです。あなたがしたいことをするように見えるものがあります

axes([0.08, 0.08, 0.94-0.08, 0.94-0.08]) #[left, bottom, width, height]
axis('scaled')`

これがキャンバスのサイズを決定すると信じています。

2
toylas