Echarts百度Echarts的使用入门+两个简单的小例子+心得

Posted Angel挤一挤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Echarts百度Echarts的使用入门+两个简单的小例子+心得相关的知识,希望对你有一定的参考价值。

Echarts对于展示结果,有一个很好的表达方式。

1.首先,在官网将js下载到本地,引用到页面上

这里是在开发环境,所以下载最后源代码这个

 

managerResult.jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html>
 4 <html  lang="en">
 5     <head>
 6         <meta charset="utf-8">
 7         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 8         <meta name="format-detection" content="telephone=no" />
 9         <meta name="apple-mobile-web-app-capable" content="yes" />
10         <meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
11         <meta name="description" content="">
12         <meta name="keywords" content="">
13         <title>Echarts图表统计结果</title>
14         <link rel="stylesheet" type="text/css" href="../quest/css/bootstrap.min.css"/>
15     </head>
16     <body>
17         <div class="container">
18             <div class="row">
19                 <input type="hidden"  name=\'allNum\'  value="${allNum}"/>
20                 <input type="hidden"  name=\'listNum\' value="${listNum}"/>
21                 <textarea  style="display: none;" name="condition">${condition}</textarea>
22                 <textarea  style="display: none;" name="questOptions">${questOptions}</textarea>
23                 <div id="mainPie" style="width: 800px;height:400px;"></div>
24                 <div id="mainBar" style="width: 1000px;height:600px;"></div>
25             </div>
26         </div>
27     </body>
28     <script type="text/javascript" src="/resources/bootstrap-3.3.5-dist/js/jquery-1.10.2.min.js"></script>
29     <script type="text/javascript" src="/resources/bootstrap-3.3.5-dist/js/bootstrap.min.js"></script>
30     <script type="text/javascript" src= "../quest/js/echarts.js"></script>
31     <script type="text/javascript" src= "../quest/js/managerResult.js"></script>
32 </html>
View Code

 

页面中分别为 柱状图和 饼状图 放置了两个div作为容器

 

2.managerResult.js

步骤就3步

1》var myChartBar = echarts.init(document.getElementById(\'mainBar\')); 获取容器

2》配置option

3》myChartBar.setOption(optionBar); 初始化图表进行展示

  1 $(document).ready(function(){
  2       //获取饼状图容器 并 初始化echarts实例
  3     var myChartPie = echarts.init(document.getElementById(\'mainPie\'));
  4     
  5     
  6     //饼状图 配置
  7     var optionPie = {
  8             title : {//标题
  9                 text: \'问卷统计调查结果\',
 10                 subtext: \'多条件组合\',
 11                 x:\'center\'
 12             },
 13             tooltip : {//光标在上显示信息
 14                 trigger: \'item\',
 15                 formatter: "{a} <br/>{b} : {c} ({d}%)",
 16                 backgroundColor : \'#986c11\',
 17             },
 18             toolbox: {//工具按钮
 19                 show : true,
 20                 feature : {
 21                     mark : {show: true},
 22                     dataView : {show: true, readOnly: false},
 23                     magicType : {
 24                         show: true,
 25                         type: [\'pie\', \'funnel\']
 26                     },
 27                     restore : {show: true},
 28                     saveAsImage : {show: true}
 29                 }
 30             },
 31             legend: {//图例
 32                 orient: \'vertical\',
 33                 left: \'left\' ,
 34                 data: [\'统计项\',\'未统计项\']
 35             },
 36             series : [//系列列表  图表类型+数据源
 37                 {
 38                     name: \'问卷统计\',
 39                     type: \'pie\',
 40                     radius : \'55%\',
 41                     center: [\'50%\', \'60%\'],
 42                     data:[
 43                         {value:335, name:\'统计项\'},
 44                         {value:310, name:\'未统计项\'}
 45                     ],
 46                     itemStyle: {
 47                         emphasis: {
 48                             shadowBlur: 100,
 49                             shadowOffsetX: 10,
 50                             shadowColor: \'rgba(0, 0, 0, 0.5)\'
 51                         }
 52                     },
 53                     label: {
 54                         normal: {
 55                             show: true,
 56                             position: \'outside\',
 57                             formatter :\'{a}\\n{b} : {c} ({d}%)\',
 58                             textStyle:{
 59                                 fontSize : 2,
 60                                 fontStyle : \'normal\'
 61                             }
 62                         },
 63                     }
 64                     
 65                 }
 66             ]
 67         };
 68 
 69 
 70     // 使用刚指定的配置项和数据显示图表。
 71     myChartPie.setOption(optionPie);
 72     
 73     
 74     
 75     //获取饼状图容器 并 初始化echarts实例
 76     var myChartBar = echarts.init(document.getElementById(\'mainBar\'));
 77     
 78         //柱状图配置
 79         var optionBar = {
 80                 title:{
 81                     show : true,
 82                     text : \'多条件分量统计\',
 83                     x:\'center\'
 84                 },
 85                 color: [\'#3398DB\'],
 86                 tooltip : {
 87                     trigger: \'axis\',
 88                     axisPointer : {            // 坐标轴指示器,坐标轴触发有效
 89                         type : \'shadow\'        // 默认为直线,可选为:\'line\' | \'shadow\'
 90                     }
 91                 },
 92                  toolbox: {
 93                     show : true,
 94                     feature : {
 95                         dataView : {show: true, readOnly: false},
 96                         magicType : {show: true, type: [\'line\', \'bar\']},
 97                         restore : {show: true},
 98                         saveAsImage : {show: true}
 99                     }
100                 },
101                 grid: {//网格配置
102                     show : true,
103                     left: \'3%\',
104                     right: \'15%\',
105                     bottom: \'3%\',
106                     shadowBlur : 10,
107                     containLabel: true
108                 },
109                 xAxis : [
110                     {
111                         name : \'筛选条件类目\',
112                         type : \'category\',
113                         data : [
114                             {
115                                 value: \'周一\',
116                                 textStyle: {
117                                     fontSize: 4,
118                                     baseline : \'middle\',
119                                 }
120                             }, \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\', \'Sun\'],
121                         axisTick: {
122                             alignWithLabel: true
123                         },
124                         axisLabel :{
125                             rotate : 50
126                         }
127                         
128                     }
129                 ],
130                 yAxis : [
131                     {
132                         name : \'统计人数\',
133                         type : \'value\'
134                     }
135                 ],
136                 series : [
137                     {
138                         name:\'问卷人数\',
139                         type:\'bar\',
140                         barWidth: \'30%\',
141                         label: {
142                             normal: {
143                                 show: true,
144                                 position: \'top\',
145                                 formatter :\'{b} : {c}\',
146                                 textStyle:{
147                                     fontSize : 2,
148                                     fontStyle : \'normal\'
149                                 }
150                             }
151                         },
152                         data:[10, 52, 200, 334, 390, 330, 220]
153                     }
154                 ]
155             };
156 
157     
158         myChartBar.setOption(optionBar);
159     
160     
161     
162     
163 });
View Code

 

**********************************************************************如果想动态从后台获取数据的话,往下看***************************************************************

***********************************************************************************************************************************************************************************

 

先看看js中,ajax从后台获取的数据,赋值给图表的data即可

4》带有ajax的Echarts 实例化过程

 1  var condition = $("textarea[name=\'condition\']").text();
 2     var questOptions = $("textarea[name=\'questOptions\']").text();
 3     //全局变量,便于给图表赋值
 4     var XData;//X轴类目
 5     var VData;//实际数据
 6     
 7     //ajax从后台获取数据给全局变量
 8     $.ajax({url:"/questionnaire/barDate.jhtml",
 9         type:"get",
10         async:false,
11         traditional:false,
12         data:{questOptions:questOptions,condition:condition},
13         success:function(data){
14             //后台拼接组装好的json数据传给前台这里,直接转化一下根据键名获取键值,赋值给全局变量
15             XData = JSON.parse(data).X;
16             VData = JSON.parse(data).V;
17         }
18     });
19     
20     //获取饼状图容器 并 初始化echarts实例
21     var myChartBar = echarts.init(document.getElementById(\'mainBar\'));
22     
23         //柱状图配置
24         var optionBar = {
25                 title:{
26                     show : true,
27                     text : \'多条件分量统计\',
28                     x:\'center\'
29                 },
30                 color: [\'#3398DB\'],
31                 tooltip : {
32                     trigger: \'axis\',
33                     axisPointer : {            // 坐标轴指示器,坐标轴触发有效
34                         type : \'shadow\'        // 默认为直线,可选为:\'line\' | \'shadow\'
35                     }
36                 },
37                  toolbox: {
38                     show : true,
39                     feature : {
40                         dataView : {show: true, readOnly: false},
41                         magicType : {show: true, type: [\'line\', \'bar\']},
42                         restore : {show: true},
43                         saveAsImage : {show: true}
44                     }
45                 },
46                 grid: {//网格配置
47                     show : true,
48                     left: \'3%\',
49                     right: \'15%\',
50                     bottom: \'15%\',
51                     shadowBlur : 10,
52                     containLabel: true
53                 },
54                 xAxis : [
55                     {
56                         name : \'筛选条件类目\',
57                         type : \'category\',
58                         data : XData,
59                         axisTick: {
60                             alignWithLabel: true
61                         },
62                         axisLabel :{
63                             rotate : 50
64                         }
65                         
66                     }
67                 ],
68                 yAxis : [
69                     {
70                         name : \'统计人数\',
71                         type : \'value\'
72                     }
73                 ],
74                 series : [
75                     {
76                         name:\'问卷人数\',
77                         type:\'bar\',
78                         barWidth: \'30%\',
79                         label: {
80                             normal: {
81                                 show: true,
82                                 position: \'top\',
83                                 formatter :\'{b} : {c}\',
84                                 textStyle:{
85                                     fontSize : 2,
86                                     fontStyle : \'normal\'
87                                 }
88                             }
89                         },
90                         data:VData
91                     }
92                 ]
93             };
94 
95     
96         myChartBar.setOption(optionBar);
View Code

5》后台部分代码【只看json数据  组装部分】 

 1 @RequestMapping(value= "/barDate" ,produces = "text/html;charset=UTF-8")
 2     @ResponseBody
 3     public String barDate(HttpServletRequest request,String condition,String  questOptions) throws UnsupportedEncodingException{
 4         
 5         //勾选项
 6         questOptions = questOptions.replaceAll("category=", "");
 7         String [] questArr = questOptions.equals("")? new String[0]:questOptions.split(";");
 8         //填空题
 9         Map<String,Object> mapList = doMap(condition);
10         System.out.println("勾选项:"+questArr);
11         
12         
13         JSONObject jsonObject = new JSONObject();
14         JSONArray array1 = new JSONArray();
15         JSONArray array2 = new JSONArray();
16         Map<String,Object> newList = new HashMap<String, Object>();
17         //填空题
18         mapList.forEach((key,value)->{
19             boolean flag = false;
20             if(value != null){
21                 if(key.contains("Arr")){
22                     String newKey = key.substring(0,key.lastIndexOf("Arr"));
23                     if(key.contains("age")){
24                         Date[] date = (Date[]) value;
25                         if(date[0] != null && date[1] != null){
26                             array1.add("年龄段:"+date[0]+"-"+date[1]);
27                             flag = true;
28                         }else if(date[0] != null || date[1] != null){
29                             array1.add("年龄:"+date[0] == null ? date[1] : date[0]);
30                             flag = true;
31                         }
32                     }else{
33                         Double [] v = (Double[]) value;
34                         if(v[0] != null && v[1] != null){
35                             array1.add(newKey+"段:"+v[0]+"-"+v[1]);
36                             flag = true;
37                         }else if(v[0] != null || v[1] != null){
38                             array1.add(newKey+":"+v[0] == null ? v[1] : v[0]);
39                             flag = true;
40                         }
41                     }
42                 }
43                 if(key.contains("userName")){
44                     array1.add("姓名:"+value);
45                     flag = true;
46                 }
47                 if(key.contains("sex")){
48                     array1.add("性别:"+value);
49                     flag = true;
50                 }
51                 if(key.contains("memopause")){
52                     array1.add("是否绝经:"+value);
53                     flag = true;
54                 }
55                 
56                 if(flag){
57                     newList.put(key, value);
58                     List<Questionnaire> list = questionnaireService.findQuests(newList, new String[0]);
59                     newList.clear();
60                     array2.add(list.size());
61                     flag = false;
62                 }
63                 
64             }
65         });
66         //获取资源文件中键值对
67         ResourceBundle bundle = ResourceBundle.getBundle("quest");
68         
69         if(questArr.length >0){
70             for (String string : questArr) {
71 Echarts入门教程精简实用系列

Echarts入门

echarts入门小总结

echarts入门教程

echarts入门教程(超级详细带案例)

将百度的ECharts整合到阿里的Weex中。