我使用gridspec绘制两个数字:
fig = plt.figure(num=2,figsize=(5,2))
gs = gridspec.GridSpec(1, 2, width_ratios=[1,1])
ax0 = plt.subplot(gs[0])
ax1 = plt.subplot(gs[1])
ax0.imshow(ROI,'gray')
map1 = ax1.imshow(z,cmap=cm.YlOrRd)
divider1 = make_axes_locatable(ax1)
cax1 = divider1.append_axes("right", size="5%", pad=0.05)
cbar1 = plt.colorbar(map1, cax=cax1)
ROI和z预先定义了相同的大小.
但他们的尺寸略有不同.
我想把它做成相同的尺寸:
怎么解决这个问题?
解决方法:
问题是您在gridspec中将两个图形的宽度固定为相同,然后将颜色条添加到第二个图形中,该图形占用了一些宽度(5%加上填充).并且由于imshow具有1:1的宽高比,这种宽度变化也会改变图形的高度.
避免这种情况的最简单方法是在宽度比中考虑颜色条的额外宽度:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
<