echarts 怎样用js自定义图表数据

JavaScript015

echarts 怎样用js自定义图表数据,第1张

引入ECharts

echarts提供多种引入方式,请根据你的项目类型选择合适的方式:

模块化包引入

如果你熟悉模块化开发,你的项目本身就是模块化且遵循AMD规范的,那引入echarts将很简单,使用一个符合AMD规范的模块加载器,如esl.js,只需要配置好packages路径指向src即可,你将享受到图表的按需加载等最大的灵活性,由于echarts依赖底层zrender,你需要同时下载zrender到本地,可参考demo,你需要配置如下。

需要注意的是,包引入提供了开发阶段最大的灵活性,但并不适合直接上线,减少请求的文件数量是前端性能优化中最基本但很重要的规则,务必在上线时做文件的连接压缩。

//from echarts example

require.config({

packages: [

{

name: 'echarts',

location: '../../src',

main: 'echarts'

},

{

name: 'zrender',

location: '../../../zrender/src', // zrender与echarts在同一级目录

main: 'zrender'

}

]

})

模块化单文件引入(推荐)

如果你使用模块化开发但并没有自己的打包合并环境,或者说你不希望在你的项目里引入第三方库的源文件,我们建议你使用单文件引入,同模块化包引入一样,你需要熟悉模块化开发。

自2.1.8起,我们为echarts开发了专门的合并压缩工具echarts-optimizer。如你所发现的,build文件夹下已经包含了由echarts-optimizer生成的单文件:

dist(文件夹) : 经过合并、压缩的单文件

line.js : 折线图(如需折柱动态类型切换,require时还需要echarts/chart/bar)

bar.js : 柱形图(如需折柱动态类型切换,require时还需要echarts/chart/line)

scatter.js : 散点图

k.js : K线图

pie.js : 饼图(如需饼漏斗图动态类型切换,require时还需要echarts/chart/funnel)

radar.js : 雷达图

map.js : 地图

force.js : 力导向布局图(如需力导和弦动态类型切换,require时还需要echarts/chart/chord)

chord.js : 和弦图(如需力导和弦动态类型切换,require时还需要echarts/chart/force)

funnel.js : 漏斗图(如需饼漏斗图动态类型切换,require时还需要echarts/chart/pie)

gauge.js : 仪表盘

eventRiver.js : 事件河流图

treemap.js : 矩阵树图

venn.js : 韦恩图

echarts.js : 这是包含AMD加载器的echarts主文件,需要通过script最先引入

chart(文件夹) : echarts-optimizer通过依赖关系分析同时去除与echarts.js的重复模块后为echarts的每一个图表类型单独打包生成一个独立文件,根据应用需求可实现图表类型按需加载

source(文件夹) : 经过合并,但并没有压缩的单文件,内容同dist,可用于调试

采用单一文件使用例子见ECharts单一文件引入,存放在example/www下,首先你需要通过script标签引入echarts主文件

//from echarts example

<body>

   <div id="main" style="height:400px"></div>

   ...

   <script src="./js/echarts.js"></script>

</body>

在主文件引入后你将获得一个AMD环境,配置require.conifg如下:

//from echarts example

<body>

   <div id="main" style="height:400px"></div>

   ...

   <script src="./js/echarts.js"></script>

   <script type="text/javascript">

       require.config({

           paths: {

               echarts: './js/dist'

           }

       })

   </script>

</body>

require.config配置后就可以通过动态加载使用echarts

//from echarts example

<body>

   <div id="main" style="height:400px"></div>

   ...

   <script src="./js/echarts.js"></script>

   <script type="text/javascript">

       require.config({

           paths: {

               echarts: './js/dist'

           }

       })

       require(

           [

               'echarts',

               'echarts/chart/line',   // 按需加载所需图表,如需动态类型切换功能,别忘了同时加载相应图表

               'echarts/chart/bar'

           ],

           function (ec) {

               var myChart = ec.init(document.getElementById('main'))

               var option = {

                   ...

               }

               myChart.setOption(option)

           }

       )

   </script>

</body>

总结来说,模块化单文件引入ECharts,你需要如下4步:

为ECharts准备一个具备大小(宽高)的Dom(当然可以是动态生成的)

通过script标签引入echarts主文件

为模块加载器配置echarts的路径,从当前页面链接到echarts.js所在目录,见上述说明

动态加载echarts及所需图表然后在回调函数中开始使用(容我罗嗦一句,当你确保同一页面已经加载过echarts,再使用时直接require('echarts').init(dom)就行)

详见入门教程 ( Getting started ) »

标签式单文件引入

自1.3.5开始,ECharts提供标签式引入。如果你的项目本身并不是基于模块化开发的,或者是基于CMD规范(如使用的是seajs),那么引入基于AMD模块化的echarts可能并不方便,我们建议你采用srcipt标签式引入,忘掉require。Srcipt标签引入echarts后将可以直接使用两个全局的命名空间:echarts,zrender,可参考ECharts标签式引入,需要注意的是excanvas依赖body标签插入Canvas节点去判断Canvas的支持,如果你把引用echarts的script标签放置head内在IE8-的浏览器中会出现报错,解决的办法就是把标签移动到body内(后)。

标签式引入环境中,常用模块的引用可通过命名空间直取,同模块化下的路径结构,如:

echarts.config = require('echarts/config'), zrender.tool.color = require('zrender/tool/color')

//from echarts example

<body>

   <div id="main" style="height:400px"></div>

   ...

   <script src="example/www2/js/dist/echarts-all.js"></script>

   <script>

       var myChart = echarts.init(document.getElementById('main'))

       var option = {

           ...

       }

       myChart.setOption(option)

   </script>

</body>

图表控件可实现数据可视化,图形化显示当前工业领域、商业领域、金融领域等不可或缺的元素,通常采用图表进行数据可视化展示,直观地显示数据、对比数据、分析数据。图表控件就是具有这一能力的控件,很多项目开发中都会需求图表控件。

.NET开发平台

http://LightningChart.NET

LightningChart®.NET原名LightningChart Ultimate SDK。 LightningChart完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学,工程,医学,航空,贸易,能源和其他领域的体绘制功能。

Iocomp .NET WinForm

Iocomp .NET WinForm控件是一款100%由C#编写、充分利用GDI+的优点的工业仪表盘控件套装。是用于生成具有专业级外观的仪表的控件,其自定义的属性编辑器提供了“一行代码,全部搞定”的简单快捷的属性配置方法。Iocomp .NET WinForm控件包最多可提供了56种专业级控件以及绘图控件包组件。分为标准版(StdPack)、专业版(ProPack)、曲线版(PlotPack)、终极版(UltraPack)四个版本。

TeeChart for .NET

TeeChart for .NET是优秀的工业4.0 WinForm图表控件,官方独家授权汉化,集功能全面、性能稳定、价格实惠等优势于一体。TeeChart for .NET制图控件提供了一套出色的通用组件套件,可满足无数的制图要求,也针对重要的垂直领域,例如金融,科学和统计领域。制图控件提供了一套出色的通用组件套件,可满足无数的制图要求,也针对重要的垂直领域,例如金融,科学和统计领域。

MindFusion.Diagramming for WinForms

MindFusion.Diagramming for WinForms是一个能帮助你创建工作流和进程图表的.NET控件;数据库实体关系图表;组织图表;对象层次和关系图表;图表和树。它是基于对象-图表框,表格和箭头类型,将其归类分派给其他并结合成复杂的结构。该控件提供超过预先定义的50多种图表框,如自定义设计样式和对图表框着色等。

HTML5开发平台

FusionCharts XT

FusionCharts XT作为FusionCharts图表套包的主打产品,是50万用户首选的跨平台、跨浏览器的JavaScript/HTML图表解决方案,它提供了所有通用的图表类型,同时它还支持 ASP、 ASP.NET、 PHP、 JSP、 ColdFusion、 Ruby on Rails、 JavaScript、甚至简单的HTML页面。它是你值得信赖的JavaScript图表解决方案,目前在全球有50万用户选择Fusioncharts来制作专业的JavaScript图表。

AnyChart

AnyChart是基于JavaScript (HTML5) 的图表控件。使用AnyChart控件,可创建跨浏览器和跨平台的交互式图表和仪表。AnyChart 图表目前已被很多知名大公司所使用,可用于仪表盘、报表、数据分析、统计学、金融等领域。

AnyChar HTML5图表高度可定制且高度兼容。拥有纯JavaScript API,AnyChart图表内置客户端数据实时更新,多层次向下钻区和具体参数更新。强大的主题引擎使你通过一系列图表进行独特的演示体验,而PDF和图像输出能产出图书质量打印文档。

Highcharts

Highcharts是一款纯JavaScript编写的图表库,为你的Web网站、Web应用程序提供直观、交互式图表。当前支持折线、曲线、区域、区域曲线图、柱形图、条形图、饼图、散点图、角度测量图、区域排列图、区域曲线排列图、柱形排列图、极坐标图等几十种图表类型。

QT开发平台

QtitanChart

QtitanChart是一个C ++库,它代表一组控件,这些控件使您可以快速轻松地为应用程序提供漂亮而丰富的图表。QtitanChart在Qt.C ++上实现,并且支持所有主要的桌面操作系统 - Windows、Linux和Mac OSX。要将QtitanChart添加到您的程序中,只需要几行代码,便捷的体系结构允许您自定义文本的每个部分。

Highcharts

Highcharts是一款纯JavaScript编写的图表库,为你的Web网站、Web应用程序提供直观、交互式图表。当前支持折线、曲线、区域、区域曲线图、柱形图、条形图、饼图、散点图、角度测量图、区域排列图、区域曲线排列图、柱形排列图、极坐标图等几十种图表类型。

QT开发平台

QtitanChart

QtitanChart是一个C ++库,它代表一组控件,这些控件使您可以快速轻松地为应用程序提供漂亮而丰富的图表。QtitanChart在Qt.C ++上实现,并且支持所有主要的桌面操作系统 - Windows、Linux和Mac OSX。要将QtitanChart添加到您的程序中,只需要几行代码,便捷的体系结构允许您自定义文本的每个部分。

就是一些用Javascript写好的功能,可能是有界面的,也可能是没有界面的。

比较常见的比如一些网页上有日期选择的效果,一般都是用所谓的javascript控件实现的。