Pandas绘图中误差条的样式

3
我想用以下样式绘制带有误差线的折线图。

enter image description here

然而,Pandas绘图仅绘制带有垂直线的误差线。
pd.DataFrame([1,2,3]).plot(yerr=[0.3,.3,.3])

enter image description here

如何更改pandas绘图中误差线的样式?

版本为:

  • pandas '0.18.0'
  • matplotlib '1.5.1'

更新

其中一个原因似乎是使用了seaborn风格。以下代码可以生成漂亮的样式图。

# plt.style.use('seaborn-paper')
pd.DataFrame([1,2,3]).plot(yerr=[0.3,.3,.3],capsize=4)

但是,我有一个使用seaborn样式的理由...请帮忙。
1个回答

10

你可以在调用DataFrameplot函数时,使用capsize关键字参数(会传递给plt.errorbar),来直接更改误差线顶端的大小:

pd.DataFrame([1,2,3]).plot(yerr=[0.3,.3,.3],capsize=4)

或者,您可以使用rcParams更改此设置。

您可以通过打印plt.rcParams['errorbar.capsize']来查找默认的误差棒帽大小。如果为0(这就是我怀疑您目前未获得误差棒帽的原因),则可以使用以下方式将误差棒帽的默认大小设置为非零值:

plt.rcParams['errorbar.capsize']=4

在任何绘图脚本的开头确保有这个。


更新:

似乎使用seaborn-paper样式会将线条端点宽度设置为0。您可以使用capthick关键字参数来覆盖此设置:

plt.style.use('seaborn-paper')
pd.DataFrame([1,2,3]).plot(yerr=[0.3,.3,.3],capsize=4,capthick=1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接