2014-09-23 5 views
2

Предупреждение: я очень новичок в python и знаю очень мало.Использование BOTH ошибок и верхних/нижних пределов в 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 или что-то добавить в нижнем/верхнем пределе?

Спасибо.

+1

См. Https://github.com/matplotlib/matplotlib/pull/2452 – tacaswell

+0

Опубликованный сайт помогает, но он по-прежнему не отвечает моей основной проблеме. Как получить ограничения, отображаемые ТОЛЬКО, когда ошибка равна нулю? Некоторым точкам данных нужны строки ошибок, а другим нужны ограничения. У меня есть сотни точек данных, поэтому практика с веб-сайта просто перечисление точек, которые будут ограничены в скобках, не будет работать для меня. Какие-либо предложения? – user3576982

+0

Почему бы вам просто не использовать что-то вроде 'numpy.where' для создания массивов« lims »? – Ajean

ответ

0

Предложите простое решение так:

все не-пределы:

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

рентгеновские пределы:

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

у-пределы:

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

Я оставлю это вам, чтобы решить, что делать с остроумием h случаи, когда оба x и y являются пределами.

 Смежные вопросы

  • Нет связанных вопросов^_^