创建后更改 matplotlib 中的颜色条大小

时间:2021-04-30 18:39:34

标签: python matplotlib colorbar

我有一些看起来像这样的代码(其中 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);

使用我之前生成的一些数据,这将返回一个如下所示的数字:

enter image description here

我想更改颜色条,使其看起来更像图例。具体来说,我只想将其垂直尺寸缩小到现在的 1/5。我认为这会很简单,但经过 30 分钟的谷歌搜索并深入了解 matplotlib 的深层魔法后,我离找到一个简单的解决方案还差得远。

我假设我想以某种方式更改 colorbar.ax,但我发现的任何内容似乎都不能完全满足我的要求。

有人有解决办法吗?我发现了其他问题,例如 this,但到目前为止我发现的所有其他问题都可以通过调用 plt.colorbar 来创建新的颜色条,而不是更改现有颜色条的大小。

我想我可以制作一个新的颜色条,但似乎应该有一种简单的方法来调整现有的颜色条,对吗?

0 个答案:

没有答案
相关问题