我有一些看起来像这样的代码(其中 heatmap
是 seaborn 的 sns.heatmap
的包装器,它返回相同的内容)
def binary_heatmap(
X, colors=["white", "black"], colorbar_ticklabels=["No Edge", "Edge"], outline=False, **kwargs
):
cmap = mpl.colors.ListedColormap(colors)
plot = heatmap(X, center=None, cmap=cmap, **kwargs)
colorbar = plot.collections[0].colorbar
cbar = kwargs.setdefault("cbar", True)
if cbar:
colorbar.set_ticks([0.25, 0.75])
colorbar.set_ticklabels(colorbar_ticklabels)
colorbar.ax.set_frame_on(True)
if outline:
sns.despine(top=False, bottom=False, left=False, right=False)
return plot
binary_heatmap(averaged, title="Averaged Brain Network", outline=True);
使用我之前生成的一些数据,这将返回一个如下所示的数字:
我想更改颜色条,使其看起来更像图例。具体来说,我只想将其垂直尺寸缩小到现在的 1/5。我认为这会很简单,但经过 30 分钟的谷歌搜索并深入了解 matplotlib 的深层魔法后,我离找到一个简单的解决方案还差得远。
我假设我想以某种方式更改 colorbar.ax
,但我发现的任何内容似乎都不能完全满足我的要求。
有人有解决办法吗?我发现了其他问题,例如 this,但到目前为止我发现的所有其他问题都可以通过调用 plt.colorbar
来创建新的颜色条,而不是更改现有颜色条的大小。
我想我可以制作一个新的颜色条,但似乎应该有一种简单的方法来调整现有的颜色条,对吗?