错误栏上的顶部和底部行与python和seaborn

时间:2016-03-10 11:38:37

标签: python matplotlib seaborn

我正在尝试使用python和seaborn绘制错误栏,但我对它们的外观并不完全满意。

默认的seaborn错误栏如下所示:

errobar default style

但是我想在这样的误差条上添加底线和顶线(为了区分两个误差线,它是默认的matplotlib样式):

defaultmatplolib

我怎么能在seaborn中做到这一点?

以下是代码:

import matplotlib.pyplot as plt
import seaborn as sns

fig1 = plt.figure(figsize=(20, 12))


x_values = [1,2,3,4]
y_values = [1,2,3,4]

y_error = [1,0.5,0.75,0.25]

plt.errorbar(x_values, y_values,  yerr=y_error ,fmt='o', markersize=8)

plt.show()

3 个答案:

答案 0 :(得分:15)

capsize参数应该足够了,但由于某种原因,您必须指定cap.set_markeredgewidth才能显示它们。基于:Matplotlib Errorbar Caps Missing

(_, caps, _) = plt.errorbar(
    x_values, y_values, yerr=y_error, fmt='o', markersize=8, capsize=20)

for cap in caps:
    cap.set_markeredgewidth(1)

返回:

enter image description here

答案 1 :(得分:1)

import matplotlib.pyplot as plt
plt.style.use('seaborn')
plt.rcParams.update({'lines.markeredgewidth': 1})

添加第三行为我解决了这一问题。

检查其他rcParams设置也可能很有趣:在python安装的子目录中查找所需的stylelib / style.mplstyle文件。对于我的系统,该文件位于“ /usr/lib/python3.7/site-packages/matplotlib/mpl-data/stylelib/”中。对于seaborn,markeredgewidth默认为0。

答案 2 :(得分:1)

误差条上的顶线和底线称为caps

要可视化它们,只需将 capsize 设置为大于 0 的值,这是默认值:

plt.errorbar(x, y, yerr=stds, capsize=3)