我本来以为你提供的解决方案能够正常工作,但一个可能的变通方法是设置 axes.linewidth
并移除 set_linewidth(3)
那几行代码。
import matplotlib
matplotlib.rcParams['axes.linewidth'] = 3
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()]
您可以尝试重新设置色条轴的框架,以便其脊柱的更改生效。
cbar.ax.set_frame_on(True)
完整示例(仅在matplotlib 2.0上测试过)
import matplotlib.pyplot as plt
import numpy as np
img = np.random.normal(size=(100, 100))
fig, ax = plt.subplots()
im = ax.imshow(img)
cbar = fig.colorbar(im, ticks=np.linspace(0, 70, 8))
cbar.ax.set_frame_on(True)
[i.set_linewidth(3) for i in cbar.ax.spines.itervalues()]
[i.set_linewidth(3) for i in ax.spines.itervalues()]
plt.show()
cbar.outline
,但是找不到这个属性。您提供的解决方案适用于哪个版本的matplotlib?我正在使用一个使用1.5.1版本的旧代码进行绘图,无法更新它...而且我更希望使用一种局部解决方案,而不是改变全局的rcParams
,因为有很多图表需要显示。 - desa