对于监控时间函数质量变化的设备,我们希望计算数据线性部分的斜率。
下面显示的示例是通过读取设备生成的数据帧生成的。
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()
是否可以将线性部分拟合到此曲线中(大致是突出显示的部分)并计算其斜率?
答案 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)
该函数返回线性回归的斜率和截距。