次のように、Pythonでloglog関数を使用して単純な2Dグラフをプロットしています:
plt.loglog(x,y,label='X vs Y');
X と Y はどちらもn
サイズの浮動小数点数のリストです。
同じグラフに線を当てはめたい。numpy.polyfit を試しましたが、どこにも行きません。
グラフが既に loglog スケールになっている場合、polyfit を使用して線をどのように適合させますか?
次のように、Pythonでloglog関数を使用して単純な2Dグラフをプロットしています:
plt.loglog(x,y,label='X vs Y');
X と Y はどちらもn
サイズの浮動小数点数のリストです。
同じグラフに線を当てはめたい。numpy.polyfit を試しましたが、どこにも行きません。
グラフが既に loglog スケールになっている場合、polyfit を使用して線をどのように適合させますか?
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)
poly
log(x)
はを返す多項式になりましたlog(y)
。値を予測するための適合を取得するにはy
、多項式を指数化するだけの関数を定義できます。
yfit = lambda x: np.exp(poly(np.log(x)))
loglog
matplotlibプロットに適合線をプロットできるようになりました。
plt.loglog(x,yfit(x))
そして、このように表示します
plt.show()