如何为这些数据拟合一条线?

时间:2017-12-21 08:38:52

标签: pandas numpy scipy

我有以下数据:

enter image description here

我有兴趣在'中间位'(截距0)上拟合一条线。我怎么做?获得渐变的数字也很有用。

(仅供参考这些是进出现金交易的清单。梯度将是盈利或亏损。)

以下是一些数据: https://gist.github.com/chrism2671/1081c13b6760878b457a112d2041622f

1 个答案:

答案 0 :(得分:2)

您可以使用numpy.polyfitnumpy.poly1d来实现这一目标:

import matplotlib.pyplot as plt
import numpy as np

# Create data

ls = np.linspace(0, 100)
s = np.random.rand(len(ls))*100 + ls

# Fit the data

z = np.polyfit(ls, s, deg=1)
p = np.poly1d(z)

# Plotting

plt.figure(figsize=(16,4.5))

plt.plot(ls, s, 
         alpha=.75, label='signal')

plt.plot(ls, p(ls), 
         linewidth=1, linestyle='--', color='r', label='polyfit')

plt.legend(ncol=2)

enter image description here

使用您提供的数据:

enter image description here