highcharts3D饼图统计
需要导入js
highcharts-3d.js
highcharts-zh_CN.js
highcharts.js
<div class="one1"> <div class="two_top"> <span class="schedule">完成情况</span> <div id="number"> (已完成个数:<span id ="finish"></span> 未完成个数:<span id ="unfinish"></span>) </div> </div> <div> <div id="container" style="height: 210px"></div> </div> </div>
//请求饼状图数据 $.ajax({ url: "${basePath}/home/maintenanceStatistic", type: "POST", async: false, dataType: "json", contentType: "application/json; charset=utf-8", success: function (data) { if(data.data.length!=0){ $("#unfinish").html(data.data[0][1]); $("#finish").html(data.data[1][1]); if(!(data.data[0][1] == 0 && data.data[1][1] == 0)){ showPhoto(data); } } }, error: function (data) { layer.alert("读取失败"); } }) //饼状图 function showPhoto(data){ $('#container').highcharts({ chart: { type: 'pie', options3d: { enabled: true, alpha: 55, beta: 0 } }, title: { text:null }, tooltip: { headerFormat: '{series.name}<br>', pointFormat: '{point.name}: <b>{point.percentage:.1f}%</b>' }, plotOptions: { pie: { allowPointSelect: true, cursor: 'pointer', depth: 35, dataLabels: { enabled: true, format: '{point.name}' } } }, credits: { enabled: false }, series: [{ type: 'pie', name: '生产检修完成情况统计占比', data: [ ['未完成',(data.data[0])[0] ], ['已完成',(data.data[1])[0] ] ] }] }); }
/** * 统计分析 * @param date * @return */ @RequestMapping("/maintenanceStatistic") @ResponseBody public Map<String,Object> maintenanceStatistic(Model model){ Map<String,Object> map = new HashMap<>(); List<PmMaintenanceplan_kfq> list = new ArrayList<PmMaintenanceplan_kfq>(); List<List<Object>> listStr = new ArrayList<List<Object>>(); //当前用户权限名 List<String> listShior= activeUser(); int num = listShior.size(); if(listShior!=null&&num!=0){ if(listShior.contains(OVERHAUL_PROCESS)){ List<Object> listStr1 = new ArrayList<Object>(); List<Object> listStr2 = new ArrayList<Object>(); list = pmMaintenanceplanService.maintenanceStatistic(); List<PmMaintenanceplan_kfq> list1 = new ArrayList<PmMaintenanceplan_kfq>(); List<PmMaintenanceplan_kfq> list2 = new ArrayList<PmMaintenanceplan_kfq>(); int size = list.size(); for(int i=0;i<size;i++){ Date realdeliverytime = list.get(i).getRealdeliverytime(); if(realdeliverytime==null||"".equals(realdeliverytime)){ list1.add(list.get(i)); }else{ list2.add(list.get(i)); } } int pct1 = 0; int pct2 = 0; double size1 = list1.size(); double size2 = list2.size(); //转换百分比 double tempresult1 = size1/size*100; double tempresult2 = size2/size*100; DecimalFormat df1 = new DecimalFormat("0"); if(tempresult1 >= 0){ pct1=Integer.parseInt( df1.format(tempresult1)); } if(tempresult2 >= 0){ pct2=Integer.parseInt( df1.format(tempresult2)); } listStr1.add(pct1); listStr1.add(size1); listStr2.add(pct2); listStr2.add(size2); listStr.add(listStr1); listStr.add(listStr2); map.put("data", listStr); }else{ map.put("data", listStr); } }else{ map.put("data", listStr); } return map; }