2016-10-03 18 views
1

時間の関数の質量変化を監視するデバイスでは、データの線形部分の傾きを計算したいと思います。直線部分と曲線の傾きを見つける

以下に示す例は、デバイスによって生成されたデータフレームを読み取ることによって生成されます。

import pandas as pd 
import matplotlib.pyplot as plt 

#Find DataFrame 
df = pd.read_table("raw_data.csv", sep =";", skiprows = 11, decimal = ",") 

# Plot figures 
plt.figure() 
plt.plot(df["Time(s)"], df["Mass(g)"], label = "Raw Data") 
plt.axvspan(2, 17, color="b", alpha=0.2) 
plt.xlabel("Time (s)") 
plt.ylabel("Mass (g)") 
plt.legend(loc=0) 
plt.axis([0, None, 0, None]) 
plt.show() 

Example curve

それは(大体ハイライト部)この曲線の直線部分にフィットし、それの傾きを計算することは可能ですか?

答えて

1

使用numpy.polyfit()

df_sampled = df[:max_value] #select the points you want to keep 
m, p = numpy.polyfit(df_sampled.index, df_sampled, deg=1) 

機能はスロープとあなたの線形回帰のインターセプトを返します。

+0

ありがとうございます、これはすでに役立ちます!しかし、線形部分の点を手動で選択するのは、一度に1つのファイルに対してしか使用できません。300を超えるため、この線形部分を見つけるための一般的な方法を探していました。 –

+0

すべてのカーブが同じように見える場合は、しきい値を最大値の質量の95%または90%に設定し、横軸を線形部分の終点とします。私は、あなたがモデル化しようとしていることはわかりませんが、一般的に、これは、物理学における一時的な状態と永続的な状態を分離したいときに行うことです。 – MMF

関連する問題