• HighChart 实现从后台取数据来实时更新柱状和折线组图


    前段时间公司让弄图表,给我说有HighCharts这个js插件,于是上网上搜,由于本人是写后端的,对于JavaScript和jQuery不是很熟悉,虽然找到了模板,但是还是不明白,所以一点一点的改,但好的结果是最后还是搞出来,所以写个随笔,记录和总结下

      var id =${id};
        $.ajax({
          url: '${base}/act/manage/ggdr/getChartsData',
          type: 'POST',
          dataType: 'json',
          data:{'id':id},
          success:function(data){
              console.log(data[1].create_time);
              var xData = [];//组装图表行的数据(x轴)
              var yData = [];//组装图表每列的数据(y轴)
              var addData =[];//因为我的图表是柱状图和折线图组合的图表,所以需要组装折线图的列数据
              var sum =0;
              for(var i=0;i<data.length;i++){
                  var temp = new Date(data[i].create_time);
                  var formateDte = temp.getFullYear()+'-'+(temp.getMonth()+1)+'-'+temp.getDate();
                  xData.push(formateDte);
                  yData.push(data[i].num); 
                  sum +=data[i].num;
                  addData.push(sum);
              }

    上面这段是我从后台取数据的的代码,大家可以不用在意

    var chart;
              chart = new Highcharts.Chart({ 
              chart: { 
                  renderTo: 'chart_combo' //关联页面元素div#id //这里是定义图表放在哪,红色的字就是div的id
              },
              title: {  //图表标题 
                  text: '果果达人参与用户趋势图' 
              }, 
              xAxis: { //x轴 
                  categories: xData,  //X轴类别 
                  labels:{y:18}  //x轴标签位置:距X轴下方18像素 
              }, 
              yAxis: {  //y轴 
                  title: {text: '参与人数(人)'}, //y轴标题 
                  lineWidth: 1 //基线宽度 
              }, 
              tooltip: { 
                  formatter: function() { //格式化鼠标滑向图表数据点时显示的提示框 
                      var s; 
                      if (this.point.name) { // 饼状图 
                          s = '<b>' + this.point.name + '</b>: <br>' + this.y+ '人(' +  
                            twoDecimal(this.percentage) + '%)'; 
                      } else { 
                          s = '' + this.x + ': ' + this.y + '人'; 
                      } 
                      return s; 
                  } 
              }, 
              
              exporting: { 
                  enabled: false  //设置导出按钮不可用 
              }, 
              plotOptions:{
                  series:{
                      pointWidth:30
                  }
              },
              series: [{ //数据列 
                  type: 'column', 
                  name: '每日参加人数', 
                  data: yData //这里需要一个数组,我们在上面已经组装好的列数据可以直接赋值在这
              }, 
              { 
                  type: 'spline', 
                  name: '目前总参加人数', 
                  data: addData //这里也一样,这是折线图的数据
              }] 
            });      
          }
        })
  • 相关阅读:
    构造json响应,重定向响应及终止响应,设置及使用cookies
    Logging模块封装,打印日志
    oracle-数据库的安装与建库
    socket使用实例
    flask的路由、请求方式设置
    Python 元组
    Python 列表的增删改查
    Python 学习之[列表][元组]
    Python学习之[for 循环]
    Python学习之[字符串]
  • 原文地址:https://www.cnblogs.com/LoveHe/p/4238850.html
Copyright © 2020-2023  润新知