【问题标题】:Python plotting error bars with different values above and below the pointPython在点上方和下方绘制具有不同值的误差线
【发布时间】:2015-09-13 21:40:05
【问题描述】:

警告:我对使用 python 很陌生。

我正在尝试使用误差线绘制数据,但我的数据在误差线上方和下方具有不同的值,即 2+.75,2-.32。

import numpy as np
import matplotlib.pyplot as plt

# example data
x = (1,2,3,4)
y = (1,2,3,4)

# example variable error bar values
yerr = 0.2

plt.figure()
plt.errorbar(x, y, yerr,"r^")
plt.show()

但我希望该点上方的误差条是一个特定值,例如 .17,而该点下方是一个特定点,例如 0.3 有谁知道怎么做?

谢谢!

【问题讨论】:

    标签: python python-3.x plot graphing distinct-values


    【解决方案1】:

    像这样:

    plt.errorbar(x, y, np.array([[0.3]*len(x), [0.17]*len(x)]), fmt='r^')
    

    传递一个形状为(2,n) 的数组,第一行带有-errors,第二行带有+errors。

    (另请注意,您需要将格式字符串 r^ 显式传递给 fmt 参数)。

    如果您想在每个点上使用不同的误差线,您可以将它们传递到 (2,n) 数组中。您通常按顺序为每个数据点创建一个 -err 和 +err 值对列表,在这种情况下,您可以构建必要的数组作为该列表的转置:

    yerr = np.array([(0.5,0.5), (0.3,0.17), (0.1, 0.3), (0.1,0.3)]).T
    plt.errorbar(x, y, yerr, fmt='r^')
    plt.show()
    

    the docs 中(或多或少)描述了这一点。

    【讨论】:

    • 感谢您的回答!我还有一个快速的问题。如果每个点都有不同的误差线值,我会怎么做?就像第一个点的值是 +.17 和 -.3 但我的数据集中的第二个点有 +.8 和 -.23。
    • 您使用一个形状为 (2,n) 的数组,其中 n 对值中的每一对都是一个点的 (-err, +err)。
    猜你喜欢
    • 1970-01-01
    • 2013-10-13
    • 2020-01-23
    • 2021-03-26
    • 1970-01-01
    • 2020-05-06
    • 2020-09-16
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多