***ECharts图表入门和最佳实践

ECharts数据图表系统? 5分钟上手!

【ECharts简介】

ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。

支持折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)、雷达图(填充雷达图)、和弦图、力导向布局图、地图、仪 表盘、漏斗图、事件河流图等12类图表,同时提供标题,详情气泡、图例、值域、数据区域、时间轴、工具箱等7个可交互组件,支持多图表、组件的联动和混搭 展现。

好了,咱们重点不是介绍哈,后面我会详细讲解这个报表系统的使用,这里就不做过多的描述了,下面开始进入正题:“5分钟上手写ECharts的第一个图表”。

【方法一:模块化单文件引入(推荐)】

1. 新建一个echarts.html文件,为ECharts准备一个具备大小(宽高)的Dom:

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head><body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div>
</body>

 

2. 新建<script>标签引入模块化单文件echarts.js:

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts单文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
</body>

 

 

3. 新建<script>标签中为模块加载器配置echarts和所需图表的路径(相对路径为从当前页面链接到echarts.js):

 

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts单文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts.js"></script><script type="text/javascript">// 路径配置require.config({paths: {echarts: 'http://echarts.baidu.com/build/dist'
            }});</script>
</body>

 

4. <script>标签内动态加载echarts和所需图表,回调函数中可以初始化图表并驱动图表的生成:

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts单文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts.js"></script><script type="text/javascript">// 路径配置require.config({paths: {echarts: 'http://echarts.baidu.com/build/dist'
            }});// 使用require(['echarts','echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载],function (ec) {// 基于准备好的dom,初始化echarts图表var myChart = ec.init(document.getElementById('main')); var option = {tooltip: {show: true},legend: {data:['销量']},xAxis : [{type : 'category',data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]}],yAxis : [{type : 'value'}],series : [{"name":"销量","type":"bar","data":[5, 20, 40, 10, 10, 20]}]};// 为echarts对象加载数据 myChart.setOption(option); });</script>
</body>

 

5. 浏览器中打开ecarts.html,就可以看到以下效果:

【方法二:标签式单文件引入】

1. 新建一个echarts.html文件,为ECharts准备一个具备大小(宽高)的Dom。

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影Blog</title>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div>
</body>

 

2. 新建<script>标签引入echart-all.js。

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts单文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script>
</body>

 

3. 新建<script>,使用全局变量echarts初始化图表并驱动图表的生成。

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts单文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script><script type="text/javascript">// 基于准备好的dom,初始化echarts图表var myChart = echarts.init(document.getElementById('main')); var option = {tooltip: {show: true},legend: {data:['销量']},xAxis : [{type : 'category',data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]}],yAxis : [{type : 'value'}],series : [{"name":"销量","type":"bar","data":[5, 20, 40, 10, 10, 20]}]};// 为echarts对象加载数据 myChart.setOption(option); </script>
</body>

 

4. 浏览器中打开echarts.html,可以看到如下效果:

via: http://www.cnblogs.com/LonelyShadow/p/4175071.html

 


ECharts简介

http://www.phperz.com/article/14/1017/29557.html

ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。

Echarts 首页:http://echarts.baidu.com/index.html

特性:http://echarts.baidu.com/doc/feature.html

ECharts 底层依赖于 Html5 的轻量级的Canvas类库ZRender ,这也是它的效果这么绚丽的原因。它与 js charts类似,不依赖其他 js 类库,相比之下 Highcharts还要依赖JQuery等类库。不过,ECharts也不是什么缺点都没有的,在线演示平台、文档,

初学者可能会被ECharts那个带你入门的那2个示例弄晕,这里来一个个解释:

1、AMD规范的加载器——esl.js,这是什么?

简单来说,AMD规范就是异步方式加载模块的一种方式,避免因为模块加载过慢而导致浏览器“假死”。

2、我们先来看一下echart的大概的包: 

  • echarts.js : 经过压缩,包含除地图外的全部图表
  • echarts-original.js : 未压缩,可用于调试,包含除地图外的全部图表
  • echarts-map.js : 经过压缩,全图表,包含world,china以及34个省市级地图数据
  • echarts-original-map.js : 未压缩,可用于调试,全图表,包含world,china以及34个省市级地图数据

看得出,这种分类非常有意义。

3、echarts更规范的一点,那就是模块化加载,需要哪个部分就是用哪个部分。

关于Echarts的那个入门图表,我想很多新手跟我一样的迷惑,require和require.config这个两个公共方法到底什么来的?

答:AMD规范的加载器——esl.js的公共方法。(如有错误,请指正。)

4、require.config的作用是什么?

答:为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需的图表路径。一切尽在echarts-2.0.4文件夹下的src文件夹中。

5、解释一下require方法?

答:require方法有2个参数。

第一个参数为一个数组,数组元素是需要加载的echarts模块,需要哪个就加载哪个。(经本人测试,这个数组传入一个空数组都是可以的 !- -)莫非,传入不正确,会加载全部文件到内存,传入正确就加载部分模块到内存?求大神解答!

第二个参数为一个带一个参数的方法:function (ec){}, 这个ec对象就是echarts对象了。

OK,基本解释完了。可能初学者看了Eharts入门实例还是不太理解那Echarts3种导入方式的用法。(入门示例只有2种——标签式单文件引入和模块化单文件引入)

因为入门实例里,js文件指向的是百度服务器上的资源,而我们一般开发,js资源都是放在本地的。

6、来看一下,本地创建3种Echarts导入的例子,下面是那3个示例文件的源码(官网Demo粗略修改而成):

(1)、标签式单文件引入.html

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts</title>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts单文件引入 --><script src="js/echarts.js"></script><script type="text/javascript">// 基于准备好的dom,初始化echarts图表var myChart = echarts.init(document.getElementById('main')); var option = {tooltip: {show: true},legend: {data:['销量']},xAxis : [{type : 'category',data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]}],yAxis : [{type : 'value'}],series : [{"name":"销量","type":"bar","data":[5, 20, 40, 10, 10, 20]}]};// 为echarts对象加载数据 myChart.setOption(option); </script>
</body>

(2)、模块化包引入.html,这个就需要用到2个src文件。

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts</title><!--从当前页面,引入模块加载器esl.js--><script src="js/esl.js"></script>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div><script type="text/javascript">// 为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需的图表路径require.config({packages: [{name: 'echarts',location: 'js/src',      main: 'echarts'},{name: 'zrender',location: 'js/zrender/src', main: 'zrender'}]});// 使用require([],function (ec) {// 基于准备好的dom,初始化echarts图表var myChart = ec.init(document.getElementById('main')); var option = {tooltip: {show: true},legend: {data:['销量']},xAxis : [{type : 'category',data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]}],yAxis : [{type : 'value'}],series : [{"name":"销量","type":"bar","data":[5, 20, 40, 10, 10, 20]}]};// 为echarts对象加载数据 myChart.setOption(option); });</script>
</body>

(3)、模块化单文件引入.html

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts</title><!--从当前页面,引入模块加载器esl.js--><script src="js/esl.js"></script>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="height:400px"></div><script type="text/javascript">// 为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需的图表路径require.config({paths:{ 'echarts' : './js/echarts','echarts/chart/bar' : './js/echarts'}});// 使用require(['echarts','echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载],function (ec) {// 基于准备好的dom,初始化echarts图表var myChart = ec.init(document.getElementById('main')); var option = {tooltip: {show: true},legend: {data:['销量']},xAxis : [{type : 'category',data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]}],yAxis : [{type : 'value'}],series : [{"name":"销量","type":"bar","data":[5, 20, 40, 10, 10, 20]}]};// 为echarts对象加载数据 myChart.setOption(option); });</script>
</body>

2、如果上面的还有不明白的,参考一下我的本地目录:

js中有如下的文件:

其中,src是echarts-2.0.4文件夹下的src文件夹,zrender里面也有一个src文件夹,是zrender-2.0.4文件夹下面的src文件夹。

 

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【经典回放】多种语言系列数据结构线性表之一:顺序表

一、实验任务描述 建立线性表的ADT后,编程完成: 1 用C语言完成一个顺序表结构; 2 为顺序表完成追加、删除、插入、查找的功能; 3 建立一个链表的结点; 4 完成链表的追加、删除、插入功能; 5* 用C#完成一个结点的类; 6* C#完成链表的追加、删除、插入功能的类; 7* C#编写…

原型继承+原型链 + 对象继承发展

一、原型继承&#xff1a; &#xff11;、说起原型继承&#xff0c;就要先由构造函数创造对象说起&#xff0c;首先了解构造函数内部基本原理&#xff1a; &#xff08;&#xff11;&#xff09;.在函数体最前面隐式的加上this {} &#xff08;&#xff12;&#xff09;.执行 …

Kotlin之?和!!最简单的理解

一、? 1&#xff09;、?在声明对象时&#xff0c;把它跟在类名后面&#xff0c;表示这个类允许为null var list: ArrayList<String>? null 2&#xff09;、调用对象时&#xff0c;把它跟在对象后面&#xff0c;表示如果为null程序就会视而不见&#xff0c;比如我们…

WPF|一个比较简单带点设计的登录界面

阅读目录效果展示准备简单说明 源码结尾&#xff08;视频及源码仓库&#xff09;1. 效果展示欣赏效果&#xff1a;2. 准备创建一个WPF工程&#xff0c;比如站长使用 .NET 7[1] 创建名为 Login5 的WPF项目。找一张图片做为装饰&#xff0c;放登录表单左侧&#xff1a;添加Nuget…

Android插件基础之类加载器学习

记录学习java 加载器学习所获心得&#xff0c;逐步记录了解java加载器的过程。为了知悉android 插件化的实现原理&#xff0c;从而需要从头了解android加载apk&#xff0c;以及基础的java类加载的加载过程情况&#xff0c;为方便记录和记忆&#xff0c;故此将学习了解的过程记录…

php多个文件上传代码,PHP单文件上传类或多文件上传类源码

以下为引用的内容&#xff1a;php文件:代码://如果收到表单传来的参数&#xff0c;则进行上传处理&#xff0c;否则显示表单if(isset($_FILES[uploadinput])){//建目录函数&#xff0c;其中参数$directoryName最后没有"/"&#xff0c;//要是有的话&#xff0c;以/打散…

《看聊天记录都学不会C语言?太菜了吧》(13)(9*9 乘法表)寻找电脑中的盲盒彩蛋

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖…

Fragment使用--文章集锦

android使用Fragment实现底部菜单使用show()和hide()来切换以保持Fragment状态Android Fragment 真正的完全解析&#xff08;上&#xff09;Android Fragment实践(一)纠正对Fragment Transaction BackStack的误解多个Fragment 切换时不重新实例化Fragment详解之四——管理Fragm…

Android之在在EditText的xml里面配置了相关属性依然没有显示光标问题

1 问题 在EditText的xml里面配置了 android:cursorVisible"true" android:focusable"true" android:focusableInTouchMode"true" 依然没有光标显示 2 解决办法 直接在代码层控制&#xff0c;平且拉起键盘 fun showSoftInputFromWindow(activ…

【经典回放】多种语言系列数据结构线性表之二:链表

目录 1 链表结构设计 2 简单的链表测试 2 链表的组织和ADT设计 3 初始化有头结点链表 4 有头结点链表中追加一个结点(一行数据)

使用 Postman 实现 API 自动化测试

1背景介绍 相信大部分开发人员和测试人员对 postman 都十分熟悉&#xff0c;对于开发人员和测试人员而言&#xff0c;使用 postman 来编写和保存测试用例会是一种比较方便和熟悉的方式。但 postman 本身是一个图形化软件&#xff0c;相对较难或较麻烦&#xff08;如使用 …

php json -gt;访问,【转】Php+ajax+jsonp解决ajax跨域问题

首先&#xff1a;jsonp是json用来跨域的一个东西。原理是通过script标签的跨域特性来绕过同源策略。发送端&#xff1a;$.ajax({type : "post",url : "ajax.php",dataType : "jsonp",jsonp: "callback",//传递给请求处理程序或页面的&…

《看聊天记录都学不会Python到游戏实战?太菜了吧》(1)加载Python神器!亮剑!

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

little tricks(持续更新)【python】

python中的list有reverse方法&#xff0c;但是字符串却没有&#xff0c;怎么办呢&#xff1f; csdn博主有列了几个方法&#xff0c;我觉得第一个最简单直接&#xff0c;str[::-1]搞定。 当然也有一种怪异的方法&#xff0c;我把字符串转为序列reverse一下&#xff0c;再转回来不…

Codeigniter 3 拓展HMVC

2019独角兽企业重金招聘Python工程师标准>>> 在Codeiniter&#xff08;以下统称CI&#xff09; 2.X版本中&#xff0c;我们就通过拓展核心类库实现了HMVC&#xff0c;但是同样的代码&#xff0c;拿到CI 3中&#xff0c;就很有可能不好用了。 ###拓展核心类库方式 官…

FPGA FIFO深度计算

转自&#xff1a;http://comm.chinaaet.com/adi/blogdetail/37555.html 首先&#xff0c;一定要理解清楚FIFO的应用场景&#xff0c;这个会直接关系到FIFO深度的计算&#xff0c;如果是面试官抛出的问题&#xff0c;那么有不清楚的地方&#xff0c;就应该进行询问。如果是笔试或…

玩转ASP.NET Core 6.0框架-序言

ASP.NET Core是微软提供的强大的web框架&#xff0c;它有很多潜在的强大而有用的功能。本专栏的目标是帮助您把框架的隐藏能力最大限度地发挥出来&#xff0c;让您能够按需定制ASP NET Core框架。本专栏提供了一种具体的操作和实现方法&#xff0c;可以让你在短时间尽可能地提高…

从C#开始的面向对象编程经典自学教程

1、C语言的时代 在C语言时代,可以认为那时的编程过程就是表格加工过程,也就是从A表格到B表格、再到C表格…..等等,这个过程中,计算机语言如何描述一个表格,成为计算机语言的关键。 对一个表格的分析可以发现:表格是两部分组成:表头和表格: 学生表 STUDENT 在这个表格…

Java之对List里面的对象名字进行模糊查询

1 问题 对list里面的对象名字进行模糊查询 2 解决办法 //即可以进行模糊匹配matcher.find()//匹配查询matcher.matches() /*** 模糊查询*/public static ArrayList<SearchBean> search(String name, List<SearchBean> list) {ArrayList<SearchBean> results…

《看聊天记录都学不会Python到游戏实战?太菜了吧》(2)在python中加号竟然如此善变

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…