Matplotlib错误条更改大写样式

7uzetpgm  于 2023-05-18  发布在  其他
关注(0)|答案(2)|浏览(142)

我试图使用matplotlib.errobar函数绘制错误条,只显示了较低的错误限制。如果我使用“uplims=True”,我会得到较低的错误限制,但现在用一个箭头作为错误上限。如何将上限改回水平线

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
x = np.arange(10)
y = 2.5 *x 
yerr = np.linspace(0.05, 2, 10)

fig1,ax1=plt.subplots()

#Here error capstyle is a horizontal line
plt.errorbar(x, y + 6, yerr=yerr,capsize=4, label='both limits (default)')

#Error capstyle suddenly changes to arrow
plt.errorbar(x, y + 2, yerr=yerr, uplims=True, label='uplims=True')

plt.show()

cidc1ykv

cidc1ykv1#

我想我明白了些什么。
yerr可以是列表的列表:

yerr=[lower limits,upper limits]

不会将帽样式更改为箭头。然后,使用一个零列表作为上限,并使用一个误差长度列表作为下限,将仅在一侧给予误差条。

ruyhziif

ruyhziif2#

另一种方法是使用Capline。这会将箭头更改为更正常的误差条。如果你替换了

plt.errorbar(x, y + 2, yerr=yerr, uplims=True, label='uplims=True')

(_, caplines, _,) = plt.errorbar(x, y + 2, yerr=yerr, elinewidth=10, markeredgewidth='10', uplims=True)
caplines[0].set_marker('_')
caplines[0].set_markersize(50)

这将在您的数据下面创建错误条。elinewidthmarkeredgewidthset_markersize只是为了使误差条看起来更漂亮,根据需要更改这些值。请注意,您需要设置

caplines[0].set_marker('_')
caplines[0].set_markersize(50)

在每个plt.errorbar之后,您不能使用此设置只设置一次。

相关问题