imshow()の図が小さすぎます


95

それはMatlabのimagesc()に似ているので、私はimshow()を使用して派手な配列を視覚化しようとしています。

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

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


1
私のような他の人がこの投稿にたどり着くのに苦労している場合に備えて、このコメントを追加するだけです--- xとyのデータの桁数が異なるときに問題が(最も目に見える)発生します。@bmuの回答で修正
mwarrior

回答:


138

aspect引数を指定しない場合imshowは、の値が使用さimage.aspectれますmatplotlibrc。新規のこの値のデフォルトmatplotlibrcequalです。したがって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


アスペクト比を定義する以外に、色付きのタイルのサイズを取得(定義)することは可能ですか?
Alexander Cska

36

それは奇妙です、それは間違いなく私にとってはうまくいきます:

from matplotlib import pyplot as plt

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

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


4
明確にする plt.figure(figsize = (x_new, y_new))ために、SciPy imageshow()はまもなく非推奨になるため、imgshow()ではioimageをインポートする必要があります
Agile Bean

1
@AgileBeanこの情報を使用してこの投稿を編集するか、この質問への回答として追加する場合に便利です
baxx

2

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

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

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


1

アップデート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)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.