为子图设置一个公共颜色条
set a common color bar for subplot
我将通过 plt 模块绘制一个 numpy 数组。我不知道如何才能为我的子图设置一个共享颜色条。或者即使它用两个绘制,我也想将它爬到两个颜色条的 (-0.4-0.4) 范围内。
谢谢大家
这是我的代码:
from mpl_toolkits.axes_grid1 import make_axes_locatable
fig,(ax1,ax2) = plt.subplots(1,2,figsize=(10, 10))
im1 = ax1.imshow(input[:,:,141],cmap = 'Spectral_r')
divider = make_axes_locatable(ax1)
cax = divider.append_axes("right", size="5%", pad=0.05)
fig.colorbar(im1, cax=cax, orientation='vertical')
im2 = ax2.imshow(out_put[:,:,141], cmap = 'Spectral_r')
divider = make_axes_locatable(ax2)
cax = divider.append_axes("right", size="5%", pad=0.05)
fig.colorbar(im2, cax=cax, orientation='vertical')
ax1.set_title('Input', fontsize = 16)
ax2.set_title('Output of model', fontsize = 16)
ax2.set_axis_off()
ax1.set_axis_off()
plt.show()
您可以只调用 colorbar
一次,然后将两个 ax1,ax2
传递给 ax
。对于 clim
选项,我的 matplotlib 表示 cb.set_clim
已弃用。将 vmin,vmax
传递给 imshow
可能会更好:
fig,(ax1,ax2) = plt.subplots(1,2,figsize=(13, 5))
im1 = ax1.imshow(np.random.uniform(-1,1, size=(10,10)),
vmin=-0.4, vmax=0.4,
cmap = 'Spectral_r')
im2 = ax2.imshow(np.random.uniform(-1,1, size=(10,10)),
vmin=-0.4, vmax=0.4,
cmap = 'Spectral_r')
cb = fig.colorbar(im2, ax=(ax1, ax2), orientation='vertical')
cb.set_clim(-0.4,0.4)
输出:
我将通过 plt 模块绘制一个 numpy 数组。我不知道如何才能为我的子图设置一个共享颜色条。或者即使它用两个绘制,我也想将它爬到两个颜色条的 (-0.4-0.4) 范围内。
谢谢大家 这是我的代码:
from mpl_toolkits.axes_grid1 import make_axes_locatable
fig,(ax1,ax2) = plt.subplots(1,2,figsize=(10, 10))
im1 = ax1.imshow(input[:,:,141],cmap = 'Spectral_r')
divider = make_axes_locatable(ax1)
cax = divider.append_axes("right", size="5%", pad=0.05)
fig.colorbar(im1, cax=cax, orientation='vertical')
im2 = ax2.imshow(out_put[:,:,141], cmap = 'Spectral_r')
divider = make_axes_locatable(ax2)
cax = divider.append_axes("right", size="5%", pad=0.05)
fig.colorbar(im2, cax=cax, orientation='vertical')
ax1.set_title('Input', fontsize = 16)
ax2.set_title('Output of model', fontsize = 16)
ax2.set_axis_off()
ax1.set_axis_off()
plt.show()
您可以只调用 colorbar
一次,然后将两个 ax1,ax2
传递给 ax
。对于 clim
选项,我的 matplotlib 表示 cb.set_clim
已弃用。将 vmin,vmax
传递给 imshow
可能会更好:
fig,(ax1,ax2) = plt.subplots(1,2,figsize=(13, 5))
im1 = ax1.imshow(np.random.uniform(-1,1, size=(10,10)),
vmin=-0.4, vmax=0.4,
cmap = 'Spectral_r')
im2 = ax2.imshow(np.random.uniform(-1,1, size=(10,10)),
vmin=-0.4, vmax=0.4,
cmap = 'Spectral_r')
cb = fig.colorbar(im2, ax=(ax1, ax2), orientation='vertical')
cb.set_clim(-0.4,0.4)
输出: