2017-10-11 23 views
1

私は、各サブプロットがx軸を共有する2つのサブプロットからなるサブプロットのプロットを作成しようとしています。共有軸ループを持つPythonサブプロット

gs_top = plt.GridSpec(6, 3, hspace = 0.0001) 
gs_base = plt.GridSpec(6, 3, hspace = 0.95) 

f2 = plt.figure() 

for i in range(9): 
    up_id = [0,1,2,6,7,8,12,13,15] 
    bot_id = [3,4,5,9,10,11,15,16,17] 

    axarr2 = f2.add_subplot(gs_top[up_id[i]]) 


    axarr2.plot() 

    ax_sub = f2.add_subplot(gs_base[bot_id[i]], sharex= axarr2) 
    ax_sub.imshow() 
    axarr2.set_title('title') 
    axarr2.xaxis.set_visible(False) 

どのように私はplt.GridSpec()にパラメータを設定する必要があります。私は、次のコードを試してみましたか?

答えて

0

gridspec.GridSpecFromSubplotSpecを使用して、gridspec内に別のgridspecを作成するとします。したがって、3×3グリッドが必要であると仮定し、各セルは、垂直方向に取り付けられ、x軸を共有する2つのサブプロットを構成します。

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

fig = plt.figure() 
gs = gridspec.GridSpec(3, 3, hspace=0.6,wspace=0.3) 

for i in range(9): 
    gss = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec=gs[i], 
              hspace=0.0) 

    ax0 = fig.add_subplot(gss[0]) 
    ax1 = fig.add_subplot(gss[1], sharex=ax0) 

    x = np.linspace(0,6*np.pi) 
    y = np.sin(x) 
    ax0.plot(x,y) 
    ax1.plot(x/2,y) 

    ax0.set_title('title {}'.format(i)) 
    ax0.tick_params(axis="x", labelbottom=0) 

plt.show() 

3 x 3 GridSpec with 2 x 1 GridSpecFromSubplotSpec

関連する問題