这实际上是错误栏最让我烦恼的事情之一:它对输入的形状和维度非常挑剔。
我假设您想要“误差线”,但希望它们的位置由绝对上限和下限设置,而不是由对称“误差”值设置。
errorbar 的作用是将 y 数组和 yerr[0] 压缩在一起(使用 safezip)作为下限(yerr[1]
对于上部)。所以你的y
and yerr[0]
(and [1]
) 应该是具有相同大小、形状和维数的数组。 yerr 本身根本不需要是一个数组。
您拥有的第一个代码will如果 x、y、ymin 和 ymax 都是一维数组(它们应该是这样),则有效。听起来你的 y 不是。
但是,请务必注意,由于 errorbar yerr 是错误量,而不是绝对限制,因此您需要从实际下限和上限中添加和减去 y。
例如:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4])
y = np.array([1,2,3,4])
ymin = np.array([0,1,2,3])
ymax = np.array([3,4,5,6])
ytop = ymax-y
ybot = y-ymin
# This works
plt.errorbar(x, y, yerr=(ybot, ytop) )
如果我误解了任何内容,请告诉我。如果您能以您正在使用的表单发布一些示例数据,那就太好了。