Python matplotlib-如何在不调整热图大小的情况下移动colorbar?
嗨,我有以下命令 要在栅格中为热图指定子地块轴,请执行以下操作:Python matplotlib-如何在不调整热图大小的情况下移动colorbar?,python,matplotlib,position,heatmap,colorbar,Python,Matplotlib,Position,Heatmap,Colorbar,嗨,我有以下命令 要在栅格中为热图指定子地块轴,请执行以下操作: ax4 = plt.subplot2grid((3, 4), (1, 3), colspan=1, rowspan=1) 要在此轴中创建我的热图,请执行以下操作: heatmap = ax4.pcolor(data, cmap=mycm, edgecolors = 'none', picker=True) 要将绘图向右移动,以便根据其他子绘图使其在轴上居中,请执行以下操作: box = ax4.get_position() a
ax4 = plt.subplot2grid((3, 4), (1, 3), colspan=1, rowspan=1)
要在此轴中创建我的热图,请执行以下操作:
heatmap = ax4.pcolor(data, cmap=mycm, edgecolors = 'none', picker=True)
要将绘图向右移动,以便根据其他子绘图使其在轴上居中,请执行以下操作:
box = ax4.get_position()
ax4.set_position([box.x0*1.05, box.y0, box.width * 1.05, box.height])
显示不带填充的颜色栏
fig.colorbar(heatmap, orientation="vertical")
然而,这导致:
请注意,颜色栏位于热图的顶部
如果我使用pad关键字,我可以移动颜色条,使其不与热图重叠,但这会减少打印区域的宽度,即:
如何使绘图区域保持相同的宽度,并使颜色栏位于该区域之外
谢谢 您可以放置并直接设置该轴的大小和位置。我在下面的示例中添加了另一个axis到现有代码中。如果此图包含许多绘图和颜色栏,您可能希望使用添加它们
谢谢,我以前看过,但还是有问题。不过,你的回答促使我再试一次,效果很好,谢谢!
import matplotlib.pylab as plt
from numpy.random import rand
data = rand(100,100)
mycm = plt.cm.Reds
fig = plt.figure()
ax4 = plt.subplot2grid((3, 4), (1, 3), colspan=1, rowspan=1)
heatmap = ax4.pcolor(data, cmap=mycm, edgecolors = 'none', picker=True)
box = ax4.get_position()
ax4.set_position([box.x0*1.05, box.y0, box.width, box.height])
# create color bar
axColor = plt.axes([box.x0*1.05 + box.width * 1.05, box.y0, 0.01, box.height])
plt.colorbar(heatmap, cax = axColor, orientation="vertical")
plt.show()