По какой-то причине мой полифит очень далек, и я не могу понять, почему это так. Мой график рассеяния кажется нормальным.
График рассеивания
График PolyFit
Как это исправить? Вот мой код:
def plot(data, x_axis, y_axis, title):
x = data[0]
y = data[1]
## Plot data
plt.figure(figsize=(8,4))
plt.scatter(x, y)
idx = np.isfinite(x) & np.isfinite(y)
plt.plot(np.poly1d(np.polyfit(x[idx], y[idx], 3)))
## Format graph
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
plt.gca().xaxis.set_major_locator(mdates.YearLocator(3))
plt.gcf().autofmt_xdate()
## Define labels
plt.xlabel(x_axis)
plt.ylabel(y_axis)
plt.title(title)
## Graph data
plt.show()
Если мне нужно связать свои данные, тогда я смогу. Здесь слишком много всего, чтобы публиковать здесь.
Проверка
print(x[idx])
print(y[idx])
Показывает правильные значения и ничего не отключается.
x [idx] и y [idx] сюжет
РЕДАКТИРОВАТЬ: я выяснил свое решение. Я неправильно использовал polyfit.
idx = np.isfinite(x) & np.isfinite(y)
avgTrend = np.poly1d(np.polyfit(x[idx], y[idx], 3))
plt.plot(x, avgTrend(x), color='red')
введите описание изображения здесь