8 つの異なるが対応するプロットと比較したい 8 つのプロットがあります。そこで、8 つのサブプロットを設定しaxes_grid1.make_axes_locatable
、サブプロットを分割するために使用しようとしました。ただし、new_vertical
関数を使用すると、タイプの何かが返されるようですmatplotlib.axes.AxesSubplot
。
ここに私が持っているコードがあります:
fig = plt.figure()
for i in range(7):
ax = fig.add_subplot(4,2,i+1)
idarray = ice_dict[i]
mdarray = model_dict[i]
side_by_side(ax, idarray, mdarray)
def side_by_side(ax1, idata, mdata):
from mpl_toolkits.axes_grid1 import make_axes_locatable
global mycmap
global ice_dict, titles
divider = make_axes_locatable(ax1)
ax2 = divider.new_vertical(size="100%", pad=0.05)
fig1 = ax1.get_figure()
fig1.add_axes(ax2)
cax1 = divider.append_axes("right", size = "5%", pad= 0.05)
plt.sca(ax1)
im1 = ax1.pcolor(idata, cmap = mycmap)
ax1.set_xlim(space.min(), space.max()+1)
ax1.set_ylim(0, len(idata))
plt.colorbar(im1, cax=cax1)
im2 = ax2.pcolor(mdata, cmap = mycmap)
ax2.set_xlim(space.min(), space.max()+1)
for tl in ax2.get_xticklabels():
tl.set_visible(False)
ax2.set_ylim(0, len(mdata))
ax2.invert_yaxis()
これは、各サブプロットで ax2 が上にあり、ax1 が下にある、次のようなものを生成します。
スケールが異なるため、両方に同じカラーバーを使用することはできません。前もって感謝します。
tl;dr ax2、an AxesSubplot
、およびax1、anでカラーバーを取得するにはどうすればよいAxes
ですか? または、同じ外観にするためのより良い方法はありますか?