Python - График нижней и верхней границы для небольшого региона - PullRequest
0 голосов
/ 09 января 2020

У меня есть 4 numpy массивов

true = np.array([1,2,3,4,5])
pred = np.array([3.1,4.1,5.1])
lower = np.array([3,4,5])
upper = np.array([3.2,4.2,5.2])

, где pred, lower и upper - медианные прогнозы, нижняя граница и верхняя граница прогнозов соответственно (только за последние 3 времени, а не за первые 2 времени).

Я не уверен, как построить все 4 массива в 1 графике. Цени любую помощь.

Ответы [ 2 ]

1 голос
/ 09 января 2020

Чтобы все было на одном графике, вы можете использовать функцию plot из matplotlib. Чтобы добавить несколько линий на одном графике, необходимо указать пары x и y. Этот код должен объяснить это:

import numpy as np
import matplotlib.pyplot as plt

true = np.array([1,2,3,4,5])
pred = np.array([3.1,4.1,5.1])
lower = np.array([3,4,5])
upper = np.array([3.2,4.2,5.2])

x = np.arange(1, 6, 1)
x_med = np.arange(3,6,1)

plt.plot(x, true, x_med, pred, x_med, lower, x_med, upper)
plt.show()
1 голос
/ 09 января 2020

Может как то так? Если графики сильно перекрываются, вы можете добавить параметр alpha.

import matplotlib.pyplot as plt
import numpy as np

true = np.array([1,2,3,4,5])
pred = np.array([3.1,4.1,5.1])
lower = np.array([2.9,3.9,4.9])
upper = np.array([3.2,4.2,5.2])
xs = range(1,6)

f, ax = plt.subplots()

ax.plot(xs[2:], lower, color='limegreen', marker='o', label='lower', lw=0.5, markersize=2)
ax.plot(xs[2:], pred, color='aqua', marker='o', label='pred', markersize=2)
ax.plot(xs[2:], upper, color='dodgerblue', marker='o', label='upper', lw=0.5, markersize=2)
ax.plot(xs, true, color='crimson', marker='o', label='true')
ax.fill_between(xs[2:], lower, upper, color='gold', alpha=0.3, label='region')
plt.legend()

plt.show()

resulting plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...