Преобразовать в список линию с графика

Строю график сглаживания данных, на выходе получается линия plt.plot(polyline, model(polyline)). Как ее преобразовать в один список z?

import numpy as np
import scipy.stats as stats

x = [6, 9, 12, 12, 15, 21, 24, 24, 27, 30, 36, 39, 45, 48, 57, 60]
y = [12, 18, 30, 42, 48, 78, 90, 96, 96, 90, 84, 78, 66, 54, 36, 24]

model = np.poly1d(np.polyfit(x, y, 2))
polyline = np.linspace(1, 60, 50)

# ? z = [polyline, model(polyline)] ?

plt.scatter(x, y)
plt.plot(polyline, model(polyline))
plt.show()

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


Ответы (2 шт):

Автор решения: CrazyElf

Не совсем понятна задача, но попробую предположить, что вам нужен на выходе список координат формата [[x1, y1], [x2, y2], ...]

Питоновский метод:

z = list(zip(polyline, model(polyline)))
# [(1.0, -23.186794966968563),
#  (2.204081632653061, -14.962603388967386),
#  (3.4081632653061225, -7.04863899144604),

Но поскольку это массивы Numpy, то лучше через Numpy:

z = np.column_stack((polyline, model(polyline)))
# array([[  1.        , -23.18679497],
#        [  2.20408163, -14.96260339],
#        [  3.40816327,  -7.04863899],
→ Ссылка
Автор решения: MaxU

Попытаюсь угадать и формализовать задачу по описанию из вопроса. Если я правильно угадал, автор вопроса хочет получить значения смоделированной функции в точках из массива x:

z = model(x)

графики:

plt.scatter(x, y)
plt.plot(polyline, model(polyline))
plt.scatter(x, z)

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

→ Ссылка