python - 缺少趋势线
问题描述
我正在尝试将趋势线添加到 S&P500 的历史值中,但是当我尝试添加趋势线时它没有出现,只有 S&P500 值出现在图表中。(“Dato”在挪威语中的意思是“日期”。)
这是我的代码:
##################### Load the data
df = pd.read_csv("SP500.csv", delimiter=r",", names = ["Date","Open", "High",
"Low", "Close", "S&P500",
"Volume"])
df = df.drop(columns=['Open', 'High', 'Low', 'Close', 'Volume'])
df["Dato"] = df["Date"]
df2 = pd.read_excel("OSEBX.xlsx", names = ["Date", "OSEBX"])
df.set_index('Date', inplace=True)
df2.set_index('Date', inplace=True)
df3 = df.join(df2)
df["Dato"] = pd.to_datetime(df3["Dato"])
################################ Graph
t = np.array(range(0, len(df["Dato"])))
x = np.array(df3["OSEBX"])
y = np.array(df3["S&P500"])
plt.scatter(t,x, s=1)
z = np.polyfit(x, t, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"bs", linewidth=20)
plt.show()
解决方案
#Thanks to Andreas Deak I found a solution:
t = np.array(range(0, len(df3["Dato"])))
x = np.array(df3["OSEBX"])
y = np.array(df3["S&P500"])
plt.plot(t, x, linewidth=0.5, color="b")
z = np.polyfit(t, x, 1)
p = np.poly1d(z)
plt.plot(t, p(t),"r--", linewidth=0.5)
plt.show()
推荐阅读
- npm - 为什么我需要与 react-redux 一起安装 redux?
- .htaccess - 有条件地在 .htaccess 中设置 Files 指令
- ruby-on-rails - Heroku 文件存在吗?找不到刚刚保存的文件
- python-3.x - 如何在 scikit-learn 中编写一个自定义转换器,它将有条件地在不同的类之间切换
- docker - 如何从 Windows 的 docker 容器内部连接另一台机器?
- asp.net-core - 在launchSettings.json 中计算launchUrl?
- arrays - ReactJS Hooks 用另一个数组更新一个数组
- java - 升级到 java 12 后,使用什么语法以及用于 surefire 插件和 maven 的内容
- java - java.net.HttpURLConnection URL 中 userinfo 的安全隐患
- node.js - 适用于 Windows 7 的 NodeJS