【问题标题】:Using BOTH error bars and upper/lower limits in python在 python 中同时使用误差线和上限/下限
【发布时间】:2014-11-18 01:05:06
【问题描述】:

警告:我是python新手,知道的很少。

我正在尝试用两个方向的误差线绘制 (x,y) 图形。我能够做到这一点,使用:

from matplotlib import pyplot

pyplot.errorbar(x,y,yerr=y_error,xerr=xerror)

但是,有时 x 或 y 的误差为零。在这种情况下,我希望程序仅为这些数据点创建上限 (x) 和下限 (y)。限制的实际值无关紧要;它只需要表明它是这样的。

我发现一些建议将“lolim”和“uplim”添加到 pyplot.errorbar,但它不起作用。我是否需要一个 for 循环或其他东西来添加下限/上限?

谢谢。

【问题讨论】:

  • 发布的网站有帮助,但它仍然没有回答我的主要问题。如何仅在错误为零时显示限制?一些数据点需要误差线,而其他数据点需要限制。我有数百个数据点,因此网站上仅在括号中列出要限制的点的做法对我不起作用。有什么建议吗?
  • 为什么不直接使用numpy.where 之类的东西来制作“lims”数组?
  • 当我尝试使用 numpy.where 时,它​​给了我多个错误。我认为它不适用于我需要的东西。我正在玩一个新的想法,但它不是很有效:如果 x_error. == 0: uplim = np.zeros(x.shape) uplim = True else: uplim = False,但我需要它来处理数组的特定值,而不是全部。我真的不知道如何让它绘制具有特定错误的值的限制。有什么帮助吗?

标签: python graph matplotlib limits astronomy


【解决方案1】:

建议一个简单的解决方案,如下所示:

所有非限制:

ind1 = y_error*x_error!=0
pyplot.errorbar(x[ind1],y[ind1],yerr=y_error[ind1],xerr=xerror[ind1],fmt='k+')

x 限制:

ind2 = x_error==0  
pyplot.errorbar(x[ind2],y[ind2],yerr=y_error[ind2],fmt='k<')

y 限制:

ind3 = y_error==0  
pyplot.errorbar(x[ind3],y[ind3],xerr=x_error[ind3],fmt='kv')

在 x 和 y 都是极限的情况下,我将由您决定如何处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2014-07-01
    • 2017-08-09
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多