Python 如何为热图添加第二个比例?

Python 如何为热图添加第二个比例?,python,matplotlib,heatmap,Python,Matplotlib,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

这样我就创建了我的
热图

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
是具有
热图值的数组,标准化为一

使用
ax.set_-xticklabels()
ax.set_-xticks()
ax.set_-yticklabels()
ax.set_-yticks()
,我已将轴添加到其
热图中。现在我想添加第二个
y
-轴。
颜色条的方向是水平的

编辑:

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


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

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

ax2 = ax1.twinx()

其中,
ax1
是当前/第一个轴。在您的情况下,
ax1
ax
。然后,如果使用
ax2
打印数据,y值将显示在右侧
y
轴上。更多信息

通过以下方式解决了我问题的编辑部分

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])

ax2.set_-ylim(ax1.get_-ylim())我决定使用子图可以减少混乱,并将两个热图并排放置

哦,我现在明白你的意思了。要使
y
轴具有相同的刻度,可以使用
ax.set_ylim(a,b)
ax2.set_ylim(a,b)
其中
a
b
是您希望在
y
刻度上看到的最小和最大
y
值。这里我假设您的轴被命名为
ax
ax1
。如果您有其他名称,如
ax1
ax2
则相应地修改。否,否,我有相同的限制,但左右之间有偏移量:-/我想我必须研究一下:是的,这正是你所面临的。您是否尝试过执行
ax.set_-yticks(np.arange(len(TITLES)),minor=False)
ax1.set_-yticks(np.arange(len(TITLES)),minor=False)
。我是说两个轴的范围完全相同?你还遇到同样的问题吗?这个链接的最后一个答案是:解决了麻省理工学院的问题。:)