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

  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(); 重新赋值即可
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值