ECharts.js学习(二)动态数据绑定

Echarts 数据绑定

简单的统计表已经可以生成,不过之前图标数据都是直接写在参数里面的,而实际使用中,我们的数据一般都是异步读取的。EChart.js对于数据异步读取这块提供了异步加载的方法。

绑定多组数据

很多时候需要展示的数据不单单是一组数据,很多时候会进行一个数据对比。这个时候只需要在series中增加一组数据,legend中添加一下这个数据组的name

复制代码
<!DOCTYPE html>
<html>
<head><title>ECharts.js 数据绑定</title><meta charset="utf-8"><script type="text/javascript" src="js/echarts.js"></script>
</head>
<body><div id="chartmain" style="width:600px; height: 400px;"></div><script type="text/javascript">//指定图标的配置和数据var option = {title:{text:'ECharts 数据统计'},legend:{data:['访问量','用户量']},xAxis:{data:["Android","IOS","PC","Other"]},yAxis:{},series:[{name:'访问量',type:'bar',data:[180,420,333,83]},{name:'用户量',type:'bar',data:[125,330,230,60]}]};//初始化echarts实例var myChart = echarts.init(document.getElementById('chartmain'));//使用制定的配置项和数据显示图表myChart.setOption(option);</script>
</body>
</html>
复制代码

效果展示

数据异步加载

EChart中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行。

绑定数据的方式有两种,一种是写写好一些图表参数,然后数据留空,然后在异步读取数据的时候,绑定数据。还有一种就是直接异步读取数据的时候同时设置图表参数和数据绑定。

首先我们准备一份需要加载的数据文件data.json,数据内容:

{"name":["Android","IOS","PC","Other"],"data":[420,200,360,100]}

第一种异步加载的时候设置图表参数和绑定数据

复制代码
    <script type="text/javascript">        //初始化echarts实例var myChart = echarts.init(document.getElementById('chartmain'));        //异步加载的配置项和数据显示图表$.get('data.json').done(function (data) {data = eval('('+data+')');            myChart.setOption({title:{text:'ECharts 异步加载数据'},tooltip:{},legend:{data:['访问量']},xAxis:{data:data.name},yAxis:{},series:[{name:'访问量',type:'bar',data:data.data}]})})</script>
复制代码

第二种先设置图表参数,后绑定数据

复制代码
<script type="text/javascript">        //初始化echarts实例var myChart = echarts.init(document.getElementById('chartmain'));        //设置图标配置项myChart.setOption({title:{text:'ECharts 异步加载数据'},tooltip:{},legend:{data:['访问量']},xAxis:{data:[]},yAxis:{},series:[{name:'访问量',type:'bar',data:[]}]})//异步加载数据$.get('data.json').done(function (data) {data = eval('('+data+')');            myChart.setOption({                xAxis:{data:data.name},                series:[{    //根据名字对应到相应的系列name:"访问量",data:data.data}]})})</script>
复制代码

效果展示

 因为是异步加载,所以有时候数据加载会慢,或者延迟。在数据没有加载前,图表这样的。面对这样的图表,肯定会觉得这是没有数据吗,还是图表有问题.对于这块ECharts增加了一个加载动画。

Loading动画加载

复制代码
        //打开loading动画myChart.showLoading();//加载数据函数function bindData(){//为了效果明显,我们做了延迟读取数据setTimeout(function(){                //异步加载数据$.get('data.json').done(function (data) {                    //获取数据后,隐藏loading动画myChart.hideLoading();data = eval('('+data+')');            myChart.setOption({xAxis:{data:data.name},series:[{//根据名字对应到相应的系列name:"访问量",data:data.data}]})})},2000)}bindData();        
复制代码

效果展示

数据动态实时更新

复制代码
<script type="text/javascript">        //初始化echarts实例var myChart = echarts.init(document.getElementById('chartmain'));var base = + new Date(2017,3,8);var oneDay = 24*3600*1000;var date = [];var data = [Math.random()*150];var now = new Date(base);var day = 30;function addData(shift){now = [now.getFullYear(),now.getMonth()+1,now.getDate()].join('/');        date.push(now);        data.push((Math.random()-0.5)*10+data[data.length-1]);if (shift) {console.log(data);date.shift();data.shift();}now = new Date(+new Date(now)+oneDay);        }for (var i = 0; i < day; i++) {addData();}//设置图标配置项myChart.setOption({title:{text:'ECharts 30天内数据实时更新'},xAxis:{type:"category",boundaryGap:false,data:date},yAxis:{boundaryGap:[0,'100%'],type:'value'},series:[{name:'成交',type:'line',smooth:true, //数据光滑过度symbol:'none', //下一个数据点stack:'a',areaStyle:{normal:{color:'red'}},data:data}]})setInterval(function(){addData(true);myChart.setOption({xAxis:{data:date},series:[{name:'成交',data:data}]});},1000)
</script>
复制代码

效果展示

 

来源:http://www.cnblogs.com/leoxuan/p/6513591.html#top

转载于:https://www.cnblogs.com/ourLifes/p/8017481.html

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

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

相关文章

黑苹果2k屏_一加手机屏幕新特性:120Hz、2K+ OLED、10bit

在发布了旗下的首款概念手机Concept One后&#xff0c;再次有消息显示一加将在1月13日也就是今天举办“屏幕技术沟通会”。而在发布会正式到来前&#xff0c;一加CEO刘作虎则在微博表示&#xff0c;一加已经完成了120Hz屏幕的研发。沟通会上还会聊一聊一加90Hz 流体屏引领行业后…

popupmenu java_Java基于JPopupMenu实现系统托盘的弹出菜单,解决PopupMenu弹出菜单中文乱码...

本人萌新&#xff0c;利用业余时间学习Java。最近在写一个GUI程序的时候遇到一个问题&#xff0c;系统托盘创建弹出菜单中文乱码&#xff0c;网上搜索很多内容都没有找到解决方案&#xff0c;现将个人解决方案分享给大家&#xff0c;希望有所帮助一、PopupMenu存在的问题标准文…

QT获取主机名称

//获取主机名 QString localHost QHostInfo::localHostName(); 转载于:https://www.cnblogs.com/amwuau/p/8021758.html

Java哈利波特死亡圣器下_如果编程语言是《哈利波特》中的人物

如果编程语言是《哈利波特》中的人物&#xff0c;本文是作者的一些观点&#xff0c;如果你有不同的看法&#xff0c;欢迎在留言中告诉我们。C语言每个人都在说&#xff0c;C语言已经死了至少十年以上了。人们对它嗤之以鼻。当然它也曾不可一世&#xff0c;肆虐横行&#xff0c;…

序列每天从0开始_【算法打卡】分割数组为连续子序列

难度&#xff1a;中等题目&#xff1a;给你一个按升序排序的整数数组 num(可能包含重复数字)&#xff0c;请你将它们分割成一个或多个长度为 3 的子序列&#xff0c;其中每个子序列都由连续整数组成。如果可以完成上述分割&#xff0c;则返回 true &#xff1b;否则&#xff0c…

linux中 /dev/null命令

/dev/null &#xff1a;代表空设备文件 > &#xff1a;代表重定向到哪里&#xff0c;例如&#xff1a;echo "123" > /home/123.txt1 &#xff1a;表示stdout标准输出&#xff0c;系统默认值是1&#xff0c;所以">/dev/null"等同于"1>/d…

php会员系统源码_b2b2c商城系统会员预存款架构及源码分享

业务需求可以为预存款充值&#xff0c;在支付订单时使用预存款支付功能当预存款余额>商品订单总金额时&#xff0c;完全抵扣商品订单金额&#xff1b;当预存款余额架构一、 充值二、 数据结构1、会员钱包表(es_member_wallet)2、 后期可能会将会员积分等关于消费抵扣相关信息…

mongodb 去重查询 Java,mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句...

另外附上mongodb eclipse插件地址&#xff1a; http://www.jumperz.net/update/ import java.net.UnknownHostException;import com.mongodb.DB;import com.mongodb.DBCol1.首先操作mongodb最基本命令&#xff1a;:show databases; ---------------------显示全部数…

HTML5 规范

在学习编程的时候&#xff0c;每次看到那些整齐规范的代码&#xff0c;心里顿时对这个程序员表示点点好感&#xff0c;有时&#xff0c;比如看到自己和朋友写的代码时&#xff0c;那阅读起来就是苦不堪言&#xff0c;所以&#xff0c;一些基本的开发规范是必须的&#xff0c;是…

python提交事务_事务提交和回滚

操作方法begin; -开始事物commit; - 提交事物 Python 默认是取消自动提交的rollback; - 回撤操作, 只要操作没有执行 commit 就可以进行回滚操作, 撤回create table tb_account(accid char(4) not null,uname varchar(20) not null,balance float default 0)insert into tb_ac…

求数组的最大值php,求PHP数组最大值,最小值的代码

求PHP数组最大值,最小值的代码&#xff0c;需要的朋友可以参考下。代码如下:$fruits array("155::vbscript::http://www.jb51.net/list/list_114_1.htm", "1::javascript::http://www.jb51.net/list/list_3_1.htm", "2::正则表达式::http://www.jb51…

JWT.NET的使用

JWT.NET的使用 原文:JWT.NET的使用JWT是什么 JWT全称是Json Web Token&#xff0c;是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准&#xff08; RFC 7519 &#xff09;&#xff0c;定义了一种简洁的&#xff0c;自包含的方法用于通信…

正在搜索需要的文件_【数澜发布-澜寻】智能内容搜索引擎,释放“机器阅读” 潜力...

4月23日&#xff0c;又是一年世界读书日。知识传播的重要性在这一天被无数次提起&#xff0c;记录、阅读成为我们 “理解”这个世界的加速通道&#xff0c;但在科技力量迅猛发展的当下&#xff0c;阅读这件事早已不再局限于人类。人工智能应用到社会中很重要的一步就是模仿人类…

学习笔记(十一)——数据库的索引碎片、计划缓存、统计信息

1.索引碎片 数据库存储本身是无序的&#xff0c;建立了聚集索引&#xff0c;会按照聚集索引物理顺序存入硬盘。既键值的逻辑顺序决定了表中相应行的物理顺序 而且在大多数的情况下&#xff0c;数据库写入频率远低于读取频率&#xff0c;索引的存在为了读取速度牺牲写入速度&…

网络软文发布软件_星浪中合网软文写出爆款汽车营销软文的特点是什么?

在移动互联网快速发展的时代&#xff0c;人们都是使用移动设备来获取外界信息。过去&#xff0c;许多广告汽车公司都专注于线下广告&#xff0c;但是现在他们已经将广告费用投入了移动互联网市场。移动互联网营销方法很多&#xff0c;例如&#xff0c;软文营销是一种非常强大的…

通达oa wbupload.php,关于通达OA上传附件类型限制的设置

关于上传附件类型限制的设置有些用户在使用OA系统的过程中&#xff0c;要求只允许上传比如后缀名为doc&#xff0c;xls&#xff0c;ppt等的附件文件。如何设置才能实现这一点呢&#xff1f;下面简单介绍下设置方法。1、在该路径MYOA\webroot\inc下找到配置文件oa_config.php文件…

JAVA 代码交互率低的原因分析,深入剖析Java编程中的中文问题及建议最优解决方法...

说明&#xff1a;本文为作者原创&#xff0c;作者联系地址为&#xff1a;josserchaiyahoo.com。由于Java编程中的中文问题是一个老生常谈的问题&#xff0c;在阅读了许多关于Java中文问题解决方法之后&#xff0c;结合作者的编程实践&#xff0c;我发现过去谈的许多方法都不能清…

ADC应用

数模转换&#xff08;ADC&#xff09;的应用笔记 智能时代&#xff0c;数字信号已体现在我们生活的方方面面&#xff0c;A/D,D/A是重要的基础。智能手机触摸信号需要转换为数字信号才能分辨触摸位置、数字去抖&#xff1b;打电话或者麦克风需要将模拟声信号转换为数字信号以便存…

springboot 禁用tomcat_Spring Boot 面试的十个问题

点击左上角蓝字&#xff0c;关注“SpringForAll社区”专注分享Spring周边技术内容用下面这些常见的面试问题为下一次 Spring Boot 面试做准备。在本文中&#xff0c;我们将讨论 Spring boot 中最常见的10个面试问题。现在&#xff0c;在就业市场上&#xff0c;这些问题有点棘手…

java oracle数据库连接代码,java连接oracle数据库代码实例(注释详解)

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class GetOracleConnection{/** Oracle数据库连接URL*/private final static String DB_URL "jdbc:oracle:thin:1…