如何使用matplotlib在误差线图的顶部显示水平线?

11

我可以使用以下代码生成一个误差条形图。由代码生成的图表显示代表y误差的垂直线。我想在这些误差的顶部有水平线(“误差条”),但不确定如何实现。

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可以实现我的目标? Error Plot 以下是我想要的一个示例图:

example solution

如果相关的话,我正在使用matplotlib 2.2.2

1个回答

8
您要寻找的参数是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()

enter image description here


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