ax.bar返回一个艺术家的容器;每个“artist”都是一个带有set_linewidth和set_edgecolor方法的Rectangle.
要更改mybar中第二个栏的设置,您可以这样做:
mybar[1].set_linewidth(4)
mybar[1].set_edgecolor('r')
这是一个脚本,显示如何使用它来更改堆栈的线宽:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3])
y1 = np.array([3,2.5,1])
y2 = np.array([4,3,2])
y3 = np.array([1,4,1])
width = 0.5
handles = []
b1 = plt.bar(x, y1, color='#2040D0', width=width, linewidth=0)
handles.append(b1)
b2 = plt.bar(x, y2, bottom=y1, color='#60A0D0', width=width, linewidth=0)
handles.append(b2)
b3 = plt.bar(x, y3, bottom=y1+y2, color='#A0D0D0', width=width, linewidth=0)
handles.append(b3)
# Highlight the middle stack.
for b in handles:
b[1].set_linewidth(3)
plt.xlim(x[0]-0.5*width, x[-1]+1.5*width)
plt.xticks(x+0.5*width, ['A', 'B', 'C'])
plt.show()
此脚本创建以下条形图: