📅  最后修改于: 2023-12-03 15:04:04.295000             🧑  作者: Mango
Bokeh是一个用于Python的交互式可视化库。该库旨在为现代Web浏览器提供优雅,简洁和高效的绘图,同时提供D3.js样式的交互。Bokeh将用户输入自动转换为Javascript,在浏览器中直接绘制图形。
Bokeh可以很好地与Python科学计算库,如pandas,numpy和scipy集成,所以它是可视化数据分析和交互式报告的强大工具。下面是如何使用Bokeh可视化股票数据的例子。
要使用Bokeh,需要先将其安装到您的计算机上。可以使用pip命令安装:
pip install bokeh
首先,您需要收集股票数据。你可以从各种来源获取数据,包括数据供应商,如Yahoo Finance,Quandl和Google Finance等。
这里我们将使用Pandas DataReader库从Yahoo Finance获取股票数据。确保您已经安装了pandas-datareader:
pip install pandas-datareader
接下来,我们将为可视化数据准备一些数据。下面的代码将使用Pandas DataReader库从Yahoo Finance获取IBM和苹果公司(AAPL)的历史股票数据。这将返回包含股票数据的Pandas数据框:
from pandas_datareader import data
# 记录数据从2016年1月1日到今天
start_date = '2016-01-01'
end_date = '2021-08-31'
# 从Yahoo Finance获取IBM和苹果公司的历史数据
ibm_data = data.DataReader('IBM', 'yahoo', start_date, end_date)
aapl_data = data.DataReader('AAPL', 'yahoo', start_date, end_date)
# 显示数据的前几行
print(ibm_data.head())
print(aapl_data.head())
输出:
High Low Open Close Volume \
Date
2016-01-04 134.289993 131.649994 133.440002 131.809998 5229400.0
2016-01-05 134.119995 131.429993 131.979996 131.869995 3924800.0
2016-01-06 131.630005 128.949997 131.630005 130.289993 4310900.0
2016-01-07 128.330002 125.849998 127.290001 126.959999 7025800.0
2016-01-08 129.979996 125.849998 129.229996 125.949997 4747900.0
Adj Close
Date
2016-01-04 108.468086
2016-01-05 108.519188
2016-01-06 107.126335
2016-01-07 104.312607
2016-01-08 103.439369
High Low Open Close Volume \
Date
2016-01-04 105.370003 102.00 102.610001 105.349998 67649400.0
2016-01-05 105.849998 102.410004 105.750000 102.709999 55791000.0
2016-01-06 102.370003 099.870003 100.559998 100.699997 68457400.0
2016-01-07 100.129997 096.43 098.680000 096.449997 81094400.0
2016-01-08 099.110001 095.970001 098.550003 096.959999 70798000.0
我们将使用Bokeh来可视化股票数据。Bokeh支持许多类型的图表,包括线图,散点图,条形图和地图等。在这里,我们将使用线图来显示股票价格的历史变化。
首先,我们需要导入必要的Bokeh模块:
from bokeh.plotting import figure, output_file, show
然后,我们可以使用如下代码创建一个简单的交互式图:
# 创建一个绘画对象
p = figure(title='IBM and AAPL Stock Prices', x_axis_label='Date', y_axis_label='Price')
# 添加一条表示IBM股票价格的线
p.line(ibm_data.index, ibm_data['Adj Close'], line_width=2, legend_label='IBM')
# 添加一条表示苹果股票价格的线
p.line(aapl_data.index, aapl_data['Adj Close'], line_width=2, color='orange', legend_label='AAPL')
# 显示图表
show(p)
结果:
以上就是如何使用Bokeh可视化股票数据的简单示例。Bokeh提供了许多其他功能和选项,以便您可以定制您的图表以适合您的需求。这是一个非常强大的工具,可以用于制作高质量的交互式数据可视化。