Преобразовать в список линию с графика
Строю график сглаживания данных, на выходе получается линия 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)

