2017-12-16 10 views
2

次のコードは、matplotlib.pyplotを使用してサブプロットの幅/高さの比率を変更するにはどうすればよいですか?

import matplotlib.pyplot as plt 
import matplotlib.gridspec as gridspec 
a=[[1,2,3],[4,4,4]] 
gridspec.GridSpec(2,1) 
plt.subplot2grid((2,1), (0,0), colspan=2, rowspan=1) 
plt.figure(figsize=(10, 5)) 
plt.imshow(a) 
plt.savefig('fig.png',bbox_inches='tight') 

を実行している場合、私は下の画像を得ました。サブプロットの幅と高さの比を1:2に設定する方法は長くなる可能性がありますか?

enter image description here

基本的に、これを行う方法:

enter image description here

答えて

2
plt.figure(figsize=(5, 20)) 

、等長いプロットを取得するために幅を大きくすると、1の画像を示しています。アスペクトは高さ/幅と定義されます。 aspect=2を設定すると、幅が2倍のピクセルの画像を取得できます。

plt.imshow(a, aspect=2) 
+0

ありがとうございます。だから、 'gridspec'と' figsize'とは関係ありません。 – lanselibai

+0

サブプロットの側面とは無関係に、もちろん、サブプロットの配置やFigureのサイズの変更にgridspecを使用することもできます。質問からの単純な問題については、アスペクトとグリッド・スペックまたはfigsizeの間には関係がないようです。 (実際には、図形のサイズを使用して、好きなアスペクトのサブプロットをキャンバス内で見栄えが良くすることができます)。 – ImportanceOfBeingErnest

0

このラインは、プロットのサイズ

plt.figure(figsize=(5, 10)) 

5は、高さと幅の10に相当する定義。各画素は同じ幅が高いほど、すなわち、1のアスペクト比:デフォルトmatplotlibので

+0

ありがとうございます。ありがとうございますが、私はサブプロットのサイズを変更したいのではなく、数字を変更します。私は 'figsize =(10、5)'に変更しましたが、それでも同じです。 – lanselibai

関連する問題