3D柱形图报表的制作

这是用json的格式传送数据,所以要添加jar包如下:

commons-beanutils-1.7.0.jar

commons-collections-3.2.jar

commons-lang-2.4.jar

commons-logging-1.0.4.jar

ezmorph-1.0.3.jar

json-lib-2.2.3-jdk15.jar

<!-- 这个是页面显示的代码 -->
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta http-equiv="refresh" content="20"> <!--  这个是每个20秒刷新一次本页面-->
  <title>闸口监控表</title>

  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
  <style type="text/css">
#container {
 height: 400px;
 min-width: 310px;
 max-width: 800px;
 margin: 0 auto;
}
  </style>
  <script type="text/javascript">
 

  var chart;
  var mode;
  $(document).ready(function() {
   $.ajax({
    type:"post",
    url:"ExportAction",
    success:function(data){
     var json=eval('('+data+')'); //把传过来的字符串改为json格式
        //把json里面的数据取出来拼接成字符串 
      mode="colorByPoint: true,"+
             " data: [{"+
                 " y: "+json.one+","+
             " }, {"+
                "  y:"+json.two+","+
             " }, {"+
                "  y: "+json.three+",}]"
         
      getDate(mode);
    }
   });
   
   function getDate(mode) {
    //这个是json格式的柱形图报表
     $('#container').highcharts({

            chart: {
                type: 'column',
                options3d: {
                    enabled: true,
                    alpha: 15,
                    beta: 15,
                    viewDistance: 25,
                    depth: 40
                },
                marginTop: 80,
                marginRight: 40
            },

            title: {
                text: '闸口监控数量动态条形表'
            },

            xAxis: {
                categories: ['收货货量', '收货积压', '收货错误']
            },

            yAxis: {
                allowDecimals: false,
                min: 0,
                title: {
                    text: '商品的数量(件)'
                }
            },

         /*    tooltip: {
                headerFormat: '<span style="font-size:11px"></span><br>',
                pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>件</b><br/>'
            } */
            tooltip: {
                headerFormat: '<b>{point.key}</b><br>',
                pointFormat: '<span style="color:{series.color}">\u25CF</span> {series.name}: {point.y} ' //point是用来显示百分形式的  可以
              //把{series.name}: {point.y} 改为<b>件</b>
            }  ,

            plotOptions: {
             
             series: {
                    borderWidth: 0,
                    dataLabels: {
                        enabled: true,
                    }
                },
             /*
                column: {
                    stacking: 'normal',
                    depth: 40
                } */
            },
         
        series:eval("[{"+mode+"}]"), //拼接好了在这里eval显示出来

        });
   }
   
  });
 
  </script>
     
 </head>
 <body onload="opener.location.reload()"><!--开窗时刷新 --> 
<script type="js/data.js"></script>
<script src="js/highcharts.js"></script>
<script src="js/highcharts-3d.js"></script>

<div id="container" style="height: 400px"></div>
 </body onUnload="opener.location.reload()"> <!--关闭时刷新-->
</html>>
//下面是后台用json的格式传到页面的代码

 response.setCharacterEncoding("utf-8");
   response.setContentType("json/html");
   System.out.println("进来没有???");
   
   
   JSONObject number=null;
    number=new JSONObject();
    //每隔一段时间都会有三个值
   
    Num n=new Num();
    n.setOne(40);
    n.setTwo(80);
    n.setThree(1600);
   
   
    number.put("data",n);
   
    PrintWriter out=response.getWriter();
    out.print(number.fromObject(n));
    out.flush();
    out.close();

最后的效果图是

 

二维的柱形图

页面的代码

 <title>报表柱形图</title>

  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
  <style type="text/css">
${demo.css}
  </style>
  <script type="text/javascript">
$(function () {
   
    $('#container').highcharts({
        chart: {
            type: 'column'
        },
        title: {
            text: '闸口监控表'
        },
       
        xAxis: {
            type: 'category'
        },
        yAxis: {
            title: {
                text: '数量(件)'
            }

        },
        legend: {
            enabled: false
        },
        plotOptions: {
            series: {
                borderWidth: 0,
                dataLabels: {
                    enabled: true,
                   
                }
            }
        },

        tooltip: {
            headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
            pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>件</b><br/>'
        },

        series: [{
            colorByPoint: true,
            data: [{
                name: "货物积压",
                y: eval(11),
            }, {
                name: "货物出错",
                y: eval(56),
            }, {
                name: "货物损失",
                y: eval(45),
            }]
        }],
     
    });
});
  </script>
 </head>
 <body>
<script src="js/highcharts.js"></script>
<script src="js/data.js"></script>


<div id="container" style="min-width: 100px; height: 450px; margin: 0 auto"></div>
 </body>
</html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <!--  <meta http-equiv="refresh" content="16660">-->
  <title>闸口监控表(可以根据数值改变颜色来)</title>

  <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
  <style type="text/css">
#container {
 height: 400px;
 min-width: 310px;
 max-width: 800px;
 margin: 0 auto;
}
  </style>
  <script type="text/javascript">
 
//主要代码
  var chart;
  var mode,mode1,mode2,mode3;
  $(document).ready(function() {
    var color = ["red","green"];
   $.ajax({
    type:"post",
    url:"ExportAction",
    success:function(data){
     var json=eval('('+data+')');
     /* 变色操作 */
     if(json.one<1000){
      mode1="data:[{ color: '#00FF00',y:"+json.one+"},"
     }else if(json.one<2000){
      mode1="data:[{color: '#E66505',y:"+json.one+"},"
     }else {
      mode1="data:[{color: '#CC0000',y:"+json.one+"},"
     }
     if(json.two<1000){
      mode2="{color: '#00FF00',y:"+json.two+"},"
     }else if(json.two<2000){
      mode2="{color: '#E66505',y:"+json.two+"},"
     }else{
      mode2="{color: '#CC0000',y:"+json.two+"},"
     }
     if(json.three<1000){
      mode3="{color: '#00FF00',y:"+json.three+"}]"
     }else if(json.three<2000){
      mode3="{color: '#E66505',y:"+json.three+"}]"
     }else{
      mode3="{color: '#CC0000',y:"+json.three+"}]"
     }

    /* 这是一种颜色 */
     /* mode="colorByPoint: true,"+
             " data: [{"+
                 " y: "+json.one+","+
             " }, {"+
                "  y:"+json.two+","+
             " }, {"+
                "  y: "+json.three+",}]" */
                mode=mode1+mode2+mode3; //在这里拼接完成,然后同上面的一样直接传mode过去
         
      getDate(mode);
    }
   });


 mode="name: '流量'"+
             " data: [{"+
                " name: "+data.onenumber+","+
             " y: "+data.one+","+
             " drilldown: "+data.onenumber+","+
             " }, {"+
             " name: "+data.twonumber+","+
             " y: "+data.two+","+
             " drilldown: "+data.twonumber+","+
             " }, {"+
             " name: "+data.threenumber+","+
             " y: "+data.three+","+
             " drilldown: "+data.threenumber+","+
             " }, {"+
             " name: "+data.fournumber+","+
             " y: "+data.four+","+
             " drilldown: "+data.fournumber+","+
             " }, {"+
             " name: "+data.fivenumber+","+
             " y: "+data.five+","+
             " drilldown: "+data.fivenumber+","+
             " }, {"+
             " name: "+data.sixnumber+","+
             " y: "+data.six+","+
             " drilldown: "+data.sixnumber+","+
             " }, {"+
             " name: "+data.sevennumber+","+
             " y: "+data.seven+","+
             " drilldown: "+data.sevennumber }]"

猜你喜欢

转载自blog.csdn.net/penghao_1/article/details/86003272