当前位置: 首页 > Web前端 > HTML5

一个基于canvas的高性能、跨平台的股票图表库--clchart

时间:2023-04-06 00:26:07 HTML5

什么是ClChart?ClChart是一个基于canvas的简单、高性能、跨平台的股票数据可视化开源项目。支持PC、webApp、ReactNative、Weex等平台。完全适配ReactNative和Weex上的开源项目GCanvas,您可以轻松使用GCanvas让您开发的应用在android和ios上拥有原生的绘图能力。为什么需要ClChart在现有的开源库中,有很多非常优秀的开源图表库。通用的图表库有chartjs、echart、highchart等,这些图表库的图表类型非常齐全,绘图能力和??速度也很强大,但是由于这些项目需要通用,我们在绘制证券时扩展难度相对较大交易图表。股票等证券的具体图表库包括techanjs和highcharts/highstock等项目。这些图表库对股票绘图做了一些非常专业的处理和优化,但是都是基于svg来绘图的。我们在绘制大量数据图表和处理跨平台的时候都会有性能问题。下面是在使用过程中,各种图库在图类股中的K线图对比。以下比较是使用这些图表库进行的。证券类K线图绘制能力对比,数据主观经验判断图表jsecharttechanjshighchartclchart绘制元素canvascanvas&svgsvgsvgcanvas好用☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆绘图速度☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆因此,我们迫切需要一个高性能、跨平台、易于使用的股票类型图标库。在现有的ReactNative图标库中,可以通过webview加载html文件,可以使用window.document.addEventListener('message',function(e){})和window.postMessage完成html与ReactNatve的通信和draw,但是在实际使用过程中,在一些性能较差的android设备上,尤其是android版本低于4.4的android系统,在绘制大型数据图表和用户交互时性能特别差,经常卡顿,还有可能是加载慢等问题。ClChart的设计目标是利用canvas开发一个高效、跨平台的专业股票图表库。兼容GCanvas提供的canvas接口,在ReactNative和Weex上实现原生绘图,可用于股市的多种公式系统。插件形式横向扩展,针对有特殊需求的用户,可以提供自定义插件和数据结构的能力。ClChart开发与实现搭建开发环境[x]使用eslint实现代码规范[x]使用webpack实现代码打包[x]编写示例demo[]使用karma和mocha编写代码测试(进行中...)Double-layercanvas,主副层分离,高效绘图在研究tradingview的绘图程序时,我们发现为了实现十字光标等辅助线的快速重绘,采用双层canvas分离绘图来自主层的十字光标(iso辅助线)。大大减少快速移动十字光标带来的冗余绘图计算。在低版本的Android移动设备和Web应用程序上实现流畅的用户体验。可扩展数据层ClChart实现了一个独立的数据层,可以对数据进行预处理,缓存功能,通过字段FIELD定义和读取数据。用户方便自定义数据字段,快速与现有数据整合。自定义公式系统ClChart支持自定义公式系统,开发者和用户可以在使用过程中自定义公式进行绘图。插件ClChart支持自定义绘图插件,现在插件有数据标签类型。预览各平台的ClChart项目地址、文档和测试用例。