更改颜色轴上的刺宽度

des*_*esa 5 python matplotlib

我想更改两个轴的书脊宽度:

img = np.random.normal(size=(100, 100))

fig, ax = plt.subplots()
cax = ax.imshow(img)

cbar = fig.colorbar(cax, ticks=np.linspace(0, 70, 8))
[i.set_linewidth(3) for i in cbar.ax.spines.itervalues()]
[i.set_linewidth(3) for i in ax.spines.itervalues()]
Run Code Online (Sandbox Code Playgroud)

然而,结果我得到以下结果:

在此输入图像描述

如何更改着色器轴的脊柱长度?

bea*_*4rw 6

我希望您的解决方案能够发挥作用,但可能的解决方法是设置axes.linewidth和删除set_linewidth(3)线路

import matplotlib
matplotlib.rcParams['axes.linewidth'] = 3
Run Code Online (Sandbox Code Playgroud)

我通过发现这个解决了这个问题:

https://github.com/matplotlib/matplotlib/blob/ac8f340c9a771871c894aecdc12a9111958271dd/lib/matplotlib/colorbar.py#L429

编辑

或者,您可以直接设置轮廓线宽度:

img = np.random.normal(size=(100, 100))

fig, ax = plt.subplots()
cax = ax.imshow(img)

cbar = fig.colorbar(cax, ticks=np.linspace(0, 70, 8))
cbar.outline.set_linewidth(3)
[i.set_linewidth(3) for i in ax.spines.itervalues()]
Run Code Online (Sandbox Code Playgroud)