質問

自動的に適切matplotlibの/ pylab画像に含まれるプロットを合わせて図のサイズを変更する方法はありますか?

私が使用するデータに応じてアスペクト比が異なるヒートマップ(サブ)プロットを作成しています。

私は、アスペクト比を計算し、それを手動で設定することができ実現、しかし確実にもっと簡単な方法がありますか?

役に立ちましたか?

解決

を使用するの bbox_inches = 'タイト'

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

X = 10*np.random.rand(5,3)

fig = plt.figure(figsize=(15,5),facecolor='w') 
ax = fig.add_subplot(111)
ax.imshow(X, cmap=cm.jet)

plt.savefig("image.png",bbox_inches='tight',dpi=100)
それらを示していない、しかし、画像を保存するときに

...のみ動作します。

他のヒント

あなたが関数imshowを呼び出すときにちょうど側面= '自動' を使用

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

X = 10*np.random.rand(5,3)
plt.imshow(X, aspect='auto')

それはそれだけで示すと

保存しないためである場合でも動作します

これを実行する別の方法は、機能tight_layout matplotlibのを使用している

import matplotlib.pyplot as plt
fig,(ax) = plt.subplots(figsize=(8,4), ncols=1)
data = [0,1,2,3,4]
ax.plot(data)
fig.tight_layout()
fig.show()

あなたは画像やプロット内visableある領域のサイズを変更することを意味するのですか?

図形の大きさは、 Figure.set_figsize_inches を用いて設定することができます。 また、 scipyのダウンロードクックブックには、複数の画像についてのセクションを含む画像のサイズを変更するエントリを有しますフィギュアあたります。

また、この質問を見てみましょうのます。

あなたが軸( 'スケール')を使用して試すことができます。

import matplotlib.pyplot as plt
import numpy

#some dummy images
img1 = numpy.array([[.1,.2],[.3,.4]]) 
img2 = numpy.array([[.1,.2],[.3,.4]])

fig,ax = plt.subplots()
ax.imshow(img1,extent=[0,1,0,1])
ax.imshow(img2,extent=[2,3,0,1])
ax.axis('scaled') #this line fits your images to screen 
plt.show()

も可能斧で ax.autoscale を使用しますオブジェクト

ax.autoscale(enable=True) 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top