Я пытаюсь получить график рассеяния из 2 массивов, для которых у меня есть третий массив, содержащий абсолютную ошибку (ошибка в направлении y) в каждой точке. Я хочу, чтобы строки ошибок находились между (точка a - ошибка на a) и (укажите a + ошибку на a). Есть ли способ достичь этого с помощью pylab и если не какие-либо идеи о том, как еще я мог это сделать?
Python Pylab разброс графика ошибок (ошибка в каждой точке уникальна)
Ответ 1
>>> import matplotlib.pyplot as plt
>>> a = [1,3,5,7]
>>> b = [11,-2,4,19]
>>> plt.pyplot.scatter(a,b)
>>> plt.scatter(a,b)
<matplotlib.collections.PathCollection object at 0x00000000057E2CF8>
>>> plt.show()
>>> c = [1,3,2,1]
>>> plt.errorbar(a,b,yerr=c, linestyle="None")
<Container object of 3 artists>
>>> plt.show()
где a - ваши данные x b - ваши данные y c является вашей ошибкой y, если есть
отметим, что c - ошибка в каждом направлении уже
Ответ 2
Это почти похоже на другой ответ, но вам вообще не нужен сюжет scatter
, вы можете просто указать формат, подобный разбросу (fmt
-parameter) для errorbar
:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
e = [0.5, 1., 1.5, 2.]
plt.errorbar(x, y, yerr=e, fmt='o')
plt.show()
Результат:
Список доступных параметров fmt
может быть найден, например, в документации plot
:
character description
'-' solid line style
'--' dashed line style
'-.' dash-dot line style
':' dotted line style
'.' point marker
',' pixel marker
'o' circle marker
'v' triangle_down marker
'^' triangle_up marker
'<' triangle_left marker
'>' triangle_right marker
'1' tri_down marker
'2' tri_up marker
'3' tri_left marker
'4' tri_right marker
's' square marker
'p' pentagon marker
'*' star marker
'h' hexagon1 marker
'H' hexagon2 marker
'+' plus marker
'x' x marker
'D' diamond marker
'd' thin_diamond marker
'|' vline marker
'_' hline marker