Python – 股票数据可视化
Python是一种用于进行基于数据的分析和可视化的出色语言。它还有助于有广泛的开源库可以现成的用于一些强大的功能。
Python Dash 是一个库,可让您构建 Web 仪表板和数据可视化,而无需复杂的前端 HTML、CSS 或 JavaScript。
在本文中,我们将学习使用Python Dash、Pandas 和 Yahoo 的 Finance API 构建股票数据仪表板。
安装:
安装最新版本的 Pandas Datareader
pip install pandas_datareader
安装最新版本的 Dash
pip install dash
执行:
导入所有需要的库
# importing required libraries
import datetime
import pandas_datareader.data as web
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
现在让我们使用破折号制作一个用户界面。我们将制作一个简单而实用的用户界面,一个是简单的标题标题和一个输入文本框,供用户输入股票名称。
# UI
app = dash.Dash()
app.title = "Stock Visualisation"
app.layout = html.Div(children =[
html.H1("Stock Visualisation Dashboard"),
html.H4("Please enter the stock name"),
dcc.Input(id ='input', value ='', type ='text'),
html.Div(id ='output-graph')
])
输入文本框现在只是一个静态文本框。要从用户界面获取输入数据,在本例中是公司的股票名称,我们应该添加应用回调。读取的库存名称 ( input_data ) 作为参数传递给方法update_value 。然后,该函数从 Yahoo Finance API 获取自 2010 年 1 月 1 日至今,即当天的所有股票数据,并存储在 Pandas 数据框中。绘制了一个图表,X 轴是数据框的索引,以年为单位,Y 轴是每天的收盘价,图表的名称是股票名称( input_data )。该图返回到回调包装器,然后将其显示在用户界面上。
代码:
def update_value(input_data):
# Reads stock prices from 1st January 2010
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime.now()
# Read stock data from yahoo's finance API from start to end
df = web.DataReader(input_data, 'yahoo', start, end)
return dcc.Graph(id ="example",
figure ={
'data':[{'x':df.index, 'y':df.Close, 'type':'line', 'name':input_data},
],
'layout':{
'title':input_data
}
}
)
代码:最后,运行服务器。
if __name__ == '__main__':
app.run_server()
执行:
默认情况下,Web 应用程序现在将在本地主机 8050 上运行。
127.0.0.1:8050
例子:
让我们考虑一个例子。谷歌的股票名称是 GOOGL。让我们将这些数据输入到输入文本框中。
下面是结果。