2016-05-04 11 views
1

ときただしサブプロットを参照するために2つのインデックスを使用して行または列の数が統一

rows = 2 
cols = 2 
f, ax = plt.subplots(rows, cols) 
x = np.arange(12) 
y = xdata**2 
plotFunction(x,y,ax,0,1) 

def plotFunction(xdata, ydata, ax, i, j): 
    ax[i,j].plot(xdata, ydata, marker='o', label='quadratic') 

次の例のようにそれらの軸インデックスに2つの指標を用いて、異なるサブプロットを参照することが可能となる軸rowsまたはcols = 1のpyplotは2つのインデックスの使用を許可していません。これは、二重インデックスプロットに依存する私のプロット関数の一般的な使用を排除します。したがって、以下は動作しません。

rows = 1 
cols = 2 
f, ax = plt.subplots(rows, cols) 
x = np.arange(12) 
y = xdata**2 
plotFunction(x,y,ax,0,1) 
+0

'ax'を再構成しよう:' ax = ax.reshape(rows、cols) '。 – wflynny

答えて

1

サブプロットを呼び出すときには、 'squeeze = False'オプションを使用する方法もあります。

rows = 1 
cols = 2 
f, ax = plt.subplots(rows, cols, squeeze=False) 
x = np.arange(12) 
y = xdata**2 
plotFunction(x,y,ax,0,1,label='quadratic') 

def plotFunction(xdata, ydata, ax, i, j, label): 
ax[i,j].plot(xdata, ydata, marker='o', label=label) 

これは、すべての場合で[行、列]インデックス付けを許可します。

関連する問題