Подтвердить что ты не робот

Среднее и среднеквадратическое отклонение

У меня есть несколько значений функции в разных х точках. Я хочу построить среднее и std в python, как ответ этот вопрос SO. Я знаю, что это должно быть легко с помощью matplotlib, но я понятия не имею о имени функции, которое может это сделать. Кто-нибудь знает это?

enter image description here

4b9b3361

Ответ 1

plt.errorbar можно использовать для построения x, y, данных ошибок (в отличие от обычного plt.plot)

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.power(x, 2) # Effectively y = x**2
e = np.array([1.5, 2.6, 3.7, 4.6, 5.5])

plt.errorbar(x, y, e, linestyle='None', marker='^')

plt.show()

plt.errorbar принимает те же аргументы, что и plt.plot с дополнительными yerr и xerr, которые по умолчанию равны None (т.е. если вы оставите их пустыми, они будут действовать как plt.plot).

Example plot

Ответ 2

В этом примере вы можете найти ответ: errorbar_demo_features.py

"""
Demo of errorbar function with different ways of specifying error bars.

Errors can be specified as a constant value (as shown in `errorbar_demo.py`),
or as demonstrated in this example, they can be specified by an N x 1 or 2 x N,
where N is the number of data points.

N x 1:
    Error varies for each point, but the error values are symmetric (i.e. the
    lower and upper values are equal).

2 x N:
    Error varies for each point, and the lower and upper limits (in that order)
    are different (asymmetric case)

In addition, this example demonstrates how to use log scale with errorbar.
"""
import numpy as np
import matplotlib.pyplot as plt

# example data
x = np.arange(0.1, 4, 0.5)
y = np.exp(-x)
# example error bar values that vary with x-position
error = 0.1 + 0.2 * x
# error bar values w/ different -/+ errors
lower_error = 0.4 * error
upper_error = error
asymmetric_error = [lower_error, upper_error]

fig, (ax0, ax1) = plt.subplots(nrows=2, sharex=True)
ax0.errorbar(x, y, yerr=error, fmt='-o')
ax0.set_title('variable, symmetric error')

ax1.errorbar(x, y, xerr=asymmetric_error, fmt='o')
ax1.set_title('variable, asymmetric error')
ax1.set_yscale('log')
plt.show()

Что это за графика:

введите описание изображения здесь