スキップしてメイン コンテンツに移動

matplotlib: 多項式によるフィッティング

matplotlibでは、polyfitを使えば簡単に多項式によるフィッティングを行える。図ではオリジナルのデータを赤でプロットし、それに対し、1次(黒)、2次(緑)、3次(青)の多項式によるラインを描いている。

以下、ソースコード。

from pylab import * x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] y = [1, 1, 2, 3, 5, 6, 8, 9, 8, 6] coeffs1 = polyfit(x, y, 1) coeffs2 = polyfit(x, y, 2) coeffs3 = polyfit(x, y, 3) besty1 = polyval(coeffs1, x) besty2 = polyval(coeffs2, x) besty3 = polyval(coeffs3, x) plot(x, y, "ro") plot(x, besty1, "-k", linewidth=2) plot(x, besty2, "-g", linewidth=2) plot(x, besty3, "-b", linewidth=2) grid(True) legend(["Data", "Order=1", "Order=2", "Order=3"], "best", numpoints=3) show()

コメント