etmvc+jQuery EasyUI Highcharts实现柱状图

来源:互联网 发布:windows最新系统 编辑:程序博客网 时间:2024/05/24 02:10

基于JQuery easyUI 使用Highcharts实现了数据柱状图的显示,前段显示主要使用Highchartst这个图表库,后端使用etmvc框架从数据库获取数据,前后端数据交互采用Json数据格式,主要代码如下:

前段HTML:

[html] view plain copy
  1. <div style="padding:5px;">  
  2.     <fieldset>  
  3.      <div>  
  4.         <div style="margin: 0 1px">  
  5.         <div id="containerliuliang" style="min-width: 368px; height: 368px; margin: 0 auto"></div>  
  6.         </div>  
  7.      </div>  
  8.     </fieldset>  
  9. </div>  

前段JS:

[html] view plain copy
  1. <script type="text/javascript">  
  2.        /*获取json数据开始*/  
  3.        //定义变量  
  4.        $(document).ready(function () {  
  5.            var jsonXData = [];  
  6.            var jsonyD1 = [];  
  7.            var jsonyD2 = [];  
  8.          //获取数据  
  9.            $.ajax({ url: '/ciccpsMember/memberfee/memberfeeByYear',  
  10.                cache: false,  
  11.                async: false,  
  12.                success: function (data) {  
  13.                    var json = eval("(" + data + ")");  
  14.                    if (json.Rows.length > 0) {  
  15.                        for (var i = 0; i < json.Rows.length; i++) {  
  16.                            var rows = json.Rows[i];  
  17.                            var Year = rows.year;  
  18.                            var ShouldPay = rows.shouldPay;  
  19.                            var TruePay = rows.truePay;  
  20.                            jsonXData.push(Year); //赋值  
  21.                            jsonyD1.push(ShouldPay);  
  22.                            jsonyD2.push(TruePay);  
  23.                        } //for  
  24.                        var chart;  
  25.                        chart = new Highcharts.Chart({  
  26.                            chart: {  
  27.                                renderTo: 'containerliuliang',//放置图表的容器  
  28.                                plotBackgroundColor: null,  
  29.                                plotBorderWidth: null,  
  30.                                defaultSeriesType: 'column'   //图表类型line, spline, area, areaspline, column, bar, pie , scatter   
  31.                            },  
  32.                            title: {  
  33.                                text: '近年会费缴纳情况',  
  34.                                style: { font: 'normal 13px 宋体' }  
  35.                            },  
  36.                            xAxis: {//X轴数据  
  37.                                categories: jsonXData,  
  38.                                lineWidth: 2,  
  39.                                labels: {  
  40.                                    rotation: -45, //字体倾斜  
  41.                                    align: 'right',  
  42.                                    style: { font: 'normal 13px 宋体' }  
  43.                                }  
  44.                            },  
  45.                            yAxis: {//Y轴显示文字  
  46.                                lineWidth: 2,  
  47.                                title: {  
  48.                                    text: '金额/万元'  
  49.                                }  
  50.                            },  
  51.                            tooltip: {  
  52.                                formatter: function () {  
  53.                                    return '<b>' + this.x + '</b><br/>' +  
  54.                                 this.series.name + ': ' + this.y+'万元';  
  55.                                }  
  56.                            },  
  57.                            plotOptions: {  
  58.                                column: {  
  59.                                    dataLabels: {  
  60.                                        enabled: true  
  61.                                    },  
  62.                                    enableMouseTracking: true//是否显示title  
  63.                                }  
  64.                            },  
  65.                            series: [{  
  66.                                name: '应缴',  
  67.                                data: jsonyD1  
  68.                            }, {  
  69.                                name: '实缴',  
  70.                                data: jsonyD2  
  71.                            }]  
  72.                        });  
  73.                        //$("tspan:last").hide(); //把广告删除掉  
  74.                    } //if  
  75.                }  
  76.            });  
  77.        });  
  78.     </script>  

后端代码:

[java] view plain copy
  1. /** 
  2.  * 近几年会费 
  3.  */  
  4. public JsonView memberfeeByYear() throws Exception {  
  5.   
  6.     db connection = new db();  
  7.     String sql = "select * from  memberfeesview";  
  8.     ResultSet rs = connection.executeQuery(sql);  
  9.     List<Map<String, Object>> _list = new ArrayList<Map<String, Object>>();  
  10.     if (rs != null) {  
  11.         try {  
  12.             while (rs.next()) {  
  13.                 /* 获取信息 */  
  14.                 Map<String, Object> _map = new HashMap<String, Object>();  
  15.                 _map.put("year", rs.getString("year"));  
  16.                 _map.put("shouldPay", rs.getFloat("shouldPay"));  
  17.                 _map.put("truePay", rs.getFloat("truePay"));  
  18.                 _list.add(_map);  
  19.             }  
  20.         } catch (Exception e) {  
  21.             e.printStackTrace();  
  22.         } finally {  
  23.             try {  
  24.                 rs.close();  
  25.             } catch (Exception e) {  
  26.                 e.printStackTrace();  
  27.             }  
  28.             connection.closed();  
  29.         }  
  30.     }  
  31.       
  32.     Map<String, Object> result = new HashMap<String, Object>();  
  33.     result.put("RowCount",_list.size());  
  34.     result.put("Rows", _list);  
  35.     JsonView view = new JsonView(result);  
  36.     view.setContentType("text/html;charset=utf-8");  
  37.     return view;  
  38. }  

Json数据格式:

[plain] view plain copy
  1. {"Rows":[{"truePay":30.0,"shouldPay":140.0,"year":"2013"},{"truePay":140.0,"shouldPay":140.0,"year":"2012"},{"truePay":134.5,"shouldPay":140.0,"year":"2011"},{"truePay":141.0,"shouldPay":140.0,"year":"2010"},{"truePay":85.0,"shouldPay":86.5,"year":"2009"}],"RowCount":5}  

运行截图:

先介绍到这,其他图可结合Highcharts相关的教程来实现,附带 多个JS+Json柱状图饼图折线图示例 里面有多个不同的JS图标库的示例代码

0 0
原创粉丝点击