Echarts配置

直接引入echarts

安装echarts项目依赖

cnpm install echarts --save

//或者
cnpm i echarts -S
 

全局引入

我们安装完成之后,可以在 main.js 中全局引入 echarts

1 import echarts from "echarts";
2 Vue.prototype.$echarts = echarts;

创建图表

 1 <template>
 2   <div id="app">
 3     <div id="main" style=" 600px;height:400px;"></div>
 4   </div>
 5 </template>
 6 <script>
 7 export default {
 8   name: "app",
 9   methods: {
10     drawChart() {
11       // 基于准备好的dom,初始化echarts实例
12       let myChart = this.$echarts.init(document.getElementById("main"));
13       // 指定图表的配置项和数据
14       let option = {
15         title: {
16           text: "ECharts 入门示例"
17         },
18         tooltip: {},
19         legend: {
20           data: ["销量"]
21         },
22         xAxis: {
23           data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
24         },
25         yAxis: {},
26         series: [
27           {
28             name: "销量",
29             type: "bar",
30             data: [5, 20, 36, 10, 10, 20]
31           }
32         ]
33       };
34       // 使用刚指定的配置项和数据显示图表。
35       myChart.setOption(option);
36     }
37   },
38   mounted() {
39     this.drawChart();
40   }
41 };
42 </script>

 1  //实际获取总的Gpu数据
 2     getGpuData() {
 3       if (!Utils.checkToken(this)) return;
 4       if (this.begin_date === null) {
 5         this.begin_date = new Date("2018/12/1");
 6       }
 7       if (this.end_date === null) {
 8         this.end_date = new Date();
 9       }
10       this.showPagination = true;
11       let loading = this.$loading();
12       this.GetGpuRealAvailiay({
13         search_type: this.search_type,
14         uid: this.uid,
15         gpu: this.gpu,
16         begin_date: Utils.formatDate(this.begin_date, "yyyy-MM-dd"),
17         end_date: Utils.formatDate(this.end_date, "yyyy-MM-dd")
18       }).then(
19         res => {
20           res=res.body
21           loading.close();
22           this.totalData = res;
23           this.drawChart(this.totalData.data);
24           const idx = res.date.length - 1;
25           this.time_date = res.date[idx];
26           this.avage_ratio = res.data[idx];
27           this.getOneGpu(1);
28         },
29         err => {
30           this.$message.error(err.msg);
31         }
32       );
33     },
34 
35 //实际画图
36 drawChart() {
37       const This = this;
38       let mChart_line1 = This.$echarts.init(document.getElementById("mChart_line"));
39       mChart_line1.setOption(
40         lineOptions.line({
41           option_type: 10,
42           yName: This.yName,
43           yData: This.total_data.data,
44           tName: This.total_data.tName,
45           xName: "时间",
46           xData: This.total_data.date,
47           title: "GPU Test",
48           Unit: This.Unit
49         })
50       );
51       mChart_line1.getZr().off("click");
52       mChart_line1.getZr().on("click", params => {
53         const pointInPixel = [params.offsetX, params.offsetY];
54         if (mChart_line1.containPixel({ seriesIndex: [0] }, pointInPixel)) {
55           //判断给定的点是否在指定的坐标系或者系列上
56           let xIndex = mChart_line1.convertFromPixel({ seriesIndex: 0 }, [
57             //转换像素坐标值到逻辑坐标系上的点
58             params.offsetX,
59             params.offsetY
60           ])[0]; /*事件处理代码书写位置*/
61           This.day =
62             This.date_type === "month"
63               ? This.total_data.date[xIndex] + "-01"
64               : This.total_data.date[xIndex];
65           This.showPagination = false;
66           This.getDayData(1);
67         }
68       });
69     }

折线图.js

  1 export default {
  2     /**
  3      * 折线图
  4      * xData x轴
  5      * yData y轴
  6      *  xName x轴名字
  7      * title 标题
  8      */
  9     line(param) {
 10         var xData = param.xData;
 11         var data = param.yData
 12         let option = [];
 13         let num =param.num ? param.num : 0;
 14         let max = num ? num *100 : 100;    //处理精度丢失问题  但不是最佳方案
 15         let startValue = param.startValue;
 16         option[0] = {
 17             // Make gradient line here
 18             visualMap: [{
 19                 show: false,
 20                 type: 'continuous',
 21                 seriesIndex: 0,
 22                 dimension: 0,
 23                 min: 0,
 24                 max: xData.length - 1
 25             }],
 26             title: [{
 27                 top: '',
 28                 left: 'center',
 29                 text: param.title
 30             }],
 31             tooltip: {
 32                 trigger: 'axis',
 33                 formatter: function(params){    
 34                     var text_Unit ='';     
 35                     for(var i = 0;i < params.length;i++){
 36                         text_Unit += params[i].value + param.Unit + "</br>"
 37                     }    
 38                         return params[0].name + "</br>" + text_Unit;                      
 39                 }
 40             },
 41             xAxis: [{
 42                 data: xData,
 43                 gridIndex: 1,
 44             }],
 45             yAxis: [{
 46                 name: param.yName,
 47                 splitLine: { show: false },
 48                 gridIndex: 1,
 49             }],
 50             grid: [{
 51                 bottom: '',
 52             }, {
 53                 top: '20%',
 54             }],
 55             series: [{
 56                 type: 'line',
 57                 showSymbol: false,
 58                 data: data
 59             }]
 60         };
 61         option[1] = {
 62             title: {
 63                 text: param.title,
 64                 x: 'center',
 65                 y: '10px',
 66                 textStyle: {
 67                     fontSize: 18,
 68                     color: '#000'
 69                 }
 70             },
 71             tooltip: {
 72                 show: true,
 73                 trigger: 'axis',
 74             },
 75             xAxis: {
 76                 name: param.xName,
 77                 nameTextStyle: {
 78                     color: ['#000']
 79                 },
 80                 data: param.xData,
 81                 axisLabel: {
 82                     textStyle: {
 83                         color: '#000'
 84                     }
 85                 },
 86                 axisTick: {
 87                     show: false
 88                 },
 89                 axisLine: {
 90                     show: true,
 91                     lineStyle: {
 92                         color: ['#ddd']
 93                     }
 94                 },
 95                 z: 10
 96             },
 97             yAxis: {
 98                 name: param.yName,
 99                 nameTextStyle: {
100                     color: ['#000']
101                 },
102                 axisLine: {
103                     show: true,
104                     lineStyle: {
105                         color: ['#ddd']
106                     }
107                 },
108                 axisTick: {
109                     show: false,
110                 },
111                 splitLine: {
112                     show: false,
113                 },
114                 axisLabel: {
115                     textStyle: {
116                         color: '#000'
117                     }
118                 }
119             },
120             series: [{
121                 data: param.yData,
122                 type: 'line',
123                 symbol: 'circle',
124                 symbolSize: 5,
125                 lineStyle: {
126                     normal: {
127                         color: '#7baaf3 ',
128                          2,
129                         type: 'solid'
130                     }
131                 },
132                 itemStyle: {
133                     normal: {
134                         color: '#7baaf3'
135                     }
136                 },
137                 z:11
138             }]
139         };
140         option[2] = {
141             title: {
142                 left: 'center',
143                 text: param.title
144             },
145             tooltip: {
146                 trigger: 'axis',
147             },
148             legend: {
149                 right:0,
150                 data:param.tName,
151             },
152             grid: {
153                 left: '3%',
154                 right: '4%',
155                 bottom: '3%',
156                 containLabel: true
157             },
158             xAxis: {
159                 boundaryGap: false,
160                 data:param.xData
161             },
162             yAxis: {
163                 name: param.yName,
164                 //splitLine: { show: false },
165             },
166             series:param.yData
167         }
168         option[3] = {
169             title: {
170                 text: param.title,
171                 x: 'center',
172                 y: '20px',
173                 textStyle: {
174                     fontSize: 18,
175                     color: '#000'
176                 }
177             },
178             tooltip: {
179                 show: true,
180                 trigger: 'axis',
181                 formatter: function(params){      
182                     var text_Unit ='';     
183                     for(var i = 0;i < params.length;i++){
184                         text_Unit +=  params[i].seriesName +'' +params[i].value + param.Unit + "</br>"
185                     }    
186                         return params[0].name + "</br>" + text_Unit;                      
187                 }
188             },
189             legend: {
190                 right: '10px',
191                 data: param.tName,
192             },
193             xAxis: {
194                 name: param.xName,
195                 nameTextStyle: {
196                     color: ['#000']
197                 },
198                 data: param.xData,
199                 axisLabel: {
200                     textStyle: {
201                         color: '#000'
202                     }
203                 },
204                 axisTick: {
205                     show: false
206                 },
207                 axisLine: {
208                     show: true,
209                     lineStyle: {
210                         color: ['#ddd']
211                     }
212                 },
213             },
214             yAxis: {
215                 name: param.yName,
216                 nameTextStyle: {
217                     color: ['#000']
218                 },
219                 axisLine: {
220                     show: true,
221                     lineStyle: {
222                         color: ['#ddd']
223                     }
224                 },
225                 axisTick: {
226                     show: false,
227                 },
228                 splitLine: {
229                     show: false,
230                 },
231                 axisLabel: {
232                     textStyle: {
233                         color: '#000'
234                     }
235                 }
236             },   
237             series:param.yData
238         };
239         option[4] = {
240             title: {
241                 text: param.title,
242                 x: 'center',
243                 y: '20px',
244                 textStyle: {
245                     fontSize: 18,
246                     color: '#000'
247                 }
248             },
249             tooltip: {
250                 show: true,
251                 trigger: 'axis',
252                 axisPointer:{
253                     type:"cross",
254                     crossStyle:{
255                         color:"#999"
256                     }
257                 }
258             },
259             legend: {
260                 right: '10px',
261                 data: param.tName,
262             },
263             xAxis: {
264                 name: param.xName,
265                 nameTextStyle: {
266                     color: ['#000']
267                 },
268                 data: param.xData,
269                 axisLabel: {
270                     textStyle: {
271                         color: '#000'
272                     }
273                 },
274                 axisTick: {
275                     show: false
276                 },
277                 axisLine: {
278                     show: true,
279                     lineStyle: {
280                         color: ['#ddd']
281                     }
282                 },
283                 z: 13,
284             },
285             yAxis: {
286                 name: param.yName,
287                 nameTextStyle: {
288                     color: ['#000']
289                 },
290                 axisLine: {
291                     show: true,
292                     lineStyle: {
293                         color: ['#ddd']
294                     }
295                 },
296                 axisTick: {
297                     show: false,
298                 },
299                 splitLine: {
300                     show: false,
301                 },
302                 axisLabel: {
303                     textStyle: {
304                         color: '#000'
305                     }
306                 }
307             },  
308             series: param.yData,
309         };
310         option[5] = {
311             visualMap: [{
312                 show: false,
313                 top: 20,
314                 right: 10,
315                 default:10,
316                 pieces:[{
317                     gt: 0,
318                     lte: num,
319                     color: '#ffde33'
320                 },{
321                     gt: num,
322                     lte: max,
323                     color: '#f00'
324                 }],
325                 outOfRange: {           // 超出范围
326                     color: '#f00'
327                 }
328             }],
329             title: [{
330                 top: '',
331                 left: 'center',
332                 text: param.title,
333             }],
334             tooltip: {
335                 trigger: 'axis',
336                 formatter: function(params){    
337                     var text_Unit ='';     
338                     for(var i = 0;i < params.length;i++){
339                         text_Unit += params[i].value + param.Unit + "</br>"
340                     }    
341                         return params[0].name + "</br>" + text_Unit;                      
342                 }
343             },
344             xAxis: [{
345                 data: xData,
346                 gridIndex: 1,
347             }],
348             yAxis: [{
349                 name: param.yName,
350                 splitLine: { show: false },
351                 gridIndex: 1,
352             }],
353             grid: [{
354                 bottom: '',
355             }, {
356                 top: '20%',
357             }],
358             series: {
359                 type: 'line',
360                 showSymbol: false,
361                 data: data,
362                 markLine: {
363                     silent: true,
364                     data: [{
365                         yAxis: num
366                     },]
367                 }
368             }
369         };
370         option[6] = {  
371             title: {
372                 left: 'center',
373                 text: param.title
374             },
375             tooltip: {
376                 trigger: 'axis',
377             },
378             legend: {
379                 right:0,
380                 data:param.tName,
381             },
382             grid: {
383                 left: '3%',
384                 right: '4%',
385                 bottom: '3%',
386                 containLabel: true
387             },
388             xAxis: {
389                 boundaryGap: false,
390                 data:param.xData
391             },
392             yAxis: {
393                 name: param.yName,
394                 splitLine: { show: false },
395                 
396             },
397             series: []
398         }
399         option[6].series.push(
400             {
401                 name: '平行于y轴的趋势线',
402                 type: 'line',
403                 //data:[0],
404                 markLine: {
405                     silent: true,
406                     data: [{
407                         yAxis: num
408                     }]
409                 }
410             }
411         )
412         if( param.option_type == 6){
413             for( var item in param.yData){
414                 var obj ={
415                     name: param.yData[item].name,
416                     type: 'line',
417                     color:param.yData[item].color,
418                     data: param.yData[item].data
419                 }
420                 option[6].series.push(obj)
421             }
422         }
423         option[7] = {  
424             visualMap: [{
425                 show: false,
426                 top: 20,
427                 right: 10,
428                 default:10,
429                 pieces:[{
430                     gt: 0,
431                     lte: num,
432                     color: '#ffde33'
433                 },{
434                     gt: num,
435                     lte: max,
436                     color: '#f00'
437                 }],
438                 outOfRange: {           // 超出范围
439                     color: '#f00'
440                 }
441             }],
442             dataZoom: [
443                 {
444                     startValue:'2019-03-21',
445                 },
446                 {
447                     type: 'inside',
448                    
449                 }
450             ],
451             title: [{
452                 top: '',
453                 left: 'center',
454                 text: param.title,
455             }],
456             tooltip: {
457                 trigger: 'axis',
458                 formatter: function(params){    
459                     var text_Unit ='';     
460                     for(var i = 0;i < params.length;i++){
461                         text_Unit += params[i].value + param.Unit + "</br>"
462                     }    
463                         return params[0].name + "</br>" + text_Unit;                      
464                 }
465             },
466             xAxis: [{
467                 data: xData,
468                 gridIndex: 1,
469             }],
470             yAxis: [{
471                 name: param.yName,
472                 splitLine: { show: false },
473                 gridIndex: 1,
474             }],
475             grid: [{
476                 bottom: '',
477             }, {
478                 top: '20%',
479             }],
480             series: {
481                 type: 'line',
482                 showSymbol: false,
483                 data: data,
484                 markLine: {
485                     silent: true,
486                     data: [{
487                         yAxis: num
488                     },]
489                 }
490             }
491         };
492         option[8] = {
493             // Make gradient line here
494             visualMap: [{
495                 show: false,
496                 type: 'continuous',
497                 seriesIndex: 0,
498                 dimension: 0,
499                 min: 0,
500                 max: xData.length - 1
501             }],
502             title: [{
503                 top: '',
504                 left: 'center',
505                 text: param.title
506             }],
507             dataZoom: [
508                 {
509                     startValue:startValue,
510                 },
511                 {
512                     type: 'inside',
513                    
514                 }
515             ],
516             tooltip: {
517                 trigger: 'axis',
518                 formatter: function(params){    
519                     var text_Unit ='';     
520                     for(var i = 0;i < params.length;i++){
521                         text_Unit += params[i].value + param.Unit + "</br>"
522                     }    
523                         return params[0].name + "</br>" + text_Unit;                      
524                 }
525             },
526             xAxis: [{
527                 data: xData,
528                 gridIndex: 1,
529             }],
530             yAxis: [{
531                 name: param.yName,
532                 splitLine: { show: false },
533                 gridIndex: 1,
534             }],
535             grid: [{
536                 bottom: '',
537             }, {
538                 top: '20%',
539             }],
540             series: [{
541                 type: 'line',
542                 showSymbol: false,
543                 data: data
544             }]
545         };
546 
547         option[9] = {
548             title: {
549                 text: param.title,
550                 x: 'center',
551                 y: '20px',
552                 textStyle: {
553                     fontSize: 18,
554                     color: '#000'
555                 }
556             },
557             tooltip: {
558                 show: true,
559                 trigger: 'axis',
560                 formatter: function(params){      
561                     var text_Unit ='';     
562                     for(var i = 0;i < params.length;i++){
563                         text_Unit +=  params[i].seriesName +'' +params[i].value + param.Unit + "</br>"
564                     }    
565                         return params[0].name + "</br>" + text_Unit;                      
566                 }
567             },
568             legend: {
569                 right: '10px',
570                 data: param.tName,
571             },
572             dataZoom: [     // 主要是这一部分,他是折线图的缩放功能的开启  
573                 {
574                     startValue:startValue,    // 起始位置
575                 },
576                 {
577                     type: 'inside',
578                    
579                 }
580             ],
581             xAxis: {
582                 name: param.xName,
583                 nameTextStyle: {
584                     color: ['#000']
585                 },
586                 data: param.xData,
587                 axisLabel: {
588                     textStyle: {
589                         color: '#000'
590                     }
591                 },
592                 axisTick: {
593                     show: false
594                 },
595                 axisLine: {
596                     show: true,
597                     lineStyle: {
598                         color: ['#ddd']
599                     }
600                 },
601             },
602             yAxis: {
603                 name: param.yName,
604                 nameTextStyle: {
605                     color: ['#000']
606                 },
607                 axisLine: {
608                     show: true,
609                     lineStyle: {
610                         color: ['#ddd']
611                     }
612                 },
613                 axisTick: {
614                     show: false,
615                 },
616                 splitLine: {
617                     show: false,
618                 },
619                 axisLabel: {
620                     textStyle: {
621                         color: '#000'
622                     }
623                 }
624             },   
625             series:param.yData
626         };
627 
628         return option[param.option_type];
629     }
630 }

饼形图.js

 1 export default {
 2     /**
 3     * 饼形图
 4     */
 5     pie(param) {
 6         let option = [];
 7         option[0] = {
 8             tooltip: {
 9                 trigger: 'item',
10                 formatter: "{a} <br/>{b}: {c} ({d}%)"
11             },
12             series: [
13                 {
14                     name: param.title,
15                     type: 'pie',
16                     radius: ['50%', '70%'],
17                     avoidLabelOverlap: false,
18                     label: {
19                         normal: {
20                             show: false,
21                             position: 'center'
22                         },
23                         emphasis: {
24                             show: true,
25                             textStyle: {
26                                 fontSize: '30',
27                                 fontWeight: 'bold'
28                             }
29                         }
30                     },
31                     labelLine: {
32                         normal: {
33                             show: false
34                         }
35                     },
36                     data: [
37                         { value: 335, name: '使用' },
38                         { value: 310, name: '未使用' }
39                     ]
40                 }
41             ]
42         };
43         option[1]={
44             title: {
45                 text: param.title,
46                 left: 'center'
47             },
48             tooltip : {
49                 trigger: 'item',
50                 formatter: "{b} : {c} ({d}%)"
51             },
52             legend: {   
53                 bottom: 10,
54                 left: 'center',
55                 data: param.tName
56             },
57             series : [
58                 {
59                     type: 'pie',
60                     radius : '65%',
61                     center: ['50%', '50%'],
62                     data:param.data,
63                     itemStyle: {
64                         emphasis: {
65                             shadowBlur: 10,
66                             shadowOffsetX: 0,
67                             shadowColor: 'rgba(0, 0, 0, 0.5)'
68                         }
69                     }
70                 }
71             ]
72         }
73         return option[param.option_type];
74     }
75 }

中国地图.js

  1     export default{
  2         /**
  3          * 地图
  4          * title 标题
  5          * data  数据
  6          * mapName 地图类型
  7          * geoCoordMap 经纬度
  8          */
  9         mapOfChina(param){
 10             var convertData = function(data) {
 11                 var res = [];
 12                 for (var i = 0; i < data.length; i++) {
 13                     var geoCoord = param.geoCoordMap[data[i].name];
 14                     if (geoCoord) {
 15                         res.push({
 16                             name: data[i].name,
 17                             value: geoCoord.concat(data[i].value),
 18                         });
 19                         
 20                     }
 21                 }
 22                 return res;
 23             };
 24             var max = 480, min = 9; // todo 
 25             var maxSize4Pin = 100, minSize4Pin = 20;
 26             // 秋雁南飞:
 27             // 此版本通过设置geoindex && seriesIndex: [1] 属性来实现geo和map共存,来达到hover散点和区域显示tooltip的效果
 28             // 默认情况下,map series 会自己生成内部专用的 geo 组件。但是也可以用这个 geoIndex 指定一个 geo 组件。这样的话,map 和 其他 series(例如散点图)就可以共享一个 geo 组件了。并且,geo 组件的颜色也可以被这个 map series 控制,从而用 visualMap 来更改。
 29             // 当设定了 geoIndex 后,series-map.map 属性,以及 series-map.itemStyle 等样式配置不再起作用,而是采用 geo 中的相应属性。
 30             // http://echarts.baidu.com/option.html#series-map.geoIndex
 31             // 并且加了pin气泡图标以示数值大小
 32             // 全局变量区:参考江西绿色金融(谢谢:本来想用闭包实现接口数据调用,没时间了)
 33 
 34             // 本图作者:参考秋雁南飞的《投票统计》一图,网址:http://gallery.echartsjs.com/editor.html?c=xrJU-aE-LG
 35             var nameColor = "rgb(55, 75, 113)"
 36             var name_fontFamily = '等线'
 37             var name_fontSize = 26;
 38             var maxNum = param.data.sort(function(a, b) {
 39                 return b.value - a.value;
 40             }).slice(0, 1)[0].value;  
 41             var one,two,three,four;
 42             param.data.sort(function(a, b) {
 43                 return b.value - a.value;
 44             }).map((x,index)=>{
 45                 if(index===5){
 46                     one = x.value;
 47                 }
 48                 if(index===14){
 49                     two = x.value;
 50                 }
 51                 if(index===22){
 52                     three = x.value;
 53                 }
 54                 if(index===30){
 55                     four = x.value;
 56                 }
 57             })
 58 
 59             let option = {
 60                 title: {
 61                     text: param.title,
 62                     x: 'center',
 63                     y:20,
 64                     textStyle: {
 65                         color: nameColor,
 66                         fontFamily: name_fontFamily,
 67                         fontSize: name_fontSize
 68                     }
 69                 },
 70                 tooltip: {
 71                     trigger: 'item',
 72                     formatter:function(params) {
 73                         var toolTiphtml = '';
 74                         for(var i = 0;i<param.data.length;i++){
 75                             if(params.name==param.data[i].name){
 76                                 toolTiphtml += (param.data[i].name+':'+param.data[i].value+'')
 77                             }
 78                         }
 79                         return toolTiphtml;
 80                     }
 81                 },
 82                 // visualMap: 
 83                 //     {
 84                 //     show: true,
 85                 //     min: 0,
 86                 //     max: maxNum,
 87                 //     left: 'left',
 88                 //     bottom:100,
 89                 //     text: ['高', '低'], // 文本,默认为数值文本
 90                 //     calculable: true,
 91                 //     seriesIndex: [1],
 92                 //     inRange: {
 93                 //         color: ['#f1f1f1','#c3e5ff','#0aa4dd','#1b57bc']
 94                 //     }
 95                 // },
 96                 /*工具按钮组*/
 97                 toolbox: {
 98                     show: true,
 99                     orient: 'vertical',
100                     right: 20,
101                     top: 'center',
102                     itemGap:20,
103                     feature: {
104                         dataView: {
105                             readOnly: false
106                         },
107                         restore: {},
108                         saveAsImage: {},
109                         myTool1: {  
110                             show: true,  
111                             title: param.startRoam?'关闭缩放':'开启缩放',  
112                             icon: 'path://M444.58034998 309.80516673c9.31358834 0 17.26276527 3.29732647 23.82775732 9.78816585 6.61937049 6.68857977 9.89197942 14.51911231 9.89197942 23.89202248v67.35543407h67.42958671c9.31358834 0 17.23310436 3.2923831 23.84753146 9.98590696 6.56004866 6.59465294 9.87714932 14.5240564 9.8771486 23.79315231 0 9.26909662-3.31710066 17.30231363-9.8771486 23.79315228-6.61442712 6.58970958-14.53394314 9.88703605-23.84753146 9.88703679h-67.42958671v67.45430425c0 9.26909662-3.27260892 17.20344271-9.89692351 23.89696658-6.56004866 6.48589603-14.50922558 9.88703605-23.82281323 9.88703605-9.29875753 0-17.26276527-3.40114076-23.82281391-9.88703605-6.62431458-6.69846723-9.8969235-14.62786996-9.89692351-23.89696658V478.30003747h-67.42958671c-9.31358834 0-17.23310436-3.29732647-23.84258739-9.88703679-6.56004866-6.49083938-9.87714932-14.5240564-9.87714933-23.79315228 0-9.26909662 3.31215729-17.20344271 9.87714933-23.79315231 6.60948377-6.69352312 14.53394314-9.98590625 23.84258739-9.98590696h67.42958671V343.48535506c0-9.37291018 3.27755228-17.20344271 9.89692351-23.89696584 6.56004866-6.48589603 14.5240564-9.7832225 23.82775729-9.7832225z m0-101.13449333c-31.96973123 0-62.47618159 6.17939726-91.63305129 18.63706342-29.15686974 12.4626088-54.24522418 29.25079657-75.32932853 50.36456256-21.0593868 21.0099517-37.81791365 46.14279787-50.31512745 75.28978014-12.45272208 29.14203892-18.69144189 59.73252936-18.69144189 91.65776888s6.23871981 62.51572995 18.69144189 91.66271223c12.4972138 29.04316872 29.25079657 54.17107153 50.31512745 75.28483752 21.08410434 21.0099517 46.17245879 37.79813946 75.32932853 50.25580489a230.69915857 230.69915857 0 0 0 91.63305129 18.74582036 230.6645543 230.6645543 0 0 0 91.63305134-18.74087699c29.16675646-12.4626088 54.25016755-29.25079657 75.32932852-50.26074826 21.06433088-21.11376599 37.83274374-46.24166806 50.29535255-75.28978089 12.47249626-29.14203892 18.71121607-59.73252936 18.71121606-91.65776886s-6.23871981-62.51572995-18.71121606-91.66271223c-12.4626088-29.14203892-29.23102238-54.2748851-50.29535255-75.28483679-21.07916097-21.1088219-46.15762871-37.89700965-75.32932852-50.3596192-29.15686974-12.4626088-59.65343262-18.64200679-91.63305134-18.64200678z m0-67.45924762c41.10535267 0 80.3568863 8.03321702 117.84852773 24.09965034 37.47186724 16.06643404 69.70360479 37.59051161 96.76936601 64.67604774 27.06081786 26.98666522 48.58489543 59.22334684 64.631556 96.71004418 16.03677241 37.48669734 24.09965033 76.72340087 24.09965034 117.8188668 0 35.32638027-5.74436812 69.11038289-17.22816027 101.44593473-11.51839716 32.23173827-27.88144177 61.5863484-49.13856968 87.84631578l191.43279413 191.25482792c6.52050031 6.49083938 9.74367413 14.42024212 9.74367412 23.89696658 0 9.67940821-3.20339964 17.71262524-9.60031219 24.19852126-6.41668674 6.38702511-14.43507293 9.58053802-24.08976361 9.58053801-9.48661118 0-17.4901673-3.29732647-23.96617585-9.78816587l-191.2103362-191.45256829c-26.32423404 21.31644973-55.65412661 37.69432517-87.94518671 49.12373886-32.2910601 11.53817134-66.07011937 17.30231363-101.36683799 17.30231363-41.0806351 0-80.38654793-8.03321702-117.83369762-24.09965105-37.46197978-16.06643404-69.7184356-37.69432517-96.77431008-64.67604703-27.04598776-27.09047876-48.59478289-59.22334684-64.64144203-96.71004417C149.2545795 524.95201713 141.23619257 485.61150076 141.21147503 444.51603484c-0.01977419-40.98670828 8.02332956-80.33216873 24.09965105-117.8188668 16.06643404-37.38782714 37.63500335-69.72337897 64.64144203-96.71004418 27.02621357-27.0855354 59.27278195-48.60961371 96.77431008-64.67604774C364.22346298 149.343513 403.49971416 141.21142578 444.56057582 141.21142578h0.01977416z',  
113                             onclick: function (){  
114                                 param.renew();
115                             }  
116                         },
117                     },
118                     emphasis:{
119                         iconStyle:{
120                             borderColor:'#3B5077'
121                         }
122                     }
123                 },
124                 series: [
125                     // {
126                     //     name: '散点',
127                     //     type: 'scatter',
128                     //     coordinateSystem: 'geo',
129                     //     data: convertData(param.data),
130                     //     symbolSize: 10,
131                     //     label: {
132                     //         normal: {
133                     //             formatter: '{b}',
134                     //             position: 'right',
135                     //             show: false
136                     //         },
137                     //         emphasis: {
138                     //             show: true
139                     //         }
140                     //     },
141                     //     itemStyle: {
142                     //         normal: {
143                     //             color: '#ff0000'
144                     //         }
145                     //     }
146                     // },
147                     // {
148                     //     name: '点',
149                     //     type: 'scatter',
150                     //     coordinateSystem: 'geo',
151                     //     symbol: 'pin', //气泡
152                     //     symbolSize: function(val) {
153                     //         var a = (maxSize4Pin - minSize4Pin) / (max - min);
154                     //         var b = minSize4Pin - a * min;
155                     //         b = maxSize4Pin - a * max;
156                     //         return a * val[2] + b;
157                     //     },
158                     //     label: {
159                     //         normal: {
160                     //             show: false,
161                     //             textStyle: {
162                     //                 color: '#fff',
163                     //                 fontSize: 9,
164                     //             },
165                     //             formatter:function(params) {
166                     //                 return params.value[2];
167                     //             }
168                     //         }
169                     //     },
170                     //     itemStyle: {
171                     //         normal: {
172                     //             color: '#F62157', //标志颜色
173                     //         }
174                     //     },
175                     //     zlevel: 6,
176                     //     data: convertData(param.data),
177                     // },
178                     {
179                         name: 'Top 5',
180                         type: 'effectScatter',
181                         coordinateSystem: 'geo',
182                         data: convertData(param.data.sort(function(a, b) {
183                             return b.value - a.value;
184                         }).slice(0, 5)),
185                         symbolSize: 10,
186                         showEffectOn: 'render',
187                         rippleEffect: {
188                             brushType: 'stroke'
189                         },
190                         hoverAnimation: true,
191                         label: {
192                             normal: {
193                                 show: false
194                             }
195                         },
196                         itemStyle: {
197                             normal: {
198                                 borderColor:'yellow',
199                                 shadowBlur: 10,
200                                 shadowColor: 'yellow'
201                             },
202                             emphasis:{
203 
204                             }
205                         },
206                         zlevel:1
207                     },
208                     {
209                         type: 'map',
210                         map: param.mapName,
211                         geoIndex: 0,
212                         aspectScale: 0.75, //长宽比
213                         showLegendSymbol: false, // 存在legend时显示
214                         label: {
215                             normal: {
216                                 show: true
217                             },
218                             emphasis: {
219                                 show: false,
220                                 textStyle: {
221                                     color: '#fff'
222                                 }
223                             }
224                         },
225                         roam: param.startRoam,
226                         animation: false,
227                         data: param.data
228                     },
229                 ],
230                 dataRange: {
231                     x: 'left',
232                     y: 'bottom',
233                     splitList: [
234                         {start: one},
235                         {start: two, end: one},
236                         {start: three, end: two},
237                         {start: four, end: three},
238                         {end: four}
239                     ],
240                     color: ['#1678e7','#33a6ff','#70c1fe','#b0deff','#e1f2ff']
241                 },
242                 geo: {
243                     show: true,
244                     map: param.mapName,
245                     label: {
246                         normal: {
247                             show: false
248                         },
249                         emphasis: {
250                             show: false,
251                         }
252                     },
253                     roam: param.startRoam,
254                     itemStyle: {
255                         normal: {
256                             areaColor: '#f1f1f1',//角落图
257                             borderColor: '#666',
258                         },
259                         emphasis: {
260                             areaColor: '#FFB321',
261                         }
262                     }
263                 },
264             }
265             return option;
266         }
267     }

环形图.js

 1 export default {
 2     /**
 3      * 环形图
 4      * name  名称
 5      * value 已有值
 6      * all   总值
 7      * color 颜色
 8      */
 9     doughnut(query) {
10         let option = {
11             title: {
12                 text: [
13                     `{a|${query.value}}`,
14                     `{b| / ${query.all}}`
15                 ].join(''),
16                 textStyle: {
17                     color: query.color,
18                     rich: {
19                         a: {
20                             fontSize: 20,
21                             color: query.color
22                         },
23                         b: {
24                             fontSize: 12,
25                             color: '#666'
26                         }
27                     }
28                 },
29                 x: 'center',
30                 y: 'center',
31             },
32             legend: {
33                 bottom:0,
34                 show: true,
35                 itemGap: 12,
36                 data: [query.name]
37             },
38             series: [{
39                 name: 'Line 1',
40                 type: 'pie',
41                 clockWise: true,
42                 radius: ['50%', '66%'],
43                 label: {
44                     show: false
45                 },
46                 labelLine: {
47                     show: false
48                 },
49                 hoverAnimation: false,
50                 cursor:'auto',
51                 data: [{
52                     value: query.value,
53                     name: query.name,
54                     itemStyle: {
55                         normal: {
56                             color:query.color
57                         },
58                         emphasis:{
59                             color:query.color
60                         }
61                     }
62                 }, {
63                     name: '02',
64                     value: query.all>0?(query.all-query.value):null,
65                     itemStyle: {
66                         normal: {
67                             color:'#efefef'
68                         },
69                         emphasis:{
70                             color:'#efefef'
71                         }
72                     }
73                 }]
74             }]
75         };
76         return option;
77     }
78 }

柱状图.js

  1 export default {
  2     /**
  3      * 柱状图
  4      * title 标题
  5      * xData x轴数据
  6      * xName x轴名字
  7      * yData y轴数据
  8      * yTotal 总量
  9      */
 10     bar(param) {
 11         var xData = param.xData;
 12         var data = param.yData
 13         var yMax = (200/data.length)+'%';
 14         //var yMax =100;
 15         var dataShadow = param.yTotal;
 16 
 17         let option = {
 18             title: {
 19                 text: param.title,
 20                 x: 'center',
 21                 y: '10px',
 22                 textStyle: {
 23                     fontSize: 18,
 24                     color: '#000'
 25                 }
 26 
 27             },
 28             tooltip: {
 29                 show: true
 30             },
 31             xAxis: {
 32                 name: param.xName,
 33                 nameTextStyle: {
 34                     color: ['#000'],
 35                 },
 36                 data: xData,
 37                 axisLabel: {
 38                     interval:'0',  //zcg 
 39                     rotate:-20,     //倾斜度
 40                     textStyle: {
 41                         color: '#000'           
 42                     }
 43                 },
 44                 axisTick: {
 45                     show: false
 46                 },
 47                 axisLine: {
 48                     show: false
 49                 },
 50                 z: 10
 51             },
 52             yAxis: {
 53                 name: '',
 54                 nameTextStyle: {
 55                     color: ['#000']
 56                 },
 57                 axisLine: {
 58                     //show: false
 59                     lineStyle: {
 60                         color: ['#ddd']
 61                     }
 62                 },
 63                 axisTick: {
 64                     show: false
 65                 },
 66                 splitLine: {
 67                     lineStyle: {
 68                         color: ['#ddd']
 69                     }
 70                 },
 71                 axisLabel: {
 72                     textStyle: {
 73                         color: '#000'
 74                     }
 75                 }
 76             },
 77             grid: {
 78                 y2: '60px'  //zcg  x轴文字的高度
 79             },
 80             series: [
 81                 { // For shadow
 82                     type: 'bar',
 83                     itemStyle: {
 84                         normal: { color: '#ddd' }
 85                     },
 86                     barGap: '-100%',
 87                     barCategoryGap: '-10%',
 88                     barMaxWidth: yMax,
 89                     data: dataShadow,
 90                     animation: false,
 91                 },
 92                 {
 93                     type: 'bar',
 94                     barMaxWidth: yMax,
 95                     itemStyle: {
 96                         normal: {
 97                             color: "#7baaf3"
 98                         },
 99                         emphasis: {
100                             color: "#5e96e9"
101                         }
102                     },
103                     data: data
104                 }
105             ]
106         };
107         return option;
108     }
109 }
原文地址:https://www.cnblogs.com/it-Ren/p/10942263.html