JS 折线图

echarts 折线图。需要引入:echarts.min.js

  <script src="${ctxStatic}/common/echarts.min.js" charset="utf-8"  type="text/javascript"></script>

JS调用后台方法,得到数据

  Map<String, Object> map = new HashMap<String, Object>();

  for (Integer i = 0; i < 24; i++) {

    boolean isExit = false;

    String fixIndex = "";

    if (i < 10) {

      fixIndex = "0" + i;

    } else {

      fixIndex = i.toString();

    }

    for (Map<String, Object> spMap : list) {

      String hour = spMap.get("hour_remark").toString().substring(11);

      if (hour.equals(fixIndex)) {

        failcount.add(Integer.valueOf(spMap.get("fail_count").toString()));

        isExit = true;

        continue;

      }

    }

    if (!isExit) {

      failcount.add(0);

    }

  }

  Map<String, Object> failcountmap = new HashMap<String, Object>();

  failcountmap.put("name", "失败数量");

  failcountmap.put("data", failcount);

  allInfo.add(failcountmap);

  map.put("data", allInfo);

* failcountmap    :    {data=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=失败数量}

* allInfo   :    [{data=[0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=提交数量}, {data=[0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=下发数量}, {data=[0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=成功数量}, {data=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=未知数量}, {data=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=失败数量}]

map :   {data=[{data=[0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=提交数量}, {data=[0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=下发数量}, {data=[0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=成功数量}, {data=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=未知数量}, {data=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name=失败数量}]}

-----------------------------------js-----------------------------------------

$(function() {

  $.get("${ctx}/domesticSms/sendStatisticsHour/list?createtime="+$("#createtime").val(),function(data) {

  var serie = [];

  var dataTitle = [];

  $.each(data.data, function(i, v) {

    var item = {

    name : v.name,

    type : ‘line‘,

   smooth:true,    // 平滑的,可以使折线图平滑

      itemStyle: {normal: {areaStyle: { color: red ; }}},   // 可以设定折线图下阴影颜色。

    data : v.data

  }

  serie.push(item);

  dataTitle.push(v.name);

});

var myChart = echarts.init(document.getElementById(‘footerDiv_div‘));

var option = {

    tooltip : {

      trigger : ‘axis‘

    },

    legend : {

      data : dataTitle,

      selected:{     // 设定折线图默认是否显示   name:boolean,

            ‘下发数量‘:true,

            ‘成功‘:false,

            ‘失败‘:false,

            ‘未知‘:false

      }

    },

    grid : {

      left : ‘3%‘,

      right : ‘4%‘,

      bottom : ‘3%‘,

      containLabel : true

    },

    toolbox : {

      feature : {

      saveAsImage : {}

    }

  },

  xAxis : {

    type : ‘category‘,

    boundaryGap : false,

splitLine: {show: false},   // X轴每个点对应一个纵线,是否展示。

    data : [ ‘00‘, ‘01‘, ‘02‘, ‘03‘, ‘04‘, ‘05‘, ‘06‘, ‘07‘, ‘08‘, ‘09‘, ‘10‘, ‘11‘, ‘12‘, ‘13‘, ‘14‘, ‘15‘, ‘16‘, ‘17‘, ‘18‘, ‘19‘, ‘20‘, ‘21‘, ‘22‘, ‘23‘ ]

  },

  yAxis : {

    type : ‘value‘

  },

  series : serie

 };

myChart.setOption(option);

})

})

原文地址:https://www.cnblogs.com/wgy1/p/9052497.html

时间: 2024-11-11 07:51:13

JS 折线图的相关文章

HighCharts绘制JS折线图(后台传数据给前台基于JFinal框架)

/*****************************Controller(基于JFinal框架)**************/ package com.zzu.controller;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilitie

Morris.js和flot绘制折线图的比较

[文章摘要] 最近用开源的AdminLTE做框架感觉效果特别好,其针对图表库Morris.js和flot都提供了不错的支持,也都提供了这两者的例子.不过Morris.js是基于Raphael.js来的,也就是其使用SVG和VML来绘制图形,而flot则是使用Canvas进行绘制,在绘制效率和浏览器兼容性等方面会有出入,同时两者需要的数据格式也不相同.本文中对两者的使用和性能进行了比较. [文章索引] Morris.js的使用 flot的使用 性能比较 [一.Morris.js的使用] Morri

chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法[bubuko.com]

chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法,原文: 默认情况下如下图 Y轴并不是从0开始,这样折现图的幅度会很大,不是正常的幅度,解决办法如下, 示例代码: window.onload = function () { var ctx = document.getElementById("canvas").getContext("2d"); window.myLine = new Chart(ctx).Line(lineChartDat

圆饼 折线图的 js

echarts.common.min.js !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.echarts=e

【D3.js】Focus + Context 折线图

利用D3.js库实现Focus+Context的折线图,读取data.tsv文件数据 index.html <!DOCTYPE html> <meta charset="utf-8"> <style> svg { font: 10px sans-serif; } .axis path, .axis line { fill: none; stroke: #000; shape-rendering: crispEdges; } .line { fill:

JS 画饼图,折线图

网址: http://www.hcharts.cn/demo/index.php 效果图: 它的网址里面都很全的.简单实用扣代码即可 使用时注意数据格式即可 1 //获取mood_evalue的百分比 2 $total_mood_evalue = 0; 3 //初始化key的数组,统计key的百分比 4 $mood_key_arr = array(); 5 6 //1-5分别对应值1-5: 7 $mood_evalue_1 = $mood_evalue_2 = $mood_evalue_3 =

highcharts.js的时间轴折线图

工作中正好用到. 鼠标按住左键 左右移动可以试试 <!DOCTYPE> <html lang='en'> <head> <title>4-Highcharts曲线图之时间轴折线图</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script src="../jquery-2.1

原生js实现折线图

不借助Echarts等图形框架原生JS快速实现折线图效果 1. 折线图效果预览 例如下图所示的折线图效果实现就很简单: 调用下面这段JS代码中的方法就好了: 假设页面上需要连接的所有点元素集合是eleDots,则页面上执行下fnLineChart(eleDots)效果就出来了. 当然,这段JS只处理长度和角度这两个动态属性,其他固定的样式还需要CSS配合,例如,线条的粗细和线条颜色,例如下面这个粗细2像素的绿色折线,可以这样: 2. 斜线效果实现的原理 1)计算两点之间的直线长度 这个应该属于初

慕课网实战—《用组件方式开发 Web App全站 》笔记五-折线图组件开发

运用HTML5.CSS3.JS流行技术,采用组件式开发模式,开发Web App全站!技术大牛带你统统拿下不同类型的HTML5动态数据报告! <用组件方式开发 Web App全站 > 折现图绘制大致步骤 折线图画布 JavaScript CSS 折线图绘制网格线 // 水平网格线 100份 -> 10份 var step = 10; ctx.beginPath(); ctx.lineWidth = 1; ctx.strokeStyle = '#AAAAAA'; window.ctx = c