繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

聚宽数据与pyecharts结合,展现完美K线图

作者/dfdcdvdsa 2019-09-22 20:00 0 来源: FX168财经网人物频道

展现数据最好的方式,就是使用图表了,之前我使用最多的是matplotlib进行绘图,虽然非常的方便,但是无法进行交互,细节呈现并不是特别的完美,直到后期才发现了echart工具,使用echart来进行绘图简直完美。将数据从聚宽上拉取下来,使用pyecharts绘图,可使用鼠标进行拖拽与放大。pyecharts版本更新后api差别较大,本例是使用最新版pyecharts进行绘图,使用python必须是3.6以上才能支持。显示效果如下:
Img

放大后效果:
Img

代码如下:

import jqdatasdk as jq

import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts import options as opts
from pyecharts.charts import Kline
from pyecharts.charts import Bar
from pyecharts.charts import Line
from pyecharts.globals import ThemeType

from example.commons import Faker

class StockDrawIndex(object):
    def __init__(self):
        self.default_save_name = "./cache/cache.html"

    def _kline_splitarea(self, name, data, date):
        c = (
            Kline(init_opts=opts.InitOpts(width="1980px", height="720px"))
            .add_xaxis(date)
            .add_yaxis(
                "kline", 
                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)
                    ),
                ),
                title_opts=opts.TitleOpts(title=name),
                datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
            )
        )
        return c

    def draw_kline(self, code="000001.XSHE", start_date='2005-01-01', stop_date=datetime.datetime.now().strftime("%Y-%m-%d")):
        '''
            输入参数:股票代码,绘制K线起始日期与结束日期,并标注最高点,可用滚轮调节区域
        '''
        df = jq.get_price(code)
        df = df[(df.index >= start_date) &amp; (df.index <  = stop_date)]
        global_stocks_df = self.sd.get_all_securities()

        data = list()
        date = list()
        for i in range(len(df)):
            _x = [df['open'][i], df['close'][i], df['low'][i], df['high'][i]]
            data.append(_x)
            date.append(str(df.index[i]).split(' ')[0])

        name = code   "   "   global_stocks_df.loc[code, "display_name"]   " "   global_stocks_df.loc[code, "name"]

        return self._kline_splitarea(name, data, date)


    def run(self):
        self.draw_kline('000905.XSHG', start_date="2005-1-01").render(self.default_save_name)


StockDrawIndex().run()
分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 金算盘

    人气2688文章7761粉丝124

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 李冉晴

    人气2296文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 指导老师

    人气1856文章4423粉丝52

    暂无个人简介信息

  • 梁孟梵

    人气2152文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 刘钥钥1

    人气2016文章3119粉丝34

    专业从事现货黄金、现货白银模似实盘操作分析指导

  • 张亦巧

    人气2144文章4145粉丝45

    暂无个人简介信息

  • 金帝财神

    人气4720文章8329粉丝118

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...

  • 金泰铬J

    人气2320文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...