Matplotlib でトレンドラインを作成する
このデモ記事では、トレンドラインに関する短いデモを見て、Matplotlib でグラフに線形トレンドラインを作成する方法も見ていきます。
polyfit()
メソッドを使用して Matplotlib でトレンドラインを作成する
傾向線は、プロット内のデータ ポイントを通る単純な線です。 傾向を推定し、それらを使用して予測を試みます。
必要なライブラリを Python にインポートすることから始めましょう。
import matplotlib.pyplot as plot
import numpy as np
摂氏の温度のデータ ベクトルと電圧のデータ ベクトルがあります。 Excel スプレッドシート、テキスト ファイル、または CSV ファイルがあれば、コードに簡単にインポートできます。
私たちの場合、7つのデータ ポイントを手動で入力しただけです。 温度を電圧の関数としてプロットします。
T = [20, 30, 40, 50, 60, 75, 100]
V = [1.02, 1.53, 2.05, 2.55, 3.07, 3.56, 4.05]
ソースコード:
import matplotlib.pyplot as plot
# Data vectors
T = [20, 30, 40, 50, 60, 75, 100]
V = [1.02, 1.53, 2.05, 2.55, 3.07, 3.56, 4.05]
# Plot data
plot.plot(V, T, "b*")
plot.xlabel("Voltage(V)")
plot.ylabel("Temp(C)")
plot.grid()
plot.show()
出力:
次に、トレンドラインを作成します。 numpy
の polyfit()
メソッドを使用してトレンド ラインを計算してみましょう。このメソッドは多項式フィット ラインを作成します。
polyfit()
メソッドは、x 軸、y 軸、または X と Y 座標の辺を受け入れます。 3 番目のパラメーターは次数を受け取り、1
を渡します。1
は明らかに線形であるため、2
は 2 次になります。
coeff = np.polyfit(V, T, 1) # 1=linear
その係数の最初の要素を変数 m
に格納すると、b
が y 切片になります。
m = coeff[0]
b = coeff[1]
次の構文を使用して傾向線をプロットします。 linspace()
メソッドを呼び出す必要があります。このメソッドは、100 のデータ ポイントを持ついくつかの開始点と終了点を取得します。
Ttrend
変数には方程式が格納されており、この方程式はトレンドラインの作成に役立ちます。
Vtrend = np.linspace(V[0], V[-1], 100)
Ttrend = m * Vtrend + b
ソースコード:
import matplotlib.pyplot as plot
import numpy as np
# Data vectors
T = [20, 30, 40, 50, 60, 75, 100]
V = [1.02, 1.53, 2.05, 2.55, 3.07, 3.56, 4.05]
# Plot data
plot.plot(V, T, "b*")
plot.xlabel("Voltage(V)")
plot.ylabel("Temp(C)")
plot.grid()
# Compute the trendline
coeff = np.polyfit(V, T, 1) # 1=linear
m = coeff[0]
b = coeff[1]
Vtrend = np.linspace(V[0], V[-1], 100)
Ttrend = m * Vtrend + b
plot.plot(Vtrend, Ttrend, "r")
plot.show()
出力:
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn