博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
echarts动态添加数据
阅读量:6445 次
发布时间:2019-06-23

本文共 4303 字,大约阅读时间需要 14 分钟。

数据异步加载

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

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

准备要加载的数据文件data.json假数据实际项目中数据是由后台传递过来的,数据内容:

{	"name":["iso","english","china","ufo","seo"],	"data":[400,200,300,100,11]}

  

 

第一种异步加载的时候设置图表参数和绑定数据,JavaScript中的代码如下:

var container = document.getElementById('container');		// 初始化echarts对象		var myContainer = echarts.init(container);$.get('echarts.json', function(data) {//与服务器连接成功			console.log(data);//获取到的json数据是个对象			myContainer.setOption(option = {				title:{                    text:'ECharts 异步加载数据'                },                tooltip:{},                legend:{                    data:['访问量']                },                 xAxis:{                    data:data.name                },                yAxis:{},                series:[                	{                		name:'访问量',                		type:'line',                		data:data.data                	}                ]			});		});

  

运行结果为

 

第二种先设置图表参数,后绑定数据。  JavaScript中的代码如下:

// 初始化echarts对象var myContainer = echarts.init(document.getElementById('container')); myContainer.setOption(option = {			title:{				text:'echarts异步加载数据'			},			tooltip:{},			legend:{},			xAxis:{				data:[]			},			yAxis:{},			series:[				{					name:'访问量',					type:'bar',					data:[]				}			]		});		$.get('echarts.json',function(res){			// console.log(res);			myContainer.setOption({				xAxis:{					data:res.name				},				series:[{						data:res.data					}				]			});		});

  

运行结果为:

 

Loading动画加载

//打开loading动画        myContainer.showLoading();        //加载数据函数        function bindData(){            //为了效果明显,我们做了延迟读取数据            setTimeout(function(){                                //异步加载数据               $.get('echarts.json',function(res){               	//获取数据后,隐藏loading动画               		myContainer.hideLoading();               		myContainer.setOption(option = {               			title:{               				text:'echartsLoading加载'               			},               			tooltip:{},               			legend:{},               			xAxis:{               				data:res.name               			},               			yAxis:{},               			series:[               				{               					name:'访问量',               					type:'bar',               					data:res.data               				}               			]               		});               })            },2000)        }                bindData();

由于运行的动态图上传有点麻烦,在这里我截图两张图片,分别是加载前与加载后:

加载后图片:

数据动态实时更新

数据实时更新的代码:

var container = document.getElementById('container');    // 初始化echarts对象    var myContainer = echarts.init(container);    var base = + new Date(2018,9,30);    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();    }    //设置图标配置项    myContainer.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:'pink'                }            },            data:data        }]    })    setInterval(function(){        addData(true);        myContainer.setOption({            xAxis:{                data:date            },            series:[{                name:'成交',                data:data            }]        });    },1000)

  

运行图

改代码是上面数据加载方式的所有页面代码,可以直接复制,编辑查看运行效果。

1   2   3   4     
5 echarts-异步加载数据 6
7 8 9 10 18 19 20
21
22 181 182

 

转载于:https://www.cnblogs.com/lvxisha/p/9728194.html

你可能感兴趣的文章
Linux下安装Oracle11g服务器
查看>>
iphone4s省电设置
查看>>
SQL Server 2008编写脚本时智能提示功能丢失的处理
查看>>
Create a Settings Page for Windows phone
查看>>
Android 通过按键旋转屏幕
查看>>
scp和sftp常用操作
查看>>
Count and Say
查看>>
第十七章 特殊成员_使用typedef简化函数指针的声明
查看>>
poj3903
查看>>
EWM RF 开发常用代码
查看>>
shell编程 逻辑分支
查看>>
对结果集进行分页显示
查看>>
构造函数初始化列表
查看>>
关于核实PDF.NET会员用户信息的公告
查看>>
使用 Mashups4JSF 生成和消费 Mashup Feed
查看>>
Discover a powerful and suitable Javascript Automatic Testing Toolkit
查看>>
获取offsetTop和offsetLeft的值(兼容)-by小雨
查看>>
让.net程序自动运行在管理员权限下
查看>>
YbSoftwareFactory 代码生成插件【十一】:ASP.NET WebApi MVC下组织机构管理和菜单权限管理的实现...
查看>>
Request------Response
查看>>