基本上,我有一个数据集,我只想查找我绘制的线段的斜率。我所看到的每个答案都仅说明了如何创建最适合的常规路线,但这与我的需求无关。
我正在python 3中使用Jupyter Notebook,带有pandas,matplotlib.pyplot,numpy,并已从scipy.stats导入linregress(根据另一篇解释如何计算斜率的说明)。
这是我使用两个已定义为df和df2的数据框绘制的图形。
plt.figure(figsize=(20,10))
line1 = plt.plot(df['Time (s)'],df['Oxygen (μmol/L)'], 'b-', label='1mM Ru(Eto)(bpy) with 20eq Ce')
line2 = plt.plot(df2['Time (s)'],df2['Oxygen (μmol/L)'], 'r-', label='1mM Ru(tpy)(bpyCO)PF_6 with 20eq Ce')
plt.legend()
基本上我想在线条不完全平坦的地方显示最适合的线条的斜率。
答案 0 :(得分:0)
尝试使用一些阈值来获取非平坦数组的子集。类似于
idx = np.array([])
for i in range(len(array)):
if np.abs(array[i] - array[i+1]) > some_threshold:
idx = np.append(idx,i)
new_array = array[idx[0]:idx[-1]]
然后,您可以在new_array
上做一条最合适的线
(这不是通过任何方式做到这一点的“最干净”的方法,但这只是给出总体思路的草图)