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 股票價格走勢