如何显示线段的斜率

时间:2019-06-06 14:59:22

标签: python-3.x pandas matplotlib jupyter-notebook

基本上,我有一个数据集,我只想查找我绘制的线段的斜率。我所看到的每个答案都仅说明了如何创建最适合的常规路线,但这与我的需求无关。

我正在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()

My Plot

基本上我想在线条不完全平坦的地方显示最适合的线条的斜率。

1 个答案:

答案 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上做一条最合适的线

(这不是通过任何方式做到这一点的“最干净”的方法,但这只是给出总体思路的草图)