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

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

  1. $(function() {
  2. $("#heart").on("click", function() {
  3. $('.heart-car').show();
  4. $('.sleep-car').hide();
  5. $('.breathe-car').hide();
  6. $('.sport-car').hide();
  7. });
  8. $("#breathe").on("click", function() {
  9. $('.heart-car').hide();
  10. $('.sleep-car').hide();
  11. $('.breathe-car').show();
  12. $('.sport-car').hide();
  13. });
  14. $("#sport").on("click", function() {
  15. $('.heart-car').hide();
  16. $('.sleep-car').hide();
  17. $('.breathe-car').hide();
  18. $('.sport-car').show();
  19. });
  20. $("#sleep").on("click", function() {
  21. $('.heart-car').hide();
  22. $('.sleep-car').show();
  23. $('.breathe-car').hide();
  24. $('.sport-car').hide();
  25. });
  26. /* 第一个图表 */
  27. var aChart = echarts.init(document.getElementById("main"));
  28. function aFun(x_data, y_data) {
  29. aChart.setOption({
  30. title: {
  31. text: '睡眠质量监测'
  32. },
  33. tooltip: {
  34. trigger: 'axis'
  35. },
  36. xAxis: {
  37. data: x_data
  38. },
  39. yAxis: {
  40. splitLine: {
  41. show: false
  42. }
  43. },
  44. toolbox: {
  45. left: 'center',
  46. feature: {
  47. dataZoom: {
  48. yAxisIndex: 'none'
  49. },
  50. restore: {},
  51. saveAsImage: {}
  52. }
  53. },
  54. dataZoom: [{
  55. startValue: '2014-06-01'
  56. }, {
  57. type: 'inside'
  58. }],
  59. visualMap: {
  60. top: 10,
  61. right: 10,
  62. pieces: [ {
  63. gt: 0,
  64. lte: 1,
  65. color: '#ffde33'
  66. }, {
  67. gt: 1,
  68. lte: 2,
  69. color: '#ff9933'
  70. }, {
  71. gt: 2,
  72. lte: 3,
  73. color: '#cc0033'
  74. }, {
  75. gt: 3,
  76. lte: 4,
  77. color: '#660099'
  78. }],
  79. outOfRange: {
  80. color: '#999'
  81. }
  82. },
  83. series: {
  84. name: '睡眠',
  85. type: 'line',
  86. data: y_data,
  87. markLine: {
  88. silent: true,
  89. data: [{
  90. yAxis: 0
  91. }, {
  92. yAxis: 1
  93. }, {
  94. yAxis: 2
  95. }, {
  96. yAxis: 3
  97. }, {
  98. yAxis: 4
  99. }]
  100. }
  101. }
  102. });
  103. }
  104. /* 第二个图表 */
  105. // 折线图
  106. var bChart = echarts.init(document.getElementById("main2"));
  107. function bFun(x_data, y_data) {
  108. bChart.setOption({
  109. color : [ '#3398DB' ],
  110. tooltip : {
  111. trigger : 'axis',
  112. axisPointer : { // 坐标轴指示器,坐标轴触发有效
  113. type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  114. }
  115. },
  116. legend : {
  117. data : [ '心率值' ]
  118. },
  119. grid : {
  120. left : '3%',
  121. right : '20%',
  122. bottom : '20%',
  123. containLabel : true
  124. },
  125. xAxis : [ {
  126. type : 'category',
  127. data : x_data,
  128. } ],
  129. yAxis : [ { // 纵轴标尺固定
  130. type : 'value',
  131. scale : true,
  132. name : '心率值',
  133. max : 140,
  134. min : 0,
  135. splitNumber : 20,
  136. boundaryGap : [ 0.2, 0.2 ]
  137. } ],
  138. series : [ {
  139. name : '心率',
  140. type : 'line',
  141. data : y_data
  142. } ]
  143. }, true);
  144. }
  145. /* 第三个图表 */
  146. // 折线图
  147. var cChart = echarts.init(document.getElementById("main3"));
  148. function cFun(x_data, y_data) {
  149. cChart.setOption({
  150. color : [ '#3398DB' ],
  151. tooltip : {
  152. trigger : 'axis',
  153. axisPointer : { // 坐标轴指示器,坐标轴触发有效
  154. type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  155. }
  156. },
  157. legend : {
  158. data : [ '呼吸值' ]
  159. },
  160. grid : {
  161. left : '3%',
  162. right : '20%',
  163. bottom : '20%',
  164. containLabel : true
  165. },
  166. xAxis : [ {
  167. type : 'category',
  168. data : x_data,
  169. } ],
  170. yAxis : [ { // 纵轴标尺固定
  171. type : 'value',
  172. scale : true,
  173. name : '呼吸值',
  174. max : 50,
  175. min : 0,
  176. splitNumber : 20,
  177. boundaryGap : [ 0.2, 0.2 ]
  178. } ],
  179. series : [ {
  180. name : '呼吸',
  181. type : 'line',
  182. data : y_data
  183. } ]
  184. }, true);
  185. }
  186. /* 第四个图表 */
  187. // 基于准备好的dom,初始化echarts实例
  188. var dChart = echarts.init(document.getElementById('main4'));
  189. // 指定图表的配置项和数据
  190. function dFun(data) {
  191. dChart.setOption({
  192. tooltip: {
  193. /*返回需要的信息*/
  194. formatter: function(param) {
  195. var value = param.value;
  196. return '<div style="border-bottom: 1px solid rgba(255,255,255,.3); font-size: 16px;padding-bottom: 7px;margin-bottom: 7px;"> ' + value[0] + " 翻身"
  197. '</div>';
  198. }
  199. },
  200. xAxis: {
  201. show : false,
  202. type: 'time',
  203. name: '时间轴',
  204. },
  205. yAxis: {
  206. type: 'value',
  207. name: '翻身',
  208. max: 9,
  209. min: 0,
  210. },
  211. series: [{
  212. name: '',
  213. data: data,
  214. type: 'scatter',
  215. symbolSize: 40
  216. }]
  217. });
  218. }
  219. $.ajax({
  220. url : "/bison/stats/mattess/getDetail?id=" + $("#sid").val(),
  221. async : false,
  222. type : 'GET',
  223. dataType : 'json',
  224. success : function(data) {
  225. var status = data.returnData.status;
  226. status.echatX == ''?aFun("[]","[]"):aFun(status.echatX,status.echatY);
  227. var hb = data.returnData.heartBreath;
  228. if(hb.echatX == ''){
  229. bFun("[]","[]");
  230. cFun("[]","[]");
  231. }else{
  232. bFun(hb.echatX, hb.echatY);
  233. cFun(hb.echatX, hb.echatY2);
  234. }
  235. var move = data.returnData.move;
  236. dFun(move);
  237. },
  238. });
  239. })

注:

原文作者:祈澈姑娘技术博客:https://www.jianshu.com/u/05f416aefbe1
90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

关注「编程微刊」公众号 ,在微信后台回复「领取资源」,获取IT资源300G干货大全。

公众号回复“1”,拉你进程序员技术讨论群.

echarts同一页面四个图表切换的js数据交互的更多相关文章

  1. webpack+vue项目实战(四,前端与后端的数据交互和前端展示数据)

    地址:https://segmentfault.com/a/1190000010063757 1.前言 今天要做的,就是在上一篇文章的基础上,进行功能页面的开发.简单点说呢,就是与后端的数据交互和怎么 ...

  2. Echarts同一页面多个图表自适应浏览器窗口大小——window.onresize

    当前做的一个项目中,频繁使用到百度团队的Echarts,发在一个页面同时出现多个图表时,只有最后一个图表触发了window.onresize事件,查询官方文档后得到解决. 方法如下: hwChart. ...

  3. eCharts_基于eCharts开发的一个多图表页面

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 在OAF页面中集成ECharts以及highcharts用于显示图表

    历史博文中有讲解在请求中输出基础图表的方式,见地址:EBS 请求输出Html报表集成Echarts 本文讲述在OAF中集成这两类图表. 集成的基本思路:在OAF页面中加入一个rawText组件,在ra ...

  5. Echarts一个页面加载多个图表及图表自适应

    Echarts一个页面加载多个图表及图表自适应 模块化加载 //入口 require.config({ paths: { echarts: 'http://echarts.baidu.com/buil ...

  6. JQuery实现页面企业广告图片切换和新闻列表滚动效果

    最近用到一个页面上图片左右切换和新闻列表滚动呈现的效果,整理如下: 前段代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  7. H5单页面手势滑屏切换原理

    H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路. 1.实现原理 ...

  8. 把页面上的图表导出为pdf文件,分享一种请求下载文件的方法

    最近客户提出一个需求,就是把页面上的图表导出为pdf文件. 找了很多资料.终于有了点头绪.最主要是参考了HighCharts的做法.http://www.hcharts.cn/ 实现原理:把页面图表的 ...

  9. QtQuick多页面切换、多页面切换动画、多个qml文件数据交互

    一.QtQuick多页面切换方法 (1)“隐藏法” 前一个视图visible设为false或者透明度opacity设为0,相当于“隐藏”了,实际还存在: 要显示的视图visible设为true或者透明 ...

随机推荐

  1. Bag标签之中的一个行代码实行中文分词实例3

    例3: 分词(返回一个书包.以_0._1._2 ...取出分好的词) <bag id=words act=2words>我喜欢黄色高领T恤衫</bag> 注意没有name属性 ...

  2. C++中父类的虚函数必需要实现吗?

    一.情景 C++中父类的虚函数必需要实现吗? class Vir{ public: virtual void tryVirtual(); }; class CVir:public Vir{ publi ...

  3. CSS 类、伪类和伪元素差别具体解释

    CSS中的类(class)是为了方便过滤(即选择)元素,以给这类元素加入样式,class是定义在HTML文档树中的. 可是这在一些情况下是不够用的,比方用户的交互动作(悬停.激活等)会导致元素状态发生 ...

  4. Android插件化(二):使用DexClassLoader动态载入assets中的apk

    Android插件化(二):使用DexClassLoader动态载入assets中的apk 简单介绍 上一篇博客讲到.我们能够使用MultiDex.java载入离线的apk文件.须要注意的是,apk中 ...

  5. Springboot优化

    https://www.cnblogs.com/chen110xi/p/6198481.html

  6. JS --- 延迟加载的几种方式

    标题:JS延迟加载,也就是等页面加载完成之后再加载 JavaScript 文件.  JS延迟加载有助于提高页面加载速度. 1. defer 属性 HTML 4.01 为 <script>标 ...

  7. 洛谷P1722 矩阵 II

    题目背景 usqwedf 改编系列题. 题目描述 如果你在百忙之中抽空看题,请自动跳到第六行. 众所周知,在中国古代算筹中,红为正,黑为负…… 给定一个1*(2n)的矩阵(usqwedf:这不是一个2 ...

  8. 2017国家集训队作业[agc008f]Black Radius

    2017国家集训队作业[agc008f]Black Radius 时隔4个月,经历了省赛打酱油和中考各种被吊打后,我终于回想起了我博客园的密码= = 题意: ​ 给你一棵树,树上有若干个关键点.选中某 ...

  9. PLSQL乱码&TNS-12557: protocol adapter not loadable解决

    PLSQL乱码&TNS-12557: protocol adapter not loadable解决 PLSQL乱码&TNS-12557: protocol adapter not l ...

  10. VFS相关内容

    http://blog.csdn.net/icyfire0105/article/details/1899927 VFS是一个软件层,用来处理与Unix标准文件系统相关的所有系统调用,是用户应用程序与 ...