| <!DOCTYPE html> | 
 | <!-- | 
 | Licensed to the Apache Software Foundation (ASF) under one | 
 | or more contributor license agreements.  See the NOTICE file | 
 | distributed with this work for additional information | 
 | regarding copyright ownership.  The ASF licenses this file | 
 | to you under the Apache License, Version 2.0 (the | 
 | "License"); you may not use this file except in compliance | 
 | with the License.  You may obtain a copy of the License at | 
 |  | 
 |    http://www.apache.org/licenses/LICENSE-2.0 | 
 |  | 
 | Unless required by applicable law or agreed to in writing, | 
 | software distributed under the License is distributed on an | 
 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
 | KIND, either express or implied.  See the License for the | 
 | specific language governing permissions and limitations | 
 | under the License. | 
 | --> | 
 |  | 
 |  | 
 | <html> | 
 |     <head> | 
 |         <meta charset="utf-8"> | 
 |         <meta name="viewport" content="width=device-width, initial-scale=1" /> | 
 |         <script src="lib/simpleRequire.js"></script> | 
 |         <script src="lib/config.js"></script> | 
 |         <script src="lib/jquery.min.js"></script> | 
 |         <script src="lib/facePrint.js"></script> | 
 |         <script src="lib/testHelper.js"></script> | 
 |         <!-- <script src="ut/lib/canteen.js"></script> --> | 
 |         <link rel="stylesheet" href="lib/reset.css" /> | 
 |     </head> | 
 |     <body> | 
 |         <style> | 
 |         </style> | 
 |  | 
 |  | 
 |  | 
 |         <div id="main0"></div> | 
 |         <div id="main1"></div> | 
 |         <div id="main2"></div> | 
 |  | 
 |  | 
 |         <!-- TODO: Tree, Sankey, Map  --> | 
 |         <div id="main3"></div> | 
 |         <div id="main4"></div> | 
 |         <div id="main5"></div> | 
 |         <div id="main6"></div> | 
 |         <div id="main7"></div> | 
 |         <div id="main8"></div> | 
 |         <div id="main9"></div> | 
 |         <div id="main10"></div> | 
 |         <div id="main11"></div> | 
 |         <div id="main12"></div> | 
 |         <div id="main13"></div> | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |         require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
 |             var option; | 
 |             option = { | 
 |                 legend: { | 
 |                     data: ['直接访问', '邮件营销','联盟广告','视频广告','搜索引擎'] | 
 |                 }, | 
 |                 grid: { | 
 |                     left: '3%', | 
 |                     right: '4%', | 
 |                     bottom: '3%', | 
 |                     containLabel: true | 
 |                 }, | 
 |                 xAxis:  { | 
 |                     type: 'value' | 
 |                 }, | 
 |                 yAxis: { | 
 |                     type: 'category', | 
 |                     data: ['周一','周二','周三','周四','周五','周六','周日'] | 
 |                 }, | 
 |                 series: [ | 
 |                     { | 
 |                         name: '直接访问', | 
 |                         type: 'bar', | 
 |                         stack: '总量', | 
 |                         label: { | 
 |                             show: true | 
 |                         }, | 
 |                         labelLayout: { | 
 |                             hideOverlap: true | 
 |                         }, | 
 |                         emphasis: { | 
 |                             focus: 'series' | 
 |                         }, | 
 |                         data: [13244, 302, 301, 334, 390, 330, 320] | 
 |                     }, | 
 |                     { | 
 |                         name: '邮件营销', | 
 |                         type: 'bar', | 
 |                         stack: '总量', | 
 |                         label: { | 
 |                             show: true | 
 |                         }, | 
 |                         labelLayout: { | 
 |                             hideOverlap: true | 
 |                         }, | 
 |                         emphasis: { | 
 |                             focus: 'series' | 
 |                         }, | 
 |                         data: [120, 132, 101, 134, 90, 230, 210] | 
 |                     }, | 
 |                     { | 
 |                         name: '联盟广告', | 
 |                         type: 'bar', | 
 |                         stack: '总量', | 
 |                         label: { | 
 |                             show: true | 
 |                         }, | 
 |                         labelLayout: { | 
 |                             hideOverlap: true | 
 |                         }, | 
 |                         emphasis: { | 
 |                             focus: 'series' | 
 |                         }, | 
 |                         data: [220, 182, 191, 234, 290, 330, 310] | 
 |                     }, | 
 |                     { | 
 |                         name: '视频广告', | 
 |                         type: 'bar', | 
 |                         stack: '总量', | 
 |                         label: { | 
 |                             show: true | 
 |                         }, | 
 |                         labelLayout: { | 
 |                             hideOverlap: true | 
 |                         }, | 
 |                         emphasis: { | 
 |                             focus: 'series' | 
 |                         }, | 
 |                         data: [150, 212, 201, 154, 190, 330, 410] | 
 |                     }, | 
 |                     { | 
 |                         name: '搜索引擎', | 
 |                         type: 'bar', | 
 |                         stack: '总量', | 
 |                         label: { | 
 |                             show: true | 
 |                         }, | 
 |                         labelLayout: { | 
 |                             hideOverlap: true | 
 |                         }, | 
 |                         emphasis: { | 
 |                             focus: 'series' | 
 |                         }, | 
 |                         data: [820, 832, 901, 934, 1290, 1330, 1320] | 
 |                     } | 
 |                 ] | 
 |             } | 
 |             var chart = testHelper.create(echarts, 'main0', { | 
 |                 title: [ | 
 |                     'Overlap of stacked bar.', | 
 |                     'Case from #6514' | 
 |                 ], | 
 |                 option: option | 
 |             }); | 
 |         }); | 
 |         </script> | 
 |  | 
 |  | 
 |         <script> | 
 |             require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
 |                 var option; | 
 |                 var base = +new Date(1968, 9, 3); | 
 |                 var oneDay = 24 * 3600 * 1000; | 
 |                 var date = []; | 
 |  | 
 |                 var data = [Math.round(Math.random() * 300)]; | 
 |  | 
 |                 for (var i = 1; i < 50; i++) { | 
 |                     var now = new Date(base += oneDay); | 
 |                     date.push([now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/')); | 
 |                     data.push(Math.round((Math.random() - 0.5) * 20 + data[i - 1])); | 
 |                 } | 
 |                 option = { | 
 |                     grid: { | 
 |                         containLabel: true | 
 |                     }, | 
 |                     xAxis: { | 
 |                         type: 'category', | 
 |                         boundaryGap: false, | 
 |                         data: date | 
 |                     }, | 
 |                     yAxis: { | 
 |                         type: 'value', | 
 |                         boundaryGap: [0, '100%'] | 
 |                     }, | 
 |                     series: [ | 
 |                         { | 
 |                             name:'large area', | 
 |                             type:'line', | 
 |                             smooth:true, | 
 |                             label: { | 
 |                                 show: true, | 
 |                                 position: 'top' | 
 |                             }, | 
 |                             labelLayout: { | 
 |                                 hideOverlap: true | 
 |                             }, | 
 |                             itemStyle: { | 
 |                                 color: 'rgb(255, 70, 131)' | 
 |                             }, | 
 |                             areaStyle: { | 
 |                                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ | 
 |                                     offset: 0, | 
 |                                     color: 'rgb(255, 158, 68)' | 
 |                                 }, { | 
 |                                     offset: 1, | 
 |                                     color: 'rgb(255, 70, 131)' | 
 |                                 }]) | 
 |                             }, | 
 |                             data: data | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |                 var chart = testHelper.create(echarts, 'main1', { | 
 |                     width: 600, | 
 |                     title: [ | 
 |                         'Overlap of line.' | 
 |                     ], | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
 |  | 
 |                 const data = [{ | 
 |                     "name": "United States", | 
 |                     "value": [213242, 22.86439111423725, "United States"] | 
 |                 }, { | 
 |                     "name": "Italy", | 
 |                     "value": [110574, 11.856047040759652, "Italy"] | 
 |                 }, { | 
 |                     "name": "Spain", | 
 |                     "value": [104118, 11.163817043697554, "Spain"] | 
 |                 }, { | 
 |                     "name": "China", | 
 |                     "value": [82361, 8.830971931231625, "China"] | 
 |                 }, { | 
 |                     "name": "Germany", | 
 |                     "value": [77872, 8.349649059978255, "Germany"] | 
 |                 }, { | 
 |                     "name": "France", | 
 |                     "value": [57749, 6.192005901539504, "France"] | 
 |                 }, { | 
 |                     "name": "Iran", | 
 |                     "value": [47593, 5.103051773571311, "Iran"] | 
 |                 }, { | 
 |                     "name": "United Kingdom", | 
 |                     "value": [29865, 3.202207072840695, "United Kingdom"] | 
 |                 }, { | 
 |                     "name": "Switzerland", | 
 |                     "value": [17768, 1.905133610253925, "Switzerland"] | 
 |                 }, { | 
 |                     "name": "Turkey", | 
 |                     "value": [15679, 1.6811453103991045, "Turkey"] | 
 |                 }, { | 
 |                     "name": "Belgium", | 
 |                     "value": [13964, 1.4972583145872247, "Belgium"] | 
 |                 }, { | 
 |                     "name": "Netherlands", | 
 |                     "value": [13696, 1.4685226207810533, "Netherlands"] | 
 |                 }, { | 
 |                     "name": "Austria", | 
 |                     "value": [10711, 1.1484627476041078, "Austria"] | 
 |                 }, { | 
 |                     "name": "Korea, South", | 
 |                     "value": [9887, 1.0601112114239395, "Korea, South"] | 
 |                 }, { | 
 |                     "name": "Canada", | 
 |                     "value": [9560, 1.0250493760708872, "Canada"] | 
 |                 }, { | 
 |                     "name": "Portugal", | 
 |                     "value": [8251, 0.8846948119205952, "Portugal"] | 
 |                 }, { | 
 |                     "name": "Brazil", | 
 |                     "value": [6836, 0.7329746375335339, "Brazil"] | 
 |                 }, { | 
 |                     "name": "Israel", | 
 |                     "value": [6092, 0.6532009203999837, "Israel"] | 
 |                 }, { | 
 |                     "name": "Sweden", | 
 |                     "value": [4947, 0.5304308852952593, "Sweden"] | 
 |                 }, { | 
 |                     "name": "Norway", | 
 |                     "value": [4863, 0.52142417529631, "Norway"] | 
 |                 }, { | 
 |                     "name": "Australia", | 
 |                     "value": [4862, 0.5213169525582273, "Australia"] | 
 |                 }, { | 
 |                     "name": "Czechia", | 
 |                     "value": [3508, 0.37613736519421254, "Czechia"] | 
 |                 }, { | 
 |                     "name": "Ireland", | 
 |                     "value": [3447, 0.3695967781711661, "Ireland"] | 
 |                 }, { | 
 |                     "name": "Denmark", | 
 |                     "value": [3290, 0.35276280829217765, "Denmark"] | 
 |                 }, { | 
 |                     "name": "Chile", | 
 |                     "value": [3031, 0.3249921191287509, "Chile"] | 
 |                 }, { | 
 |                     "name": "Malaysia", | 
 |                     "value": [2908, 0.31180372234457526, "Malaysia"] | 
 |                 }, { | 
 |                     "name": "Russia", | 
 |                     "value": [2777, 0.2977575436557378, "Russia"] | 
 |                 }, { | 
 |                     "name": "Ecuador", | 
 |                     "value": [2748, 0.29464808425133865, "Ecuador"] | 
 |                 }, { | 
 |                     "name": "Poland", | 
 |                     "value": [2554, 0.2738468730632893, "Poland"] | 
 |                 }, { | 
 |                     "name": "Romania", | 
 |                     "value": [2460, 0.2637679356835128, "Romania"] | 
 |                 }]; | 
 |  | 
 |                 var option = { | 
 |                     backgroundColor: '#333', | 
 |                     visualMap: { | 
 |                         dimension: 0, | 
 |                         left: 10, | 
 |                         itemWidth: 12, | 
 |                         min: data[29].value[0], | 
 |                         max: data[0].value[0], | 
 |                         text: ['High', 'Low'], | 
 |                         textStyle: { | 
 |                             color: '#ddd' | 
 |                         }, | 
 |                         inRange: { | 
 |                             color: ['lightskyblue', 'yellow', 'orangered', 'red'] | 
 |                         } | 
 |                     }, | 
 |                     series: [{ | 
 |                         type: 'pie', | 
 |                         data: data, | 
 |                         roseType: 'radius', | 
 |                         radius: ['30%', '70%'], | 
 |                         labelLine: { | 
 |                             length2: 100 | 
 |                         }, | 
 |                         labelLayout: function (params) { | 
 |                             const cx = window.innerWidth / 2; | 
 |                             const isLeft = params.labelRect.x < cx; | 
 |                             return isLeft ? { | 
 |                                 x: cx - 200, | 
 |                                 align: 'right', | 
 |                             } : { | 
 |                                 x: cx + 100, | 
 |                                 align: 'left' | 
 |                             }; | 
 |                         } | 
 |                     }] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'main2', { | 
 |                     title: 'Pie label edge.', | 
 |                     height: 300, | 
 |                     option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |         <script> | 
 |             require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
 |                 option = { | 
 |                     tooltip: { | 
 |                         trigger: 'item', | 
 |                         formatter: '{a} <br/>{b}: {c} ({d}%)' | 
 |                     }, | 
 |                     legend: { | 
 |                         orient: 'vertical', | 
 |                         left: 10, | 
 |                         data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎'] | 
 |                     }, | 
 |                     series: [ | 
 |                         { | 
 |                             name: '访问来源', | 
 |                             type: 'pie', | 
 |                             radius: ['50%', '70%'], | 
 |                             label: { | 
 |                                 color: 'inherit', | 
 |                                 show: false | 
 |                             }, | 
 |                             emphasis: { | 
 |                                 label: { | 
 |                                     show: true, | 
 |                                     fontSize: 30, | 
 |                                     fontWeight: 'bold' | 
 |                                 } | 
 |                             }, | 
 |                             labelLayout: { | 
 |                                 x: '50%', | 
 |                                 y: '50%', | 
 |                                 align: 'center', | 
 |                                 verticalAlign: 'center' | 
 |                             }, | 
 |                             labelLine: { | 
 |                                 show: false | 
 |                             }, | 
 |                             data: [ | 
 |                                 {value: 335, name: '直接访问'}, | 
 |                                 {value: 310, name: '邮件营销'}, | 
 |                                 {value: 234, name: '联盟广告'}, | 
 |                                 {value: 135, name: '视频广告'}, | 
 |                                 {value: 1548, name: '搜索引擎'} | 
 |                             ] | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'main3', { | 
 |                     title: [ | 
 |                         'Pie label center.' | 
 |                     ], | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |         <script> | 
 |             require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
 |                 var option; | 
 |                 var data = [ | 
 |                     [[28604,77,17096869,'Australia',1990],[31163,77.4,27662440,'Canada',1990],[1516,68,1154605773,'China',1990],[13670,74.7,10582082,'Cuba',1990],[28599,75,4986705,'Finland',1990],[29476,77.1,56943299,'France',1990],[31476,75.4,78958237,'Germany',1990],[28666,78.1,254830,'Iceland',1990],[1777,57.7,870601776,'India',1990],[29550,79.1,122249285,'Japan',1990],[2076,67.9,20194354,'North Korea',1990],[12087,72,42972254,'South Korea',1990],[24021,75.4,3397534,'New Zealand',1990],[43296,76.8,4240375,'Norway',1990],[10088,70.8,38195258,'Poland',1990],[19349,69.6,147568552,'Russia',1990],[10670,67.3,53994605,'Turkey',1990],[26424,75.7,57110117,'United Kingdom',1990],[37062,75.4,252847810,'United States',1990]], | 
 |                     [[44056,81.8,23968973,'Australia',2015],[43294,81.7,35939927,'Canada',2015],[13334,76.9,1376048943,'China',2015],[21291,78.5,11389562,'Cuba',2015],[38923,80.8,5503457,'Finland',2015],[37599,81.9,64395345,'France',2015],[44053,81.1,80688545,'Germany',2015],[42182,82.8,329425,'Iceland',2015],[5903,66.8,1311050527,'India',2015],[36162,83.5,126573481,'Japan',2015],[1390,71.4,25155317,'North Korea',2015],[34644,80.7,50293439,'South Korea',2015],[34186,80.6,4528526,'New Zealand',2015],[64304,81.6,5210967,'Norway',2015],[24787,77.3,38611794,'Poland',2015],[23038,73.13,143456918,'Russia',2015],[19360,76.5,78665830,'Turkey',2015],[38225,81.4,64715810,'United Kingdom',2015],[53354,79.1,321773631,'United States',2015]] | 
 |                 ]; | 
 |  | 
 |                 option = { | 
 |                     xAxis: {}, | 
 |                     yAxis: { | 
 |                         scale: true | 
 |                     }, | 
 |                     series: [{ | 
 |                         name: '1990', | 
 |                         data: data[0], | 
 |                         type: 'scatter', | 
 |                         symbolSize: function (data) { | 
 |                             return Math.sqrt(data[2]) / 5e2; | 
 |                         }, | 
 |                         emphasis: { | 
 |                             focus: 'self' | 
 |                         }, | 
 |                         labelLayout: { | 
 |                             y: 20, | 
 |                             align: 'center', | 
 |                             moveOverlap: 'shiftX', | 
 |                             hideOverlap: true | 
 |                         }, | 
 |                         labelLine: { | 
 |                             show: true, | 
 |                             length2: 5, | 
 |                             lineStyle: { | 
 |                                 color: '#bbb' | 
 |                             } | 
 |                         }, | 
 |                         label: { | 
 |                             show: true, | 
 |                             formatter: function (param) { | 
 |                                 return param.data[3]; | 
 |                             }, | 
 |                             minMargin: 10, | 
 |                             color: '#333', | 
 |                             textBorderColor: '#fff', | 
 |                             textBorderWidth: 1, | 
 |                             position: 'top' | 
 |                         } | 
 |                     }] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'main6', { | 
 |                     title: [ | 
 |                         'Overlap Shift X' | 
 |                     ], | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |         <script> | 
 |             require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
 |                 var option; | 
 |                 var data = [ | 
 |                     [[28604,77,17096869,'Australia',1990],[31163,77.4,27662440,'Canada',1990],[1516,68,1154605773,'China',1990],[13670,74.7,10582082,'Cuba',1990],[28599,75,4986705,'Finland',1990],[29476,77.1,56943299,'France',1990],[31476,75.4,78958237,'Germany',1990],[28666,78.1,254830,'Iceland',1990],[1777,57.7,870601776,'India',1990],[29550,79.1,122249285,'Japan',1990],[2076,67.9,20194354,'North Korea',1990],[12087,72,42972254,'South Korea',1990],[24021,75.4,3397534,'New Zealand',1990],[43296,76.8,4240375,'Norway',1990],[10088,70.8,38195258,'Poland',1990],[19349,69.6,147568552,'Russia',1990],[10670,67.3,53994605,'Turkey',1990],[26424,75.7,57110117,'United Kingdom',1990],[37062,75.4,252847810,'United States',1990]], | 
 |                     [[44056,81.8,23968973,'Australia',2015],[43294,81.7,35939927,'Canada',2015],[13334,76.9,1376048943,'China',2015],[21291,78.5,11389562,'Cuba',2015],[38923,80.8,5503457,'Finland',2015],[37599,81.9,64395345,'France',2015],[44053,81.1,80688545,'Germany',2015],[42182,82.8,329425,'Iceland',2015],[5903,66.8,1311050527,'India',2015],[36162,83.5,126573481,'Japan',2015],[1390,71.4,25155317,'North Korea',2015],[34644,80.7,50293439,'South Korea',2015],[34186,80.6,4528526,'New Zealand',2015],[64304,81.6,5210967,'Norway',2015],[24787,77.3,38611794,'Poland',2015],[23038,73.13,143456918,'Russia',2015],[19360,76.5,78665830,'Turkey',2015],[38225,81.4,64715810,'United Kingdom',2015],[53354,79.1,321773631,'United States',2015]] | 
 |                 ]; | 
 |  | 
 |                 option = { | 
 |                     xAxis: { | 
 |                         splitLine: { show: false } | 
 |                     }, | 
 |                     yAxis: { | 
 |                         splitLine: { show: false }, | 
 |                         scale: true | 
 |                     }, | 
 |                     grid: { | 
 |                         left: 100, | 
 |                         width: 300 | 
 |                     }, | 
 |                     series: [{ | 
 |                         name: '1990', | 
 |                         data: data[0], | 
 |                         type: 'scatter', | 
 |                         symbolSize: function (data) { | 
 |                             return Math.sqrt(data[2]) / 5e2; | 
 |                         }, | 
 |                         emphasis: { | 
 |                             focus: 'self' | 
 |                         }, | 
 |                         labelLayout: { | 
 |                             x: 500, | 
 |                             moveOverlap: 'shiftY', | 
 |                             // hideOverlap: true | 
 |                         }, | 
 |                         labelLine: { | 
 |                             show: true, | 
 |                             length2: 5, | 
 |                             lineStyle: { | 
 |                                 color: '#bbb' | 
 |                             } | 
 |                         }, | 
 |                         label: { | 
 |                             show: true, | 
 |                             formatter: function (param) { | 
 |                                 return param.data[3]; | 
 |                             }, | 
 |                             textBorderColor: '#fff', | 
 |                             textBorderWidth: 1, | 
 |                             position: 'top', | 
 |                             minMargin: 2 | 
 |                         } | 
 |                     }] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'main7', { | 
 |                     title: [ | 
 |                         'Overlap Shift Y' | 
 |                     ], | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |         <script> | 
 |             require(['echarts'], function (echarts) { | 
 |                 const color = [ | 
 |                     '#1576d2', | 
 |                     '#d14a82', | 
 |                     '#26c1f2', | 
 |                     '#a166ff', | 
 |                     '#1271cc', | 
 |                     '#272f67' | 
 |                 ]; | 
 |                 let data = [{ | 
 |                         name: 'Mon', | 
 |                         value: 182 | 
 |                     }, | 
 |                     { | 
 |                         name: 'Tue', | 
 |                         value: 191 | 
 |                     }, | 
 |                     { | 
 |                         name: 'Wed', | 
 |                         value: 234 | 
 |                     }, | 
 |                     { | 
 |                         name: 'Thu', | 
 |                         value: 290 | 
 |                     }, | 
 |                     { | 
 |                         name: 'Fri', | 
 |                         value: 330 | 
 |                     } | 
 |                 ]; | 
 |  | 
 |                 // 指定数据块中 label 的相应效果,以保证label的正常显示 | 
 |                 const dataArcStyle = { | 
 |                     label: { | 
 |                         show: true | 
 |                     }, | 
 |                     labelLine: { | 
 |                         show: true | 
 |                     }, | 
 |                     emphasis: { | 
 |                         labelLine: { | 
 |                             show: true | 
 |                         } | 
 |                     } | 
 |                 } | 
 |                 data = data.map(d => { | 
 |                     d = Object.assign(d, dataArcStyle) | 
 |                     return d; | 
 |                 }); | 
 |  | 
 |                 const sum = data.reduce((prev, curr) => prev + curr.value, 0); | 
 |                 data.push({ | 
 |                     name: null, | 
 |                     value: sum, | 
 |                     itemStyle: { | 
 |                         opacity: 0 | 
 |                     }, | 
 |                     label: { | 
 |                         show: false | 
 |                     }, | 
 |                     tooltip: { | 
 |                         show: false | 
 |                     } | 
 |                 }); | 
 |  | 
 |                 option = { | 
 |                     backgroundColor: '#000', | 
 |                     color, | 
 |                     tooltip: { | 
 |                         show: true | 
 |                     }, | 
 |                     series: [{ | 
 |                         type: 'pie', | 
 |                         center: ['50%', '75%'], | 
 |                         radius: ['50%', '80%'], | 
 |                         startAngle: 180, | 
 |                         data | 
 |                     }] | 
 |                 }; | 
 |                 var chart = testHelper.create(echarts, 'main8', { | 
 |                     title: [ | 
 |                         'Case from https://gallery.echartsjs.com/editor.html?c=xFcvAMHjr1&v=1' | 
 |                     ], | 
 |                     option: option, | 
 |                     height: 500 | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |         <script> | 
 |             require(['echarts', 'map/js/china'], function (echarts) { | 
 |                 option = { | 
 |                     series: [{ | 
 |                         type: 'map', | 
 |                         map: 'china', | 
 |                         label: { | 
 |                             show: false, | 
 |                             formatter: [ | 
 |                                 `{title|{b}}`, | 
 |                                 `{value|{c} K 平方公里}` | 
 |                             ].join('\n'), | 
 |                             backgroundColor: '#eee', | 
 |                             borderColor: '#17A597', | 
 |                             borderWidth: 1, | 
 |                             borderRadius: 4, | 
 |                             align: 'center', | 
 |                             width: 150, | 
 |                             rich: { | 
 |                                 title: { | 
 |                                     align: 'center', | 
 |                                     lineHeight: 17, | 
 |                                     fontSize: 12, | 
 |                                     color: '#fff', | 
 |                                     backgroundColor: '#17A597', | 
 |                                     width: 150, | 
 |                                     height: 20, | 
 |                                     borderRadius: [4, 4, 0, 0] | 
 |                                 }, | 
 |                                 value: { | 
 |                                     align: 'center', | 
 |                                     height: 25 | 
 |                                 } | 
 |                             } | 
 |                         }, | 
 |                         labelLine: { | 
 |                             show: true, | 
 |                             showAbove: true, | 
 |                             length2: 10 | 
 |                         }, | 
 |                         labelLayout: function (params) { | 
 |                             const positionMap = [ | 
 |                                 // 内蒙古 | 
 |                                 (params) => { return { y: params.rect.y - 20, align: 'center' } }, | 
 |                                 // 上海 | 
 |                                 (params) => { return { x: params.rect.x + 50, align: 'left' } } | 
 |                             ] | 
 |                             return positionMap[params.dataIndex] && Object.assign({ | 
 |                                 draggable: true | 
 |                             }, positionMap[params.dataIndex](params)); | 
 |                         }, | 
 |                         emphasis: { | 
 |                             label: { | 
 |                                 show: false | 
 |                             } | 
 |                         }, | 
 |                         data: [{ | 
 |                             name: '内蒙古', | 
 |                             value: 118.3, | 
 |                             label: { | 
 |                                 show: true | 
 |                             } | 
 |                         }, { | 
 |                             name: '上海', | 
 |                             value: 6.34, | 
 |                             label: { | 
 |                                 show: true | 
 |                             } | 
 |                         }] | 
 |                     }] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'main9', { | 
 |                     title: [ | 
 |                         'Draggable label' | 
 |                     ], | 
 |                     option: option, | 
 |                     height: 500 | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts', | 
 |                 'extension/dataTool', | 
 |                 './data/les-miserables.gexf' | 
 |             ], function (echarts, dataTool, xml) { | 
 |                 var graph = dataTool.gexf.parse(xml); | 
 |                 var categories = []; | 
 |                 for (var i = 0; i < 9; i++) { | 
 |                     categories[i] = { | 
 |                         name: '类目' + i | 
 |                     }; | 
 |                 } | 
 |                 graph.nodes.forEach(function (node) { | 
 |                     delete node.itemStyle; | 
 |                     node.value = node.symbolSize; | 
 |                     node.category = node.attributes['modularity_class']; | 
 |                 }); | 
 |                 graph.links.forEach(function (link) { | 
 |                     delete link.lineStyle; | 
 |                 }); | 
 |                 var option = { | 
 |                     legend: [{}], | 
 |                     animationDurationUpdate: 1500, | 
 |                     animationEasingUpdate: 'quinticInOut', | 
 |  | 
 |                     series : [ | 
 |                         { | 
 |                             name: 'Les Miserables', | 
 |                             type: 'graph', | 
 |                             layout: 'none', | 
 |                             data: graph.nodes, | 
 |                             links: graph.links, | 
 |                             categories: categories, | 
 |                             roam: true, | 
 |                             draggable: true, | 
 |  | 
 |                             label: { | 
 |                                 show: true, | 
 |                                 formatter: '{b}', | 
 |                                 position: 'right' | 
 |                             }, | 
 |  | 
 |                             labelLayout: { | 
 |                                 hideOverlap: true | 
 |                             }, | 
 |  | 
 |                             emphasis: { | 
 |                                 label: { | 
 |                                     show: true | 
 |                                 } | 
 |                             }, | 
 |                             lineStyle: { | 
 |                                 color: 'source', | 
 |                                 curveness: 0.3 | 
 |                             }, | 
 |                             emphasis: { | 
 |                                 lineStyle: { | 
 |                                     width: 10 | 
 |                                 } | 
 |                             } | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'main10', { | 
 |                     title: [ | 
 |                         'Hide overlap in graph zooming.' | 
 |                     ], | 
 |                     height: 800, | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |         <script> | 
 |             require(['echarts', 'map/js/china'], function (echarts) { | 
 |                 const option = { | 
 |                     series: [{ | 
 |                         type: 'map', | 
 |                         map: 'china', | 
 |                         roam: true, | 
 |                         label: { | 
 |                             show: true | 
 |                         }, | 
 |                         labelLayout: { | 
 |                             hideOverlap: true | 
 |                         } | 
 |                     }] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'main11', { | 
 |                     title: [ | 
 |                         'Map label should update it\'s position when labelLayout is used.' | 
 |                     ], | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |         <script> | 
 |         require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
 |             const svg = [ | 
 |                 '<?xml version="1.0" encoding="utf-8"?>', | 
 |                 '<svg viewBox="-25 0 300 100" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" fill-rule="evenodd" xml:space="preserve">', | 
 |                 '<path name="left_rect" d="M 0,0 L 0,100 100,100 100,0 Z" fill="#765" stroke="rgb(56,93,138)" stroke-width="0" stroke-linecap="square" stroke-linejoin="miter"/>', | 
 |                 '<path name="right_rect" d="M 150,0 L 150,100 250,100 250,0 Z" fill="#567" stroke="rgb(56,93,138)" stroke-width="0" stroke-linecap="square" stroke-linejoin="miter"/>', | 
 |                 '</svg>' | 
 |             ].join('') | 
 |  | 
 |             echarts.registerMap('testGeoSVG_coord1', { svg: svg }); | 
 |  | 
 |             option = { | 
 |                 series: [{ | 
 |                     type: 'map', | 
 |                     roam: true, | 
 |                     top: 10, | 
 |                     bottom: 10, | 
 |                     left: 10, | 
 |                     right: 10, | 
 |                     selectedMode: 'multiple', | 
 |                     map: 'testGeoSVG_coord1', | 
 |                     select: { | 
 |                         itemStyle: { | 
 |                             color: 'red' | 
 |                         }, | 
 |                         label: { | 
 |                             color: '#fff' | 
 |                         } | 
 |                     }, | 
 |                     label: { | 
 |                         show: true, | 
 |                         fontSize: 30 | 
 |                     }, | 
 |                     labelLayout: { | 
 |                         hideOverlap: true | 
 |                     } | 
 |                 }] | 
 |             }; | 
 |  | 
 |             var chart = testHelper.create(echarts, 'main12', { | 
 |                 title: [ | 
 |                     'Click both rect make them selected (become red)', | 
 |                     '(1) zoom to trigger label **hideOverlap**', | 
 |                     'zoom back, check labels should be restored', | 
 |                     '(2) mouseover one the **right rect** and zoom to trigger label **hideOverlap**', | 
 |                     'zoom back, mouseout, check the label should not disappear' | 
 |                 ], | 
 |                 option: option, | 
 |                 height: 200, | 
 |             }); | 
 |         }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |         require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
 |             const svg = [ | 
 |                 '<?xml version="1.0" encoding="utf-8"?>', | 
 |                 '<svg xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" fill-rule="evenodd" xml:space="preserve">', | 
 |                 '<path name="left_rect" d="M 0,0 L 0,100 100,100 100,0 Z" fill="#765" stroke="rgb(56,93,138)" stroke-width="0" stroke-linecap="square" stroke-linejoin="miter"/>', | 
 |                 '</svg>' | 
 |             ].join('') | 
 |  | 
 |             echarts.registerMap('testGeoSVG_coord2', { svg: svg }); | 
 |  | 
 |             option = { | 
 |                 geo: { | 
 |                     map: 'testGeoSVG_coord2', | 
 |                     roam: true | 
 |                 } | 
 |             }; | 
 |  | 
 |             var chart = testHelper.create(echarts, 'main13', { | 
 |                 title: [ | 
 |                     '(geo coordSys) label displayed only on hover', | 
 |                     'zoom: label should keep displayed.' | 
 |                 ], | 
 |                 option: option, | 
 |                 height: 200, | 
 |             }); | 
 |         }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |     </body> | 
 | </html> | 
 |  |