Я пытаюсь выполнить простую линейную подгонку к 373 точкам данных, но полифит, похоже, дает сбой, и я не уверен, почему.
x = np.reshape(air_sst_new[:,90,180],(373))
y = np.reshape(olr_new[:,90,180],(373))
z = np.polynomial.polynomial.polyfit(x,y,1)
plt.figure()
plt.plot(x,y, '.')
xx = np.linspace(np.min(x),np.max(x))
yy = np.polynomial.polynomial.polyval(xx, z)
plt.plot(xx, yy)
График с указанием исходных данных и подгонки
Код, написанный выше, работает при использовании случайно сгенерированных точек, что разочаровывает.
example_x = np.random.rand(373,180,360)
example_y = np.random.rand(373,180,360)
x = np.reshape(example_x[:,90,180], (373))
y = np.reshape(example_y[:,90,180], (373))
z = np.polynomial.polynomial.polyfit(x,y,1)
plt.figure()
plt.plot(x,y, '.')
xx = np.linspace(np.min(x), np.max(x))
yy = np.polynomial.polynomial.polyval(xx, z)
plt.plot(xx, yy)
График, показывающий случайно сгенерированные данные и правильное соответствие