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

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

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()




是否可以将线性部分拟合到该曲线中(大致突出显示的部分)并计算其斜率?

最佳答案

使用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)


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

关于python - 查找曲线的线性部分和斜率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39835069/

10-16 08:48