如何使用 matplotlib 在错误条形图的提示处显示水平线?

How to show horizontal lines at tips of error bar plot using matplotlib?

我可以使用下面的代码生成误差条图。代码生成的图表显示了代表 y 中的错误的垂直线。我希望在这些错误的提示处有水平线 ("error bars"),但我不确定该怎么做。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(1, 10, 10, dtype=int)
y = 2**x
yerr = np.sqrt(y)*10

fig, ax = plt.subplots()
ax.errorbar(x, y, yerr, solid_capstyle='projecting')
ax.grid(alpha=0.5, linestyle=':')
plt.show()
plt.close(fig)

代码生成下图。我玩过 solid_capstyle kwarg。是否有一个特定的 kwarg 可以做我想做的事情?

作为我想要的示例,下图:

如果相关,我使用的是 matplotlib 2.2.2

您要查找的参数是 ax.errorbar() 中的 capsize=。默认值为 None,因此上限的长度将默认为 matplotlib.rcParams["errorbar.capsize"] 的值。您给出的数字将是上限的长度(以点为单位):

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(1, 10, 10, dtype=int)
y = 2**x
yerr = np.sqrt(y)*10

fig, ax = plt.subplots()
ax.errorbar(x, y, yerr, solid_capstyle='projecting', capsize=5)
ax.grid(alpha=0.5, linestyle=':')
plt.show()