我想将错误栏的垂直线的capstyle设置为'round'。例如,以下代码生成一些带有错误栏的点:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
plt.plot([1,2,3], [2,3,4], marker='o', linestyle='None')
plt.errorbar([1,2,3], [2,3,4], yerr=[1,1,1], fmt=None, linewidth=3, capsize=0)
plt.xlim([0,4])
plt.show()
对于普通线,我可以使用以下方法在rcParams
中设置上限样式:
plt.rcParams['lines.dash_capstyle'] = 'round'
我还找到了一些很好的例子,如何获得圆形的圆形样式:
for i in ax.xaxis.get_ticklines(): i._marker._capstyle = 'round'
但是我无法找到类似于错误栏的方法。
答案 0 :(得分:2)
plotline, cap, barlinecols =\
plt.errorbar([1,2,3], [2,3,4], yerr=[1,1,1], fmt=None, linewidth=3, capsize=0)
plt.errorbar
返回3个对象。 plotline
和cap
是Line2D
个对象,您可以这样做:
plotline.set_capstyle('round')
cap.set_capstyle('round')
barlinecols
是LineCollection
个对象。但是,当前版本(matplotlib 2.0)不支持更改capstyle
个对象中的LineCollection
(请参阅:https://github.com/matplotlib/matplotlib/issues/8277)。但看起来这将在下一个版本中实现。
答案 1 :(得分:0)
要在此处提供工作代码以更改垂直错误栏行的标题样式:
import matplotlib.pyplot as plt
plotline, caps, barlinecols =\
plt.errorbar([1,2,3], [2,3,4], yerr=[1,1,1], linewidth=5, capsize=0)
plt.setp(barlinecols[0], capstyle="round", color="orange")
plt.show()
要改为更改错误栏大写的大写样式,则需要使用一些私有属性
import matplotlib.pyplot as plt
plotline, caps, barlinecols =\
plt.errorbar([1,2,3], [2,3,4], yerr=[1,1,1], linewidth=1, capsize=8, capthick=5)
for cap in caps:
cap._marker._capstyle = "round"
plt.show()