matplotlibを使用すると、行ごとに異なる数の列を持つグリッド上に複数のサブプロットを表示したいと思います。各サブプロットはおおよそ同じサイズで、サブプロットは斜めグリッドの配列matplotlibのサブプロット
gridspec
と2、3、2パターンを有するグリッドを作成するために、かなり単純な問題だが、問題はそのgridspec
、当然、整列があります:多かれ少なかれ、このように、集中していますそれらをグリッドに表示するので、2つのプロットを含む行のプロットはより広い:
はそれを生成するためのコードです:
from matplotlib import gridspec
from matplotlib import pyplot as plt
fig = plt.figure()
arrangement = (2, 3, 2)
nrows = len(arrangement)
gs = gridspec.GridSpec(nrows, 1)
ax_specs = []
for r, ncols in enumerate(arrangement):
gs_row = gridspec.GridSpecFromSubplotSpec(1, ncols, subplot_spec=gs[r])
for col in range(ncols):
ax = plt.Subplot(fig, gs_row[col])
fig.add_subplot(ax)
for i, ax in enumerate(fig.axes):
ax.text(0.5, 0.5, "Axis: {}".format(i), fontweight='bold',
va="center", ha="center")
ax.tick_params(axis='both', bottom='off', top='off', left='off',
right='off', labelbottom='off', labelleft='off')
plt.tight_layout()
私はサブプロットの束を設定し、それの形状を働くことによって彼らの配置を微調整することができることを知って、私はそれが得ることができると思います複雑なので、よりシンプルな方法が利用できることを期待していました。
私は例として(2,3,2)の配置を使用していますが、私はこれを行うだけでなく、任意のコレクションに対してこれを実行したいと思います。
フム...うん、私はこれを検討しました。それを一般化するのがどれほど簡単かを見てみましょう。 – Paul
実際、長さが常にnまたは長さn-1の場合、 'n * 2'グリッドを実行すれば十分です。これは非常に簡単です。 – Paul