我有 8 个图要与 8 个不同但对应的图进行比较。所以我设置了8个子图,然后尝试用它axes_grid1.make_axes_locatable
来划分子图。但是,似乎当我使用该new_vertical
函数时,它会返回 type 的某些内容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;博士我怎样才能在 ax2, anAxesSubplot
以及 ax1, an上获得颜色条Axes
?还是有更好的方法来获得相同的外观?