2

我想将错误栏垂直线的 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'

但我无法为错误栏找到类似的方法。

4

2 回答 2

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并且capLine2D对象,然后您可以执行以下操作:

plotline.set_capstyle('round')
cap.set_capstyle('round')

barlinecols是一个LineCollection对象。但是,当前版本(matplotlib 2.0)不支持更改对象(参见:capstylehttps ://github.com/matplotlib/matplotlib/issues/8277)。但看起来这将在下一个版本中实现。LineCollection

于 2017-04-19T21:52:46.453 回答
0

在这里给出一个工作代码来改变垂直误差线的 capstyle:

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()

在此处输入图像描述

要改为更改错误栏大写的 capstyle,需要使用一些私有属性,

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()

在此处输入图像描述

于 2019-04-18T19:12:25.023 回答