如何向热图中添加第二个比例?

How to add a second scale to a heatmap?

这样我创建了 heatmap:

fig = plt.figure(figsize = (8.27, 13.69), dpi = 100)

fig, ax = plt.subplots(1,1,figsize = (8.27, 13.69))
fig = plt.gcf()

heatplot = ax.imshow(c, cmap='rainbow', aspect='auto',\
                         norm=MidpointNormalize(midpoint=0.90))

c 是具有 heatmap 值的数组,归一化为一。

对于 ax.set_xticklabels()ax.set_xticks()ax.set_yticklabels()ax.set_yticks(),我已将轴添加到其 heatmap。现在我想添加第二个 y 轴。 colorbar 的方向是水平的。

编辑:

在 Bazingaa 的帮助下,我得到了第二个 y 轴,但有一个偏移量:

ax1.set_yticks(np.arange(len(TITLES)), minor=False) 将刻度线居中。

要添加第二个 y 轴,您必须使用:

ax2 = ax1.twinx()

其中 ax1 是 current/first 轴。在你的例子中 ax1ax。然后,如果您使用 ax2 绘制数据,y 值将显示在右侧 y 轴上。更多信息 here

以这种方式解决了我问题的已编辑部分

ax2.set_ylim(ax1.get_ylim()) <-- This solvs the "Offset" between both scales

ax2.set_yticks(np.arange(len(ELEMENT[1])), minor=False)
ax2.set_yticklabels(ELEMENT[1])

我在哪里找到的?: How do I align gridlines for two y-axis scales using Matplotlib?

回答者:Hugo Alain Oliva

我认为使用子图不会造成混淆,所以并排放置了两个热图