10.5.1 K线图及其参数配置
K线图又称蜡烛图,股市及期货市场中的K线图的画法包含四个数据,即开盘价、最高价、最低价、收盘价,所有的k线都是围绕这四个指标展开,反映股票的状况。如果把每日的K线图放在一张纸上,就能得到日K线图,同样也可画出周K线图、月K线图。
10.5.2 企业股票价格趋势分析
下为了分析该企业股票价格的区域,绘制了股票价格的K线图。具体过程如下:
1.导入options、Kline、Page、connect等包;
2.连接Hadoop集群,抽取股价表stocks数据;
3.配置K线图的相关参数,以及全局配置项;
4.展示股票价格趋势。
下面是实现上述步骤的Python代码:
# -*- coding: utf-8 -*-
#声明Notebook类型,必须在引入pyecharts.charts等模块前声明
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts import options as opts
from pyecharts.charts import Kline, Page
from impala.dbapi import connect
#连接Hadoop数据库
v1 = []
v2 = []
conn = connect(host='192.168.1.7', port=10000, database='sales',auth_mechanism='NOSASL',user='root')
cursor = conn.cursor()
#读取Hadoop股价表数据
sql_num = "SELECT trade_date,open,high,low,close FROM stocks where year(trade_date)=2019 ORDER BY trade_date asc"
cursor.execute(sql_num)
sh = cursor.fetchall()
for s in sh:
v1.append([s[0]])
for s in sh:
v2.append([s[1],s[2],s[3],s[4]])
data = v2
def kline_markline() -> Kline:
c = (
Kline()
.add_xaxis(v1)
.add_yaxis(
"企业股票价格走势",
data,
markline_opts=opts.MarkLineOpts(
data=[opts.MarkLineItem(type_="max", value_dim="close")]
),
)
.set_global_opts(
xaxis_opts=opts.AxisOpts(is_scale=True),
yaxis_opts=opts.AxisOpts(
is_scale=True,
splitarea_opts=opts.SplitAreaOpts(
is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
),
),
datazoom_opts=[opts.DataZoomOpts(pos_bottom="-2%")],
title_opts=opts.TitleOpts(title="企业股票价格趋势分析", subtitle="2019年股价走势"),
toolbox_opts=opts.ToolboxOpts(),
legend_opts=opts.LegendOpts(is_show=True)
)
)
return c
#第一次渲染时候调用load_javasrcript文件
kline_markline().load_javascript()
#展示数据可视化图表
kline_markline().render_notebook()
在Jupyter lab中运行上述代码,生成的K线图如图10-5所示。
图10-5 股票价格走势