Echarts图表通过Ajax动态更新数据
2017-07-07 11:45
806 查看
由于业务需求需要做一个可视化的展示Demo,这个Demo需要前后端的共同支撑,所以思路大致是:首先我们想到的是用ajax动态请求服务端获取到json文件后,然后将其解析为可以直接使用的数据,最后把这些数据更新到Echarts中去。
简单的代码实现如下:
HTML:
由于一个问题,中间思考了一下,比如之前把setOption放在了ajax的外面,每次请求到正确的json数据,解析好push到声明好的数组中,数组是okay的,把它使用在Echarts的data处就是毫无反应(这里指的是我们之前声明的是有数据的数组,而并非是一个空数组),Echarts表使用的仍然时最初我们声明数组时的数据,原因是数组的值被改变了,但是没有把传给Echarts图表的值刷新(echarts使用的依旧是以前的值)。
简单的代码实现如下:
HTML:
<div id="myId"><div/>
var myChart = echarts.init(document.getElementById('myId')); // 初始化 var dispute,traffice,criminal,fire,public_sercurity; //纠纷,交通,犯罪,火情,公共安全 var receive = []; // Echarts中data使用的更新数据数组 function getCategoryPolice(){ $.ajax({ type:"GET", url:"http://10.x.x.11:8080/SSH_Backstage/demoAction", dataType:'json', async:true, beforeSend: function(){ // alert("loading...."); 4000 }, //加载执行方法 error: function(){ alert("error"); }, //错误执行方法 success: function(CategoryCon){ // 这里弹出某几项验证一下是否获取到了数据或者正确与否 /* alert("纠纷:"+CategoryCon.list[0].dispute); alert("交通:"+CategoryCon.list[0].traffice); alert("刑事:"+CategoryCon.list[0].criminal); alert("火情:"+CategoryCon.list[0].fire); alert("治安:"+CategoryCon.list[0].public_sercurity); */ // 解析数据并赋值给事先声明好的变量 dispute = CategoryCon.list[0].dispute; traffice = CategoryCon.list[0].traffice; criminal = CategoryCon.list[0].criminal; fire = CategoryCon.list[0].fire; public_sercurity = CategoryCon.list[0].public_sercurity; receive = []; // 将使用的数组置空,因为我做demo时在声明数组时有实际测试的数据 // 也可以这样置空数组:receive.splice(0,receive.length); // 将解析好的json数据push到数组中,当然你也可以使用其他办法,我们这里为了简单明了,是写的直接push的方法。 receive.push(parseInt(dispute)); receive.push(parseInt(traffice)); receive.push(parseInt(criminal)); receive.push(parseInt(fire)); receive.push(parseInt(public_sercurity)); receive.push(parseInt(dispute)); receive.push(parseInt(dispute)); console.log(receive); //此处可以打印数组 //myChart.hideLoading(); //隐藏加载动画 myChart.setOption( { backgroundColor: "rgb(7,14,45)", //背景色 title: { text: 'police', // 标题样式 textStyle: { color: '#fff' } }, tooltip: {}, legend: { data:['人数',"sex"], textStyle: { color: '#fff' // legend字体颜色 } }, xAxis: { data: ["罗湖","福田","南山","盐田","宝安","龙华","龙岗"], axisLabel: { // x轴的字体样式 show: true, textStyle: { fontSize:12, // xAxis fontSize color: '#fff' } }, // x轴的颜色和宽度 axisLine:{ lineStyle:{ color:'#fff', width:1, //这里是坐标轴的宽度 } } }, yAxis: { // y轴的字体样式 axisLabel: { show: true, textStyle: { color: '#fff' } }, // y轴的颜色和宽度 axisLine:{ lineStyle:{ color:'#fff', width:1, //这里是坐标轴的宽度 } } }, series: [{ name: '人数', type: 'bar', data: receive // 需要更新的数据在这里 }] } ); // setOption } //成功执行方法 }) //ajax } // ajax外面的方法 // setInterval(function(){getCategoryPolice()}, 6*1000); // 间歇执行 getCategoryPolice();
由于一个问题,中间思考了一下,比如之前把setOption放在了ajax的外面,每次请求到正确的json数据,解析好push到声明好的数组中,数组是okay的,把它使用在Echarts的data处就是毫无反应(这里指的是我们之前声明的是有数据的数组,而并非是一个空数组),Echarts表使用的仍然时最初我们声明数组时的数据,原因是数组的值被改变了,但是没有把传给Echarts图表的值刷新(echarts使用的依旧是以前的值)。
相关文章推荐
- ECharts通过Ajax动态加载数据到图表
- Echarts3通过ajax动态获取数据,30秒定时图表数据,设置图表线条颜色和粗细
- java实现的highcharts与ajax结合动态实时获取数据更新图表
- java实现的highcharts与ajax结合动态实时获取数据更新图表
- ECharts图表组件中级入门篇:如何通过Ajax异步获取图表数据赋值于图表并渲染呈现
- ECharts图表组件入门教程:如何动态读取数组内的数据至echarts图表且动态更新图表Y轴刻度单位
- Echarts通过Ajax实现动态数据加载
- Echarts通过Ajax实现动态数据加载
- 动态更新echarts k线图数据 通过websocket取数据
- Echarts通过Ajax实现动态数据加载
- Vue2.X 通过AJAX动态更新数据
- echarts图表动态获取后台数据详解(三)--ajax跨域请求
- Jquery判断离开页面时,通过Ajax更新数据(兼容IE,Chrome,FF浏览器)
- echarts 图表 展示 练习二 (ajax 后台加载数据)
- ajax动态更新dynatable 表格里面的数据
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
- Ckeditor通过Ajax更新数据
- Highcharts AJAX JSON JQuery 实现动态数据交互显示图表 柱形图
- 【推荐】开源来自百度商业前端数据可视化团队的超漂亮动态图表--ECharts
- 如何通过Ajax异步获取图表数据赋值于图表并渲染呈现