我想改变两个轴的刺的宽度:
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()]
但是,结果我得到以下结果:
如何更改colorer轴的刺的长度?
答案 0 :(得分:1)
我希望您的解决方案能够正常运行,但可能的解决方法是设置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()]
答案 1 :(得分:1)
您可以尝试再次设置颜色条轴的框架,以便对其刺的更改生效。
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()