141

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

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

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

4

4 に答える 4

188

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

等しいアスペクトが必要ない場合は、次のように設定できaspectますauto

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-等しい

于 2012-05-11T06:05:24.127 に答える
61

That's strange, it definitely works for me:

from matplotlib import pyplot as plt

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

I am using the "MacOSX" backend, btw.

于 2012-05-10T20:17:23.533 に答える
9

2020年アップデート

@baxxx のリクエストに応じて、廃止予定のため、ここに更新がありrandom.randます。

これはmatplotlip 3.2.1で動作します:

from matplotlib import pyplot as plt
import random
import numpy as np

random = np.random.random ([8,90])

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

これはプロットします:

ここに画像の説明を入力

乱数を変更するには、np.random.normal(0,1,(8,90))(ここでは平均 = 0、標準偏差 = 1) を試すことができます。

于 2020-05-03T10:31:11.473 に答える
2

私もpythonは初めてです。これはあなたが望むことをするように見えるものです

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

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

于 2012-05-10T20:18:52.203 に答える