2017-12-04 3 views
-1

は、私は私が取得していますが、右docsnumpy.poly1dプロット多くの行

poly=np.poly1d(np.polyfit(x,y,20)) 
plt.scatter(x,y) 
plt.plot(x, poly(x)) 

によると、いくつかの単純なデータをグラフ化し、多項式回帰直線を表示しようとしている私はすべてをやっているように思えるんです以上のちょうど1行:matplotlibのの enter image description here

+0

'x.shape ==(397)'と 'y.shape ==(397)' – Tony

答えて

0

plot方法は、あなたがそれらを提供することために、あなたが提供する(X、ポリ(X))のドットを接続しています。あなたの配列xはソートされていないように見えます。プロットは左右に何度も行きます。ソートそれを例えば、プロットする前に:1は(上に示したラフなプロットを作ることができる)でないポイントに対して適合モデルをプロットしているため

x = np.array([1,7,2,6,3,5,4]) 
y = np.array([1,3,2,4,3,5,4]) 
poly=np.poly1d(np.polyfit(x, y, 2)) 
plt.scatter(x,y) 
sorted = np.sort(x) 
plt.plot(sorted, poly(sorted)) 
plt.show() 

para

は、通常、これはいくつかに対して起動しません。より細かいプロットを作成します。ソートは問題ではありません。

xx = np.linspace(x.min(), x.max(), 500) 
plt.plot(xx, poly(xx)) 
plt.show() 

smooth

+0

は今、あなたがそれを指摘することを、私はそれをやっているか見て、ありがとうございます。 – Tony

+0

私は答えを拡大し、ソートの代替案を追加しました。 – FTP

関連する問題