在sea born/matplotlib中绘制轮廓圆形色条

在sea born/matplotlib中绘制轮廓圆形色条,matplotlib,seaborn,colorbar,Matplotlib,Seaborn,Colorbar,使用seaborn heatmap后,我有几个色条作为轴实例,但不知道如何在生成的色条周围绘制黑色轮廓 我可以使用axhline和axvline来打开x轴和y轴,但如何绘制右侧和顶部的脊椎,从而完成长方体 我尝试过set\u visible,set\u linewidth,set\u color,但没有效果 import numpy as np from pandas import DataFrame import seaborn as sns import matplotlib.pyplot

使用seaborn heatmap后,我有几个色条作为轴实例,但不知道如何在生成的色条周围绘制黑色轮廓

我可以使用
axhline
axvline
来打开x轴和y轴,但如何绘制右侧和顶部的脊椎,从而完成长方体

我尝试过
set\u visible
set\u linewidth
set\u color
,但没有效果

import numpy as np 
from pandas import DataFrame
import seaborn as sns
import matplotlib.pyplot as plt


Index= ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
Cols = ['A', 'B', 'C', 'D']
df = DataFrame(abs(np.random.randn(5, 4)), index=Index, columns=Cols)


figure = plt.figure(figsize=(12,12))
grid_spec = plt.GridSpec(1,4, width_ratios=[5,1,5,1], height_ratios=[1,1], wspace=0.6, hspace=0.3)

heatmap1ax = figure.add_subplot(grid_spec[0])
cbar1ax = figure.add_subplot(grid_spec[1])
heatmap2ax = figure.add_subplot(grid_spec[2])
cbar2ax = figure.add_subplot(grid_spec[3])

sns.set_style("white", {'axes.linewidth': 1, 'grid.color': 'black', 'xtick.major.size': 10, 'ytick.major.size': 0}) 
sns.heatmap(df, cmap='cool', ax=heatmap1ax, cbar_ax=cbar1ax)
sns.heatmap(df[['A']], cmap='cool', ax=heatmap2ax, cbar_ax=cbar2ax)

for axis in ['top','bottom','left','right']:
    heatmap1ax.spines[axis].set_visible(True)
    heatmap1ax.spines[axis].set_color('black')
    heatmap2ax.spines[axis].set_visible(True)
    heatmap2ax.spines[axis].set_color('black')    

plt.show()
这将产生以下结果:

但是我如何向颜色条添加类似的轮廓呢


我可以直接修改seaborn matrix.py文件,但我希望会有一个matplotlib路由。

我认为您要查找的命令是
设置帧。发件人:

在(b)上设置帧

设置是否绘制轴矩形面片

接受:[真|假]

因此,添加到您的代码中

cbar1ax.set_frame_on(True)
cbar2ax.set_frame_on(True)

以您想要的方式(如果我理解正确的话)在绘图中的每个颜色栏中添加一个框架。

您能添加一个框架吗?非常感谢您,我恐怕我的投票还不算,因为这是我的第一篇文章,但这解决了这个问题。我在matplotlib文档中完全忽略了这个方法。@orgelzyklus很乐意帮忙。如果这个答案解决了您的问题,您仍然可以将其标记为“已接受”(我认为您不需要声誉点数)。更多信息再次感谢,我想我有。