找到曲线中的线性部分和斜率

时间:2016-10-03 15:22:53

标签: python pandas plot dataframe

对于监控时间函数质量变化的设备,我们希望计算数据线性部分的斜率。

下面显示的示例是通过读取设备生成的数据帧生成的。

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 个答案:

答案 0 :(得分: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)

该函数返回线性回归的斜率截距