使用echarts繪制餅狀圖


前端代碼:

 1 <script src="${ctx}/static/plugin/echarts/echarts-v4.2.0/echarts.common.min.js"></script>
 2  <div id="main" style="width: 600px;height:400px;"></div>
 3 <script type="text/javascript">
 4     /* 基於准備好的dom,初始化echarts實例 */
 5     var myChart = echarts.init(document.getElementById('main'));
 6     /* 核心顯示設置 */
 7     var option = {
 8             /* 標題設置 */
 9             title : {
10                 text: '配貨比例統計',
11                 x:'center'
12             },
13             tooltip : {
14                 trigger: 'item',
15                 formatter: "{a} <br/>{b} : {c} ({d}%)"
16             },
17             /* 顏色和選項的對應關系 */
18             legend: {
19                 orient: 'vertical',
20                 left: 'left',
21                 data: []            //待填充數據項1
22             },
23             /* 內容顯示 */
24             series : [
25                 {
26                     name: '比例',      //鼠標移至不同扇形區提示信息的標題
27                     type: 'pie',    //指定數據生成的圖表類型
28                     radius : '55%',
29                     center: ['50%', '60%'],
30                     data:[],         //待填充數據項2
31                     /* 陰影區域設置 */
32                     itemStyle: {
33                         emphasis: {
34                             shadowBlur: 10,
35                             shadowOffsetX: 0,
36                             shadowColor: 'rgba(0, 0, 0, 0.5)'
37                         }
38                     }
39                 }
40             ]
41         };
42     /* 發送ajax請求 */
43     var data = {};
44     //發送key-value類型的請求數據
45         //例如:data.xxx = 1;
46     $.ajax({
47         type: "POST",
48           //當發送json數據時添加:
49            /*  contentType: "application/json; charset=utf-8", */
50         url: "${ctx}/ksCunhuo/getChart.mvc",
51         data: data,
52         error: function (data) {
53             alert("出錯了!" );
54         },
55         success: function (data) {
56             //對echarts模板進行數據填充 
57             option.legend.data = data.title;
58             option.series[0].data = data.number; 
59               //重新加載圖表顯示
60             myChart.setOption(option);
61         }
62     });
63 </script>

后台代碼:

1.實體類Item

 1 public class Item {
 2     
 3     private List<String> title;
 4     private List<HashMap<String, Object>> number;
 5     
 6     public List<String> getTitle() {
 7         return title;
 8     }
 9     public void setTitle(List<String> title) {
10         this.title = title;
11     }
12     public List<HashMap<String, Object>> getNumber() {
13         return number;
14     }
15     public void setNumber(List<HashMap<String, Object>> number) {
16         this.number = number;
17     }    
18  
19 }

2.controller層代碼:

 1 @RequestMapping("getChart")
 2     @ResponseBody
 3     public Item  getChart(){
 4         Map<String, Object> keyMap = new HashMap<String, Object>();
 5         //構建返回的數據項
 6         List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
 7         List<String> names = new ArrayList<String>();
 8         names.add("已配貨比例");
 9         names.add("未配貨比列");
10         //模擬數據
11         try {
12             List list1 = ksCunhuoService.findByQuery1();
13             List list2 = ksCunhuoService.findAll1();
14             double len1 = list1.size();
15             double len2 = list2.size();
16             double d1 = len1/len2;
17             double d2 = (len2-len1)/len2;
18             int data1 =  (int) (d1*100);
19             int data2 =  (int) (d2*100);
20             for (String name : names) {
21                 HashMap<String, Object> vals = new HashMap<String, Object>();
22                     vals.put("name", name);
23                     if("已配貨比例".equals(name)) {
24                         vals.put("value", data2);
25                     } else {
26                          vals.put("value", data1);
27                     }
28                     list.add(vals);
29                 }
30         } catch (Exception e) {
31             // TODO Auto-generated catch block
32             e.printStackTrace();
33         } 
34        //封裝成pojo對象
35        Item item = new Item ();
36        item.setNumber(list);
37        item.setTitle(names);
38        return item;
39 
40     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM