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)
。我是说两个轴的范围完全相同?你还遇到同样的问题吗?这个链接的最后一个答案是:解决了麻省理工学院的问题。:)