9

次のように、Pythonでloglog関数を使用して単純な2Dグラフをプロットしています:

plt.loglog(x,y,label='X vs Y');

X と Y はどちらもnサイズの浮動小数点数のリストです。

同じグラフに線を当てはめたい。numpy.polyfit を試しましたが、どこにも行きません。

グラフが既に loglog スケールになっている場合、polyfit を使用して線をどのように適合させますか?

4

2 に答える 2

19

Numpy は、matplotlib グラフの軸が何であるかを気にしません。

log(y)は の多項式関数だと思いますがlog(x)、その多項式を見つけたいですか? その場合はnumpy.polyfit、データセットの対数で実行します。

import numpy as np
logx = np.log(x)
logy = np.log(y)
coeffs = np.polyfit(logx,logy,deg=3)
poly = np.poly1d(coeffs)

polylog(x)はを返す多項式になりましたlog(y)。値を予測するための適合を取得するにはy、多項式を指数化するだけの関数を定義できます。

yfit = lambda x: np.exp(poly(np.log(x)))

loglogmatplotlibプロットに適合線をプロットできるようになりました。

plt.loglog(x,yfit(x))

そして、このように表示します

plt.show()
于 2013-09-12T10:01:19.367 に答える