我正在尝试使用python和seaborn绘制错误栏,但我对它们的外观并不完全满意。
默认的seaborn错误栏如下所示:
但是我想在这样的误差条上添加底线和顶线(为了区分两个误差线,它是默认的matplotlib样式):
我怎么能在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()
答案 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)
返回:
答案 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)