echarts同一页面中四个图表切换的js数据交互方法示例


Posted in Javascript onJuly 03, 2018

需求:

点击tab页,切换四个不同的图表,ajax向后台请求数据,展示在四个不同的图表中。

echarts同一页面中四个图表切换的js数据交互方法示例

其余的就不多说,直接上js代码了

示例代码:

$(function() {
 $("#heart").on("click", function() {

  $('.heart-car').show();
  $('.sleep-car').hide();
  $('.breathe-car').hide();
  $('.sport-car').hide();

 });

 $("#breathe").on("click", function() {

  $('.heart-car').hide();
  $('.sleep-car').hide();
  $('.breathe-car').show();
  $('.sport-car').hide();
 });
 $("#sport").on("click", function() {

  $('.heart-car').hide();
  $('.sleep-car').hide();
  $('.breathe-car').hide();
  $('.sport-car').show();

 });
 $("#sleep").on("click", function() {

  $('.heart-car').hide();
  $('.sleep-car').show();
  $('.breathe-car').hide();
  $('.sport-car').hide();

 });
 


 /* 第一个图表 */
 
 var aChart = echarts.init(document.getElementById("main"));
 function aFun(x_data, y_data) {
  aChart.setOption({
   title: {
    text: '睡眠质量监测'
   },
   tooltip: {
    trigger: 'axis'
   },
   xAxis: {
    data: x_data
   },
   yAxis: {
    splitLine: {
     show: false
    }
   },
   toolbox: {
    left: 'center',
    feature: {
     dataZoom: {
      yAxisIndex: 'none'
     },
     restore: {},
     saveAsImage: {}
    }
   },
   dataZoom: [{
    startValue: '2014-06-01'
   }, {
    type: 'inside'
   }],
   visualMap: {
    top: 10,
    right: 10,
    pieces: [ {
     gt: 0,
     lte: 1,
     color: '#ffde33'
    }, {
     gt: 1,
     lte: 2,
     color: '#ff9933'
    }, {
     gt: 2,
     lte: 3,
     color: '#cc0033'
    }, {
     gt: 3,
     lte: 4,
     color: '#660099'
    }],
    outOfRange: {
     color: '#999'
    }
   },
   series: {
    name: '睡眠',
    type: 'line',
    data: y_data,
    markLine: {
     silent: true,
     data: [{
      yAxis: 0
     }, {
      yAxis: 1
     }, {
      yAxis: 2
     }, {
      yAxis: 3
     }, {
      yAxis: 4
     }]
    }
   }
  });
 }

 /* 第二个图表 */
 // 折线图
 var bChart = echarts.init(document.getElementById("main2"));
 function bFun(x_data, y_data) {
  bChart.setOption({
   color : [ '#3398DB' ],
   tooltip : {
    trigger : 'axis',
    axisPointer : { // 坐标轴指示器,坐标轴触发有效
     type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
    }
   },
   legend : {
    data : [ '心率值' ]
   },
   grid : {
    left : '3%',
    right : '20%',
    bottom : '20%',
    containLabel : true
   },
   xAxis : [ {
    type : 'category',
    data : x_data,
   } ],
   yAxis : [ { // 纵轴标尺固定
    type : 'value',
    scale : true,
    name : '心率值',
    max : 140,
    min : 0,
    splitNumber : 20,
    boundaryGap : [ 0.2, 0.2 ]
   } ],
   series : [ {
    name : '心率',
    type : 'line',
    data : y_data
   } ]
  }, true);
 }

 /* 第三个图表 */
 // 折线图
 var cChart = echarts.init(document.getElementById("main3"));
 function cFun(x_data, y_data) {
  cChart.setOption({
   color : [ '#3398DB' ],
   tooltip : {
    trigger : 'axis',
    axisPointer : { // 坐标轴指示器,坐标轴触发有效
     type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
    }
   },
   legend : {
    data : [ '呼吸值' ]
   },
   grid : {
    left : '3%',
    right : '20%',
    bottom : '20%',
    containLabel : true
   },
   xAxis : [ {
    type : 'category',
    data : x_data,
   } ],
   yAxis : [ { // 纵轴标尺固定
    type : 'value',
    scale : true,
    name : '呼吸值',
    max : 50,
    min : 0,
    splitNumber : 20,
    boundaryGap : [ 0.2, 0.2 ]
   } ],
   series : [ {
    name : '呼吸',
    type : 'line',
    data : y_data
   } ]
  }, true);
 }
 
 
 
 /* 第四个图表 */
 // 基于准备好的dom,初始化echarts实例
 var dChart = echarts.init(document.getElementById('main4'));
 // 指定图表的配置项和数据
 function dFun(data) {
  dChart.setOption({
   
    tooltip: { 
     /*返回需要的信息*/ 
     formatter: function(param) { 
      var value = param.value; 
      return '<div style="border-bottom: 1px solid rgba(255,255,255,.3); font-size: 16px;padding-bottom: 7px;margin-bottom: 7px;"> ' + value[0] + " 翻身" 
       '</div>'; 
     } 
    },
    
    xAxis: {
     show : false,
     type: 'time',
     name: '时间轴',
     

    },
    yAxis: {
     type: 'value',
     name: '翻身',

     max: 9,
     min: 0,
    },
    series: [{
     name: '',
     data: data,
     type: 'scatter',
     symbolSize: 40
    }]
   });
 }

 
 $.ajax({
  url : "/bison/stats/mattess/getDetail?id=" + $("#sid").val(),
  async : false,
  type : 'GET',
  dataType : 'json',
  success : function(data) {
   
   var status = data.returnData.status;
   status.echatX == ''?aFun("[]","[]"):aFun(status.echatX,status.echatY);
   
   var hb = data.returnData.heartBreath;
   if(hb.echatX == ''){
    bFun("[]","[]");
    cFun("[]","[]");
   }else{
    bFun(hb.echatX, hb.echatY);
    cFun(hb.echatX, hb.echatY2);
   }
   
   var move = data.returnData.move;
   dFun(move);
  },
 });
})

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js事件监听机制(事件捕获)总结
Aug 08 Javascript
简介JavaScript中的setTime()方法的使用
Jun 11 Javascript
AngularJS入门教程之静态模板详解
Aug 18 Javascript
总结十个Angular.js由浅入深的面试问题
Aug 26 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
Jan 08 Javascript
无循环 JavaScript(map、reduce、filter和find)
Apr 08 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
Oct 27 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
vue+springboot图片上传和显示的示例代码
Feb 14 Javascript
js实现星星打分效果
Jul 05 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
基于React+Redux的SSR实现方法
Jul 03 #Javascript
VUE 3D轮播图封装实现方法
Jul 03 #Javascript
vue.js轮播图组件使用方法详解
Jul 03 #Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
Jul 03 #Javascript
解析vue data不可以使用箭头函数问题
Jul 03 #Javascript
详解Vue SPA项目优化小记
Jul 03 #Javascript
jQuery实现表单动态添加与删除数据操作示例
Jul 03 #jQuery
You might like
mysql数据库差异比较的PHP代码
2012/02/05 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
jquery text()要注意啦
2009/10/30 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
Python base64编码解码实例
2015/06/21 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
python中类的属性和方法介绍
2018/11/27 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
挂职思想汇报
2013/12/31 职场文书
新春文艺演出主持词
2014/03/27 职场文书
梅花魂教学反思
2014/04/25 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
土地租赁协议书
2015/01/29 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android