大熊猫情节中的错误条样式

rkj*_*983 3 plot matplotlib pandas

我想用带有以下样式的错误栏绘制折线图.

在此输入图像描述

但是,pandas plot仅绘制垂直线的误差线.

pd.DataFrame([1,2,3]).plot(yerr=[0.3,.3,.3])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何更改pandas plot的错误栏样式?

版本是:

  • 熊猫'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)
Run Code Online (Sandbox Code Playgroud)

但是,我有理由继续使用seaborn风格...请帮助.

tmd*_*son 8

你可以使用kwarg(传递给你)来调用plot你的内联时改变内联大小:DataFramecapsizeplt.errorbar

pd.DataFrame([1,2,3]).plot(yerr=[0.3,.3,.3],capsize=4)
Run Code Online (Sandbox Code Playgroud)

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

您可以通过打印找出默认的错误栏大小plt.rcParams['errorbar.capsize'].如果为0(这就是为什么我怀疑你当前没有得到错误栏上限),你可以使用以下方法将错误栏上限的默认大小设置为非零值:

plt.rcParams['errorbar.capsize']=4
Run Code Online (Sandbox Code Playgroud)

确保在任何绘图脚本的开头都有.


更新:

似乎使用seaborn-paper样式将帽厚度设置为0.您可以使用capthickkwarg 覆盖它:

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

  • 我已经更新了答案.下次,请尝试首次发布包含所有相关代码的[MCVE](// stackoverflow.com/help/mcve). (2认同)