python - 使用子图和热图时颜色条上的数字重叠
问题描述
所有四个热图的级别都是固定的并且相同。但是由于数据不同,最大值和最小值是不同的。然后出现颜色索引重叠。我尝试更改热图的级别,但不起作用。
这是代码:
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()
解决方案
推荐阅读
- python - 如何使用 python 子进程启动strapi服务器
- wordpress - 有没有办法在woocommerce网站上根据时间设置优惠券代码限制。(优惠券代码应仅在一天内的特定时间有效)
- ios - 当 Google IMA 广告即将开始时通知用户(广告在 n 秒内)
- php - Codeigniter 4 ResourceController - 缩小 json 输出
- visual-studio - Visual Studio 是否使用 nvcc 编译 cuda 代码?
- sql - 如何从未确定的组中获取第一个值
- arrays - 使用工作表在过滤器函数中查找最近的日期
- javascript - 分配给函数参数'item'的属性
- c - 为什么这里都跳过了“if”循环?
- c# - 服务层的依赖注入