让我来详细讲解一下“Python绘制K线图之可视化神器pyecharts的使用”的完整攻略。
K线图,是一种用在股票分析上的技术图表。K线图以矩形来显示某一段时间内股票的开盘价、收盘价、最高价和最低价,并且可以在矩形上用红色、绿色来表示这个时间段的股票价格上涨或者下跌。
要想使用pyecharts,你需要先安装它。你可以通过使用pip进行安装,命令如下所示:
pip install pyecharts
将K线图用pyecharts绘制需要进行如下几个步骤。
首先,在python中导入需要的模块,其中,这里我们除了导入pyecharts之外,还需要导入numpy和pandas,代码如下所示:
import numpy as np
import pandas as pd
from pyecharts.charts import Kline
from pyecharts import options as opts
接下来,我们需要准备好股票数据。
data = pd.read_csv("stock_data.csv")
data.head()
接下来就可以绘制K线图了。在使用pyecharts绘制K线图时,我们需要先创建一个Kline实例,然后使用add_xaxis和add_yaxis方法来设置x轴和y轴的数据,再使用set_global_opts方法来设置标题、横轴、纵轴等属性。代码如下所示:
kline = Kline(init_opts=opts.InitOpts(width="1200px", height="600px"))
kline.add_xaxis(data["date"].tolist())
kline.add_yaxis("", data[["open", "close", "low", "high"]].values.tolist())
kline.set_global_opts(xaxis_opts=opts.AxisOpts(is_scale=True),
yaxis_opts=opts.AxisOpts(is_scale=True),
title_opts=opts.TitleOpts(title="K线图"),
datazoom_opts=[opts.DataZoomOpts(range_start=70, range_end=100)],
)
kline.render("stock_kline.html")
以上就是绘制K线图的完整攻略。
下面给出两个使用pyecharts绘制K线图的示例,让大家更加清楚地了解pyecharts的使用。
import tushare as ts
# 获取股票数据
data = ts.get_k_data('000001', start='2020-01-01', end='2020-01-31')
# 绘制K线图
kline = Kline(init_opts=opts.InitOpts(width="1200px", height="600px"))
kline.add_xaxis(data["date"].tolist())
kline.add_yaxis("", data[["open", "close", "low", "high"]].values.tolist())
kline.set_global_opts(xaxis_opts=opts.AxisOpts(is_scale=True),
yaxis_opts=opts.AxisOpts(is_scale=True),
title_opts=opts.TitleOpts(title="K线图"),
datazoom_opts=[opts.DataZoomOpts(range_start=70, range_end=100)],
)
kline.render("stock_kline.html")
# 生成随机数据
np.random.seed(100)
data = np.random.randn(200, 4)
data[:, 0] = np.arange(200)
# 绘制K线图
kline = Kline(init_opts=opts.InitOpts(width="1200px", height="600px"))
kline.add_xaxis(data[:, 0].tolist())
kline.add_yaxis("", data[:, 1:].tolist())
kline.set_global_opts(xaxis_opts=opts.AxisOpts(is_scale=True),
yaxis_opts=opts.AxisOpts(is_scale=True),
title_opts=opts.TitleOpts(title="K线图"),
datazoom_opts=[opts.DataZoomOpts(range_start=70, range_end=100)],
)
kline.render("stock_kline.html")
本文链接:http://task.lmcjl.com/news/13461.html