Как добавить полосы ошибок в диаграммы в python
Часто вам может потребоваться добавить полосы ошибок к графикам в Python, чтобы отразить неопределенность в измерениях или расчетных значениях. К счастью, это легко сделать с помощью библиотеки matplotlib.
В этом руководстве объясняется, как добавить полосы ошибок в гистограммы и линейные диаграммы в Python.
Столбики ошибок на гистограммах
Предположим, у нас есть следующий набор данных из 10 значений в Python:
import numpy as np import matplotlib.pyplot as plt #define dataset data = [4, 6, 6, 8, 9, 14, 16, 16, 17, 20]
Чтобы создать гистограмму с полосами ошибок для этого набора данных, мы можем установить ширину полос ошибок как стандартную ошибку , которая рассчитывается
Стандартная ошибка = s / √n
Золото:
- s: выборочное стандартное отклонение
- n: размер выборки
Следующий код показывает, как вычислить стандартную ошибку для этого примера:
#calculate standard error std_error = np.std(data, ddof=1) / np.sqrt(len(data)) #view standard error std_error 1.78
Наконец, мы можем создать гистограмму, используя полосы ошибок, ширина которых равна стандартной ошибке:
#define chart fig, ax = plt.subplots() #create chart ax.bar(x=np.arange(len(data)), #x-coordinates of bars height=data, #height of bars yerr=std_error, #error bar width capsize=4) #length of error bar caps
Стандартная ошибка оказалась равна 1,78 . Это ширина полосы ошибок, которая простирается в любом направлении от точечных оценок на графике. Например, значение первого столбца на диаграмме равно 4, поэтому полоса ошибок простирается от:
- Нижний предел: 4 – 178 = 2,22.
- Верхний предел: 4 + 1,78 = 5,78
Каждая полоса ошибок на диаграмме имеет одинаковую ширину.
Столбики ошибок на линейных диаграммах
Следующий код показывает, как создать линейную диаграмму с полосами ошибок для того же набора данных:
import numpy as np import matplotlib.pyplot as plt #define data data = [4, 6, 6, 8, 9, 14, 16, 16, 17, 20] #define x and y coordinates x = np.arange(len(data)) y = data #create line chart with error bars fig, ax = plt.subplots() ax.errorbar(x, y, yerr=std_error, capsize=4)
Обратите внимание, что аргумент yerr сообщает Python о необходимости создания вертикальных полос ошибок. Вместо этого мы могли бы использовать горизонтальные вертикальные полосы, используя аргумент xerr :
#create line chart with horizontal error bars fig, ax = plt.subplots() ax.errorbar(x, y, xerr =std_error, capsize=4)
Дополнительные уроки по Python вы можете найти здесь .