cover

市场深度图JS组件

汇智网 / hubwiz.com

基于HTML的Canvas实现的市场深度图JS组件,适合用于资产交易类Web应用的开发

1、市场深度图JS组件概述

DepthChart组件适用于资产交易中的市场深度数据表现,例如股票等:

DepthChart组件的特点如下:

  • 基于html的canvas实现:与基于SVG的实现相比,在大数据量场景中的性能更好
  • 不依赖第三方库:没有第三方依赖,非常容易嵌入其他库或框架,例如jquery、vue、react、angular等
  • 支持鼠标滚轮缩放:鼠标滚轮即可在水平方向缩放,便于观察数据细节
  • 支持光标焦点十字线:跟随光标焦点实时渲染十字线,便于聚焦数据细节
  • 支持自定义配色主题:可以根据应用需求自定义组件的配色主题,便于融入现有应用,同时也提供深/浅两色 的预置主题

DepthChart组件当前版本为1.0.0,主要文件清单如下:

代码文件说明
src/Dataset.js数据集模型实现类
src/Renderer.js渲染器实现类
src/Scale.js比例尺实现类
src/Theme.js主题实现类
src/DepthChart.js市场深度图实现类
src/index.js源代码入口文件
lib/uikit.umd.jsumd格式的库文件
rollup.config.jsrollup配置文件
.babelrcbabel配置文件
package.jsonnpm描述文件
test.html测试HTML文件

2、基本使用方法

STEP 1:引入脚本文件

在HTML文件中创建canvas,并引入uikit.umd.js文件:

<canvas id="#depth-chart" width="900" height="400"></canvas>
<script src="lib/uikit.umd.js"></script>

STEP 2:声明数据

DepthChart组件要求数据按预定格式组织,例如:

var dataset = {
  "bids":[
    ["0.00283330","95.18000000"],
    ["0.00283300","5.56000000"],
    ...
    ["0.00282410","3.74000000"],
    ["0.00282400","1.15000000"]
  ],
  "asks":[
    ["0.00283480","4.95000000"],
    ["0.00283490","5.19000000"],
    ...
    ["0.00284400","79.01000000"],
    ["0.00284410","15.53000000"]
  ]
}

其中bids表示买方市场深度数据,asks表示卖方市场深度数据,每一行的两个数据分别 表示价位及该价位的数量。容易理解,买方数据是按价格从高到底排列,而卖方数据则 是按价格从低到高排列。

STEP 3:创建DepthChart对象

使用uikit中的DepthChart类初始化深度图:

new uikit.DepthChart({
  el: '#depth-chart',                    //canvas元素选择符
  dataset: dataset                       //数据集,参见下面说明
})

实例化DepthChart类的时候,需要传入一个配置对象。el配置用来声明 深度图渲染的canvas元素(或者其选择符),dataset配置项用来声明要 进行处理的数据。

3、使用主题

在创建DepthChart时,可以使用theme配置项来应用一个预置的主题,或者一个自定义的主题。

预置的深色主题

例如使用预置的dark主题:

new uikit.DepthChart({
  el: '#depth-chart',
  dataset: dataset,
  theme: uikit.Theme.dark()
})

结果如下:

预置的浅色主题

或者使用预置的light主题:

new uikit.DepthChart({
  el: '#depth-chart',
  dataset: dataset,
  theme: uikit.Theme.light()
})

自定义主题

可以参考src/Theme.js中的dark或light主题,根据自己的需要进行自定义。 可以配置的主要选项列举如下:

配置项说明
background背景样式
bidsLineStyle买方深度线样式
asksLineStyle卖方深度线样式
bidsRegionsStyle买方深度区域样式
asksRegionStyle卖方深度区域样式
xgridStyle水平栅格样式
ygridStyle垂直栅格样式
xtickStyle水平坐标轴刻度样式
ytickStyle垂直坐标轴刻度样式
xtickTextStyle水平坐标轴刻度文本样式
ytickTextStyle垂直坐标轴刻度文本样式
focusCircleStyle鼠标焦点样式
focusLineStyle鼠标焦点十字线样式
focusTextStyle鼠标焦点文本样式
indicatorLineStyle价差指示器线条样式
indicatorTextStyle价差指示器文本样式

4、使用源代码

如果自定义主题还不能满足应用需求,那么可以直接修改源代码。

DepthChart组件的源代码位于src目录下,其主要类以及相互关系如下图所示:

修改完成后,需要重新构建UMD库文件:

~/uikit$ npm install -g rollup
~/uikit$ npm run build

上面的命令首先全局安装rollup,然后执行构建任务。

声 明

本站所提供软件包仅用于学习和研究,请依法合规使用。

本站所提供软件包均提供完整源码,使用前请认真阅读源代码和文档以确保充分理解软件包的设计与功能实现,本站不承担 因不当使用本站所提供软件包而造成的任何法律风险或财产损失责任。

¥1500.00
查看授权信息
  • 付费成功自动开通下载
  • 三个月内代码免费升级
  • 专业人员在线技术支持
  • 支持按需定制(另付费)
下载代码包
版本发布日期地址
1.0.0 2019-8-1
下载最新版
QQ咨询
2860991437
9+