Отобразить доверительные интервалы функции на графике

Добрый вечер. Нужно на графике отобразить доверительный интервал функции в виде закрашенной области от y[i] - error[i] до y[i] + error[i] на графике. Вот код, генерирующий график:
import numpy as np
%pylab inline
import matplotlib.pyplot as plt
x = np.linspace(0, 30, 100)
y = np.sin(x/6*np.pi) + np.random.normal(0, 0.02, size=x.shape)
error = np.random.normal(0.1, 0.02, size=y.shape)
def gen_uncertain_data():
    x = np.linspace(0, 30, 100)
    y = np.sin(x/6*np.pi) + np.random.normal(0, 0.02, size=x.shape)
    error = np.random.normal(0.1, 0.02, size=y.shape)
    return x, y, error
plt.plot(y)
plt.title('Confidence Interval of a function')
plt.xlabel('x')
plt.ylabel('sin(x/6*np.pi) + random noise')
Что дальше делать, не могу понять. Все мои попытки приводят к закрашиванию совсем не по функции
3 ответа

Выглядеть должно это примерно так:


лучше?
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 30, 100)
y = np.sin(x/6*np.pi) + np.random.normal(0, 0.02, size=x.shape)
error = np.random.normal(0.1, 0.02, size=y.shape)
 
plt.plot(x, y, '-r', linewidth=2.0)
plt.title('Confidence Interval of a function')
plt.xlabel('x')
plt.ylabel('sin(x/6*np.pi) + random noise')
plt.fill_between(x, y-error, y+error)
plt.show()
заменил plt.plot(x) на:
plt.plot(x, y, '-r', linewidth=2.0)
и добавил:
plt.fill_between(x, y-error, y+error)


Да, спасибо большое