首页 > 解决方案 > 使用子图和热图时颜色条上的数字重叠

问题描述

重叠的两个热图 另外两个具有相同颜色级别的热图

所有四个热图的级别都是固定的并且相同。但是由于数据不同,最大值和最小值是不同的。然后出现颜色索引重叠。我尝试更改热图的级别,但不起作用。

这是代码:

fig, (ax1, ax2) = plt.subplots(1, 2)
fig.set_size_inches(16.5, 5.5)

X1 = np.linspace(1950, 2035, 86)
Y1 = np.linspace(20, 95, 76)
X1,Y1 = np.meshgrid(X1,  Y1)
Z1 = F_proj_SOA17.iloc[20:-5,4:]
norm = mcolors.TwoSlopeNorm(vmin=(Z1.to_numpy()).min(), vmax = (Z1.to_numpy()).max(), vcenter=0)
level = np.arange(-0.07, 0.07, 0.003)
DV = ax1.contourf(X1,Y1,Z1,level,cmap=plt.cm.RdBu_r, extend='both', norm=norm)
ax1.set_title('MIR 1951-2035 for Female (SOA17)')
ax1.xaxis.set_ticks(np.arange(1960, 2036, 20))
ax1.axvline(x=2016, c = 'black', linestyle = ':')
fig.colorbar(DV, ax=ax1)

X2 = np.linspace(1950, 2036, 87)
Y2 = np.linspace(20, 95, 76)
X2,Y2 = np.meshgrid(X2,  Y2)
Z2 = F_proj_DV18.iloc[20:-5,4:]
norm = mcolors.TwoSlopeNorm(vmin=(Z2.to_numpy()).min(), vmax = (Z2.to_numpy()).max(), vcenter=0)
level = np.arange(-0.07, 0.07, 0.003)
MP = ax2.contourf(X2,Y2,Z2,level,cmap=plt.cm.RdBu_r, extend='both', norm=norm)
ax2.set_title('MIR 1951-2036 for Female (SOA17HMD18)')
ax2.xaxis.set_ticks(np.arange(1960, 2036, 20))
ax2.axvline(x=2016, c = 'black', linestyle = ':')
ax2.axvline(x=2017, c = 'black', linestyle = ':')
fig.colorbar(MP, ax=ax2)

plt.show()

标签: pythonmatplotlibheatmapcolorbar

解决方案


推荐阅读