调用后台动态的生成Highcharts图表

本文详细介绍了使用Highcharts配置图表的过程,包括数据获取、图表设置等步骤,并分享了如何处理时间坐标轴及解决时区问题的经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. var data = AjaxUtil.request({
  2.        url : "test.action"
  3.       });
  4.        
  5.          //为图表设置值   
  6.       var myobj= data.rows;
  7.       var deptname='';
  8.       var yf =[];
  9.       var nf =[];
  10.       var tqb =[];
  11.       for(var i=0;i<myobj.length;i++){
  12.         
  13.        deptname += "'"+myobj.DEPT_NAME+"',";
  14.                yf.push(myobj.YF);
  15.                nf.push(myobj.NF);
  16.                tqb.push(myobj.TQB);
  17.       }
  18.       deptname = deptname.substring(0,deptname.length-1);
  19.       deptname =  eval('('+"["+deptname+"]"+')');
  20.       yf =  eval('('+"["+yf+"]"+')');
  21.       nf =  eval('('+"["+nf+"]"+')');
  22.        var  chart = new Highcharts.Chart({
  23.             chart: {
  24.                  marginTop: 20,
  25.                  marginRight: 10,
  26.                  marginLeft: 25,
  27.                  renderTo: 'mapDiv' //图表显示的div 容器
  28.             },
  29.             title: {
  30.                text: ' title '
  31.             },
  32.             xAxis: {
  33.                categories: deptname //动态加载的X轴数据
  34.             },
  35.             yAxis: {
  36.                 min:0,
  37.                 minPadding: 0.2,
  38.                 maxPadding: 0.2,
  39.                 tickInterval:5,
  40.                 title: {
  41.                     ext: ' '
  42.                 }
  43.             },
  44.             tooltip: {
  45.                formatter: function() {
  46.                   var s;
  47.                   if (this.point.name) { 
  48.                            s = ''+  this.point.name +': 'this.y +' fruits';
  49.                   } else {
  50.                            s  = ''+this.x  +': 'this.y+'条';
  51.                   }
  52.                   return s;
  53.                }
  54.             },
  55.             legend: {
  56.                   layout: 'vertical',
  57.                   align: 'left',
  58.                   x: 60,
  59.                  verticalAlign: 'top',
  60.                  y: 50,
  61.                  floating: true
  62.             },
  63.             series: [{
  64.                type: 'column',
  65.                name: '当月累计',
  66.                data: yf
  67.             }, {
  68.                type: 'column',
  69.                name: '前年当月',
  70.                data: tqb
  71.             }, {
  72.                type: 'spline',
  73.                name: '当年累计',
  74.                data:  nf 
  75.             }]
  76.          });



总结:
如实现坐标轴为时间的
xAxis: {
      type: 'datetime'  //类型       
     },
时间从后台传值以毫秒方式传出:Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) 转化为页面展示的时间
需要在引用的js之前 加上:Highcharts.setOptions({global:{useUTC : false}});  
由于时区问题  否则时间差事8小时

js 类库中
更改导出图片按钮中的英文字体和打印按钮都在exporting.js类库中
如何更改图表的高宽问题能更灵活?highcharts.src.js 中 更改getChartSize(); 重新赋值即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值