我有以下数据:
我有兴趣在'中间位'(截距0)上拟合一条线。我怎么做?获得渐变的数字也很有用。
(仅供参考这些是进出现金交易的清单。梯度将是盈利或亏损。)
以下是一些数据: https://gist.github.com/chrism2671/1081c13b6760878b457a112d2041622f
答案 0 :(得分:2)
您可以使用numpy.polyfit
和numpy.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)
使用您提供的数据: