Echarts教程之通过Ajax实现动态加载折线图的方法

一、GIF图

二、前台代码

// 调用方法
hotlineLine();
// 定时刷新
setInterval(function () {
  hotlineLine();
},5000);
function hotlineLine(){
  // 初始化图表元素
  var hotlineLine = echarts.init(document.getElementById('hotlineLine_id'));
  $.get('${pageContext.request.getContextPath()}/m/hotline.do', function (res) {
    var option = {
      // 提示框组件,鼠标经过饼图时会出现提示框
      tooltip: {
        // 触发类型
        // 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
        trigger: 'axis'
      },
      // 每条折线的颜色
      color: ['#87CEFA', '#9AFF9A', '#C0FF3E','#DB7093'],
      // 图例组件
      legend: {
        // 内容
        data:['呼入', '呼出', '应答', '用户放弃'],
        // 样式
        textStyle:{
            fontSize:10,
            color:'#66ffff'
          },
        // 上距离,类似css中的margin
        top:'5%'
      },
      // 网格
      grid: {
        // 左距离
        left: '7%',
        right: '5%',
        bottom: '10%',
        top:'20%'
      },
      // 横坐标
      xAxis: {
        // 类型
        type: 'category',
        // 刻度
        data: ['08:00', '10:00', '12:00', '14:00', '16:00', '18:00', '20:00', '22:00', '24:00'],
        // 样式
        axisLine:{
          // 横坐标线的颜色
          lineStyle:{
            color:'#66ffff'
          }
        }
      },
      yAxis: {
        type: 'value',
        name: '次数',
        axisLabel: {
          formatter: '{value}'
        },
        axisLine:{
          lineStyle:{
            color:'#66ffff'
          }
        },
        splitLine:{
          show: true,
          lineStyle:{
            color:'#66ffff'
          }
        }
      },
      series: [
           {
             name:'呼入',
             type:'line',
             data:res[3]
           },
           {
             name:'呼出',
             type:'line',
             data:res[2]
           },
           {
             name:'应答',
             type:'line',
             data:res[1]
           },
           {
             name:'用户放弃',
             type:'line',
             data:res[0]
           }
        ],
        // 文本标签
        label: {
          //是否展示
          show: true,
          position: 'top',
          textStyle: {
            fontWeight:'bolder',
            fontSize : '12',
            fontFamily : '微软雅黑',
            color:defaultColor
          }
        }
    };
    hotlineLine.setOption(option);
  });
}
<div class="rightMain01-sub03 box-border">
  <div class="box-title">话务指标趋势图</div>
  <div class="rightMain01-sub03-data">
    <div id="hotlineLine_id" style="height:340px;"></div>
  </div>
</div> 

三、后台代码

List<List<Integer>> hotlineList = new ArrayList<List<Integer>>();
@RequestMapping("/m/hotline.do")
@ResponseBody
public JSONArray hotline() {
  List<List<Integer>> returnList = new ArrayList<List<Integer>>();
  if (hotlineList.size() == 0 || hotlineList.get(0).size() >= 9) {
    hotlineList.clear();
    for (int i = 0; i < 4; i++) {
      List<Integer> l = new ArrayList<Integer>();
      l.add(i * 5 + AlexUtils.getRandomInteger(0, 5));
      hotlineList.add(l);
    }
  }
  for (int i = 0; i < hotlineList.size(); i++) {
    List<Integer> list = hotlineList.get(i);
    int thisSize = list.size();
    if (thisSize < 5) {
      list.add(list.get(thisSize - 1) + AlexUtils.getRandomInteger(1, 5));
    } else {
      list.add(list.get(thisSize - 1) - AlexUtils.getRandomInteger(1, 5));
    }
    returnList.add(list);
  }
  hotlineList = returnList;
  return JSONArray.fromObject(returnList);
}
public static int getRandomInteger(int min, int max) {
  int diff = max - min;
  return min + new Random().nextInt(diff);
} 

数据格式:

1.[[1,3,4,5,7],[6,9,11,12,13],[10,11,12,13,16],[16,19,21,22,24]]

总结

以上所述是小编给大家介绍的Echarts教程之通过Ajax实现动态加载折线图的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Echarts动态加载多条折线图的实现代码

    背景:动态加载多条折线图,折线图条数不确定 页面效果: 页面代码 //气象数据 function serchQx(beginTime, endTime, str, parameter) { $("#rr").html("");//将循环拼接的字符串插入下拉列表 var t = $("#imageParameter").val(); $ .ajax({ type : "POST", data : { "str"

  • Echarts教程之通过Ajax实现动态加载折线图的方法

    一.GIF图 二.前台代码 // 调用方法 hotlineLine(); // 定时刷新 setInterval(function () { hotlineLine(); },5000); function hotlineLine(){ // 初始化图表元素 var hotlineLine = echarts.init(document.getElementById('hotlineLine_id')); $.get('${pageContext.request.getContextPath()

  • Ajax实现动态加载组合框的实例代码

    一  province.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <script type="text/javascript" language="javaScript"> var xmlHttp = false; //全局变量,

  • jquery及js实现动态加载js文件的方法

    本文实例讲述了jquery及js实现动态加载js文件的方法.分享给大家供大家参考,具体如下: 问题: 如果用jquery append直接加载script标签的话,会报错的.除了document.write外,还有没有其他的比较好的动态加载js文件的方法. 解决方法: 1.jquery方法 $.getScript("./test.js"); //加载js文件 $.getScript("./test.js",function(){ //加载test.js,成功后,并执

  • JS动态加载当前时间的方法

    本文实例讲述了JS动态加载当前时间的方法.分享给大家供大家参考.具体实现方法如下: <body bgcolor="#fef4d9" onload ="time()"> <script language="JavaScript"> function time () { var now = new Date(); var yr = now.getYear(); var mName = now.getMonth() + 1; v

  • JavaScript动态加载样式表的方法

    本文实例讲述了JavaScript动态加载样式表的方法.分享给大家供大家参考.具体如下: 如果需要更换皮肤,我们可以通过JS代码动态加载皮肤的样式表,下面的代码就可以做到,非常简单,你只需要把这段代码做成函数动态调用即可. var el = document.createElement('link'); el.rel = 'stylesheet'; el.type = 'text/css'; el.href = 'http://www.jb51.net/...' + 'styles.css';

  • jquery动态加载js三种方法实例

    复制代码 代码如下: <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="

  • AJAX和jQuery动态加载数据的实现方法

    什么是AJAX? 这里的AJAX不是希腊神话里的英雄,也不是清洁剂品牌,更不是一门语言,而是指异步Javascript和XML(Asynchronous JavaScript And XML),这里的XML(数据格式)也可以是纯文本(Plain Text)或是JSON.简单的说,就是使用XMLHttpRequest对象和服务器端交换数据(以XML或是JSON等格式),使用JavaScript处理数据并更新页面内容. 为什么要使用AJAX? 借助AJAX,我们可以实现: 在不重载页面的情况下,向服

  • Ajax实现动态加载数据

    前言: 1.这个随笔实现了一个Ajax动态加载的例子. 2.使用.net 的MVC框架实现. 3.这个例子重点在前后台交互,其它略写. 开始: 1.控制器ActionResult代码(用于显示页面) /// <summary> /// 电话查询页面 /// </summary> /// <returns></returns> public ActionResult PhoneSearch(string sql) { phoneList=从数据库查询数据: V

  • 动态加载jquery库的方法

    有时候,我们可能不会在网页中<script src="jquery.min.js" 来加载 Jquery 库,可能在用户点击某个按钮后,才去加载 Jquery 库.好处不用我说,节省带宽,提高访问速度,因为用户可能不会点击这个按钮,也就不需要 Jquery .那么如何动态加载 Jquery 库呢?一般可以用 Document.write 来打印出,也可以用 Ajax ,也可以用我下面的这种方式: 复制代码 代码如下: <!DOCTYPE html PUBLIC "

  • Vue动态加载异步组件的方法

    背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,iframe存在跨域的问题,当然是postMessage还是可以通信的,但也并非是最好的.目前有这么一个场景:门户需要制作通用的首页和数据概览页面,首页和数据概览页面通过小部件来自由拼接.业务组件在制作的时候只需要提供各个模块小部件的url就可以了,可是如果小部件之间还存在联系呢?那么iframe是不好

随机推荐