|  | <!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="data/pie-texture.js"></script> | 
|  | <script src="lib/facePrint.js"></script> | 
|  | <script src="lib/testHelper.js"></script> | 
|  | <link rel="stylesheet" href="lib/reset.css" /> | 
|  | </head> | 
|  | <body> | 
|  | <style> | 
|  | .test-title { | 
|  | background: #146402; | 
|  | color: #fff; | 
|  | } | 
|  | </style> | 
|  |  | 
|  |  | 
|  | <div id="main0"></div> | 
|  | <div id="main1"></div> | 
|  | <div id="main2"></div> | 
|  | <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> | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  |  | 
|  | var value2 = 400; | 
|  | var total = 1000; | 
|  |  | 
|  | function getData() { | 
|  | return [{ | 
|  | name: '', | 
|  | value: total - value2, | 
|  | itemStyle: { color: 'rgb(8,90,150)' }, | 
|  | label: { show: false } | 
|  | }, { | 
|  | name: '50%', | 
|  | value: value2, | 
|  | itemStyle: { color: 'rgb(23,235,255)'}, | 
|  | label: { position: 'center', color: '#999', fontSize: '100' } | 
|  | }] | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | animation: false, | 
|  | series: [{ | 
|  | type: 'pie', | 
|  | radius: ['60%','80%'], | 
|  | labelLine: { show: false }, | 
|  | hoverAnimation: false, | 
|  | data: getData() | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main0', { | 
|  | title: 'Label should be always at center of the pie', | 
|  | option: option, | 
|  | info: { | 
|  | data: [{ | 
|  | label: {position: 'center'} | 
|  | }] | 
|  | } | 
|  | }); | 
|  |  | 
|  | setInterval(function () { | 
|  | value2 += 3; | 
|  | if (value2 > total) { | 
|  | value2 = 0; | 
|  | } | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | data: getData() | 
|  | }] | 
|  | }); | 
|  | }, 20); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  |  | 
|  | var count = 80; | 
|  | var data = []; | 
|  | for (var i = 0; i < count; i++) { | 
|  | // var label = i === 30 | 
|  | //     ? { | 
|  | //         position: 'center', | 
|  | //         fontSize: 30, | 
|  | //         color: '#fff' | 
|  | //     } | 
|  | //     : null; | 
|  | data.push({ | 
|  | name: i + 'Something really Random', | 
|  | value: Math.random(), | 
|  | // label: label | 
|  | }); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | series: [{ | 
|  | type: 'pie', | 
|  | radius: '50%', | 
|  | labelLine: { | 
|  | minTurnAngle: 110, | 
|  | length2: 10, | 
|  | smooth: true | 
|  | }, | 
|  | data: data | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main1', { | 
|  | title: 'Too many', | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  |  | 
|  | var count = 60; | 
|  |  | 
|  | function makeData(sign) { | 
|  | var data = []; | 
|  | for (var i = 0; i < count; i++) { | 
|  | var value = Math.random() * 50 * sign; | 
|  | value = +value.toFixed(2); | 
|  |  | 
|  | if (i >= 2 | 
|  | && i <= count - 2 | 
|  | && i % 10 !== 0 | 
|  | // Test the case that the bottom label is normal to display. | 
|  | && Math.abs(i - Math.round(count / 2)) > 2 | 
|  | ) { | 
|  | value = sign > 0 | 
|  | ? value - Math.floor(value) | 
|  | : value - Math.ceil(value); | 
|  | value = +value.toFixed(2); | 
|  | } | 
|  |  | 
|  | data.push({ | 
|  | name: value, | 
|  | value: value | 
|  | }); | 
|  | } | 
|  | return data; | 
|  | } | 
|  |  | 
|  | var pos = ['25%', '75%']; | 
|  |  | 
|  | var option = { | 
|  | title: [{ | 
|  | text: 'Positive value\nminShowLabelAngle: 10', | 
|  | textAlign: 'center', | 
|  | left: pos[0] | 
|  | }, { | 
|  | text: 'Negative value\nminShowLabelAngle: 2', | 
|  | textAlign: 'center', | 
|  | left: pos[1] | 
|  | }], | 
|  | series: [{ | 
|  | type: 'pie', | 
|  | center: [pos[0], '50%'], | 
|  | minShowLabelAngle: 10, | 
|  | label: {show: true}, | 
|  | radius: '30%', | 
|  | data: makeData(1) | 
|  | }, { | 
|  | type: 'pie', | 
|  | center: [pos[1], '50%'], | 
|  | minShowLabelAngle: 2, | 
|  | label: {show: true}, | 
|  | radius: '30%', | 
|  | data: makeData(-1) | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main2', { | 
|  | title: [ | 
|  | 'minShowLabelAngle: label of small sector should **not be displayed**.', | 
|  | 'other label should **be displayed** in appropriate place.' | 
|  | ], | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  |  | 
|  | var count = 5; | 
|  |  | 
|  | function makeData(sign) { | 
|  | var data = []; | 
|  | for (var i = 0; i < count; i++) { | 
|  | var value = Math.random() * 50 * sign; | 
|  | value = +value.toFixed(2); | 
|  |  | 
|  | if (i >= 2 | 
|  | && i <= count - 2 | 
|  | && i % 10 !== 0 | 
|  | // Test the case that the bottom label is normal to display. | 
|  | && Math.abs(i - Math.round(count / 2)) > 2 | 
|  | ) { | 
|  | value = sign > 0 | 
|  | ? value - Math.floor(value) | 
|  | : value - Math.ceil(value); | 
|  | value = +value.toFixed(2); | 
|  | } | 
|  |  | 
|  | data.push({ | 
|  | name: value, | 
|  | value: value | 
|  | }); | 
|  | } | 
|  | return data; | 
|  | } | 
|  |  | 
|  | var pos = ['25%', '75%']; | 
|  |  | 
|  | var option = { | 
|  | title: [{ | 
|  | text: 'label.rotate: true, label should be in redical direction.', | 
|  | textAlign: 'center', | 
|  | left: pos[0] | 
|  | }, { | 
|  | text: 'label.rotate: 20', | 
|  | textAlign: 'center', | 
|  | left: pos[1] | 
|  | }], | 
|  | series: [{ | 
|  | type: 'pie', | 
|  | center: [pos[0], '50%'], | 
|  | minShowLabelAngle: 10, | 
|  | label: { | 
|  | show: true, | 
|  | rotate: true | 
|  | }, | 
|  | labelLine: { | 
|  | length2: 0 | 
|  | }, | 
|  | radius: '30%', | 
|  | data: makeData(1) | 
|  | }, { | 
|  | type: 'pie', | 
|  | center: [pos[1], '50%'], | 
|  | minShowLabelAngle: 2, | 
|  | label: { | 
|  | show: true, | 
|  | rotate: 20 | 
|  | }, | 
|  | radius: '30%', | 
|  | data: makeData(-1) | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main3', { | 
|  | title: [ | 
|  | 'label should be rotated' | 
|  | ], | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require(['echarts'/*, 'map/js/china' */], function (echarts) { | 
|  | var option; | 
|  |  | 
|  | // Pencil sketch texture | 
|  | var patternSrc = window.pieTexture; | 
|  | var img = new Image(); | 
|  | img.src = patternSrc; | 
|  |  | 
|  | option = { | 
|  | title: [{ | 
|  | left: '25%', | 
|  | top: 10, | 
|  | text: 'Lable text should be white\n and bordered with each sector color', | 
|  | textAlign: 'center' | 
|  | }, { | 
|  | left: '75%', | 
|  | top: 10, | 
|  | text: 'Lable text should be white\n and bordered with black', | 
|  | textAlign: 'center' | 
|  | }], | 
|  | series: [{ | 
|  | type: 'pie', | 
|  | label: { | 
|  | position: 'inside' | 
|  | }, | 
|  | center: ['25%', 150], | 
|  | radius: [30, 60], | 
|  | data: [{ | 
|  | name: 'xxxxxxxxxxxx', | 
|  | value: 100 | 
|  | }, { | 
|  | name: 'yyyyyyyy', | 
|  | value: 120 | 
|  | }, { | 
|  | name: 'zzzzzzzz', | 
|  | value: 110 | 
|  | }] | 
|  | }, { | 
|  | type: 'funnel', | 
|  | label: { | 
|  | position: 'inside' | 
|  | }, | 
|  | top: null, | 
|  | bottom: 30, | 
|  | height: 100, | 
|  | width: 50, | 
|  | left: '25%', | 
|  | data: [{ | 
|  | name: 'xxxxxxxxxxxx', | 
|  | value: 100 | 
|  | }, { | 
|  | name: 'yyyyyyyyyyy', | 
|  | value: 120 | 
|  | }, { | 
|  | name: 'zzzzzzzzzzz', | 
|  | value: 110 | 
|  | }] | 
|  | }, { | 
|  | type: 'pie', | 
|  | label: { | 
|  | position: 'inside' | 
|  | }, | 
|  | center: ['75%', 150], | 
|  | radius: [30, 60], | 
|  | itemStyle: { | 
|  | color: { | 
|  | image: img, | 
|  | repeat: 'repeat' | 
|  | }, | 
|  | borderWidth: 3, | 
|  | borderColor: '#111' | 
|  | }, | 
|  | data: [{ | 
|  | name: 'xxxxxxxxxxxx', | 
|  | value: 100 | 
|  | }, { | 
|  | name: 'yyyyyyyyyyy', | 
|  | value: 120 | 
|  | }, { | 
|  | name: 'zzzzzzzzzzz', | 
|  | value: 110 | 
|  | }] | 
|  | }, { | 
|  | type: 'funnel', | 
|  | label: { | 
|  | position: 'inside' | 
|  | }, | 
|  | top: null, | 
|  | bottom: 30, | 
|  | height: 100, | 
|  | width: 50, | 
|  | left: null, | 
|  | right: '25%', | 
|  | itemStyle: { | 
|  | color: { | 
|  | image: img, | 
|  | repeat: 'repeat' | 
|  | }, | 
|  | borderWidth: 3, | 
|  | borderColor: '#111' | 
|  | }, | 
|  | data: [{ | 
|  | name: 'xxxxxxxxxxxx', | 
|  | value: 100 | 
|  | }, { | 
|  | name: 'yyyyyyyyyyyyy', | 
|  | value: 120 | 
|  | }, { | 
|  | name: 'zzzzzzzzzzzz', | 
|  | value: 110 | 
|  | }] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main4', { | 
|  | title: [ | 
|  | 'label.position: "inside". And half inside half outside.' | 
|  | ], | 
|  | option: option, | 
|  | height: 400, | 
|  | // buttons: [{text: 'btn-txt', onclick: function () {}}], | 
|  | // recordCanvas: true, | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  |  | 
|  | const data = [{ | 
|  | name: 'Something really Random(1)', | 
|  | value: 1 | 
|  | }, { | 
|  | name: 'Something really Random(2)', | 
|  | value: 2 | 
|  | }, { | 
|  | name: 'Something really Random(3)', | 
|  | value: 3 | 
|  | }, { | 
|  | name: 'Something really Random(4)', | 
|  | value: 2 | 
|  | }, { | 
|  | name: 'Something really Random(5)', | 
|  | value: 3 | 
|  | }]; | 
|  |  | 
|  | for (let i = 0; i < 5 ; i++) { | 
|  | data.push({ | 
|  | name: 'Something really Random(' + i + ')', | 
|  | value: Math.random() * 0.1 + 0.1 | 
|  | }); | 
|  | } | 
|  |  | 
|  | data.push({ | 
|  | name: 'Something really Random', | 
|  | value: 2 | 
|  | }); | 
|  | for (let i = 0; i < 5 ; i++) { | 
|  | data.push({ | 
|  | name: 'Something really Random(' + i + ')', | 
|  | value: Math.random() * 0.1 + 0.1 | 
|  | }); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | series: [{ | 
|  | type: 'pie', | 
|  | radius: '50%', | 
|  | data: data | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main5', { | 
|  | title: 'Layout Case 1', | 
|  | 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%'] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main6', { | 
|  | title: 'Case from https://gallery.echartsjs.com/editor.html?c=xpm1ZhhOCG', | 
|  | height: 300, | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  | const option = { | 
|  | backgroundColor: '#2c343c', | 
|  | visualMap: { | 
|  | show: false, | 
|  | min: 80, | 
|  | max: 600, | 
|  | inRange: { | 
|  | colorLightness: [0, 1] | 
|  | } | 
|  | }, | 
|  | series : [ | 
|  | { | 
|  | name: '访问来源', | 
|  | type: 'pie', | 
|  | radius: '55%', | 
|  | data:[ | 
|  | {value:235, name:'视频广告'}, | 
|  | {value:274, name:'联盟广告'}, | 
|  | {value:310, name:'邮件营销'}, | 
|  | {value:335, name:'直接访问'}, | 
|  | {value:400, name:'搜索引擎'} | 
|  | ], | 
|  | roseType: 'angle', | 
|  | label: { | 
|  | textStyle: { | 
|  | color: 'rgba(255, 255, 255, 0.3)' | 
|  | } | 
|  | }, | 
|  | labelLine: { | 
|  | smooth: true, | 
|  | minTurnAngle: 120, | 
|  | lineStyle: { | 
|  | color: 'rgba(255, 255, 255, 0.3)' | 
|  | } | 
|  | }, | 
|  | itemStyle: { | 
|  | color: '#c23531', | 
|  | shadowBlur: 200, | 
|  | shadowColor: 'rgba(0, 0, 0, 0.5)' | 
|  | } | 
|  | } | 
|  | ] | 
|  | }; | 
|  | var chart = testHelper.create(echarts, 'main7', { | 
|  | title: 'Case from https://echarts.apache.org/examples/zh/editor.html?c=doc-example/tutorial-styling-step5', | 
|  | height: 300, | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  | const option = { | 
|  | series: [ | 
|  | { | 
|  | name: '访问来源', | 
|  | type: 'pie', | 
|  | radius: '50%', | 
|  | center: ['25%', '50%'], | 
|  | data: [ | 
|  | { value: 1, name: '搜索引擎' }, | 
|  | ], | 
|  | emphasis: { | 
|  | itemStyle: { | 
|  | shadowBlur: 10, | 
|  | shadowOffsetX: 0, | 
|  | shadowColor: 'rgba(0, 0, 0, 0.5)' | 
|  | } | 
|  | }, | 
|  | label: { | 
|  | position: 'inside' | 
|  | } | 
|  | }, | 
|  | { | 
|  | name: '访问来源1', | 
|  | type: 'pie', | 
|  | radius: '50%', | 
|  | center: ['75%', '50%'], | 
|  | data: [ | 
|  | { value: 1, name: '搜索引擎' }, | 
|  | ], | 
|  | emphasis: { | 
|  | itemStyle: { | 
|  | shadowBlur: 10, | 
|  | shadowOffsetX: 0, | 
|  | shadowColor: 'rgba(0, 0, 0, 0.5)' | 
|  | } | 
|  | }, | 
|  | label: { | 
|  | position: 'outside' | 
|  | } | 
|  | }, | 
|  | ] | 
|  | }; | 
|  |  | 
|  | setTimeout(() => { | 
|  | option.series[0].label.position = 'outside'; | 
|  | option.series[1].label.position = 'inside'; | 
|  | chart.setOption(option); | 
|  | }, 2000); | 
|  | setTimeout(() => { | 
|  | option.series[0].label.position = 'inside'; | 
|  | option.series[1].label.position = 'outside'; | 
|  | chart.setOption(option); | 
|  | }, 4000); | 
|  | setTimeout(() => { | 
|  | option.series[0].label.position = 'outside'; | 
|  | option.series[1].label.position = 'inside'; | 
|  | chart.setOption(option); | 
|  | }, 6000); | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main8', { | 
|  | title: 'labelLine should be hidden when position is not \'outside\'', | 
|  | height: 300, | 
|  | option: option | 
|  | }); | 
|  |  | 
|  | }); | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  | const option = { | 
|  | series: [ | 
|  | { | 
|  | name: 'Access From', | 
|  | type: 'pie', | 
|  | radius: 50, | 
|  | data: [ | 
|  | { value: 1, name: 'Search Engine' }, | 
|  | { value: 0, name: 'Direct' }, | 
|  | { value: 0, name: 'Union Ads' }, | 
|  | { value: 1, name: 'Video Ads' } | 
|  | ], | 
|  | label: { | 
|  | show: true | 
|  | }, | 
|  | } | 
|  | ] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main9', { | 
|  | title: [ | 
|  | 'The first label shoud be rendered correctly when it\'s followed by several zero values', | 
|  | 'Test case from issue #16208', | 
|  | ], | 
|  | height: 300, | 
|  | option: option | 
|  | }); | 
|  |  | 
|  | }); | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  | const option = { | 
|  | series: [ | 
|  | { | 
|  | name: "Access From", | 
|  | type: "pie", | 
|  | radius: "50%", | 
|  | data: [ | 
|  | { value: 1048, name: "Search Engine" }, | 
|  | { value: 735, name: "Direct" }, | 
|  | { value: 580, name: "Email" }, | 
|  | { value: 484, name: "Union Ads" }, | 
|  | { value: 300, name: "Video Ads" }, | 
|  | ], | 
|  | }, | 
|  | ], | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main10', { | 
|  | title: [ | 
|  | 'Label line should hide when emphasis after update the emphasis.labelLine', | 
|  | 'also label should be hidden when sector was selected', | 
|  | 'Test case from issue #16539', | 
|  | ], | 
|  | height: 300, | 
|  | option: option, | 
|  | button: [ | 
|  | { | 
|  | text: 'Click to update options', | 
|  | onClick: () => { | 
|  | chart.setOption({ | 
|  | series: [ | 
|  | { | 
|  | selectedMode: true, | 
|  | emphasis: { | 
|  | labelLine: { | 
|  | show: false, | 
|  | }, | 
|  | }, | 
|  | select: { | 
|  | label: { | 
|  | show: false, | 
|  | } | 
|  | } | 
|  | }, | 
|  | ], | 
|  | }) | 
|  | } | 
|  | } | 
|  | ] | 
|  | }); | 
|  |  | 
|  | }); | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  | var option = { | 
|  | series: [{ | 
|  | data: [ | 
|  | { | 
|  | name: '三门峡市', | 
|  | value: 4702 | 
|  | }, | 
|  | { | 
|  | name: '内江市', | 
|  | value: 4516 | 
|  | }, | 
|  | { | 
|  | name: '天门市', | 
|  | value: 1316 | 
|  | }, | 
|  | { | 
|  | name: '昭通市', | 
|  | value: 6188 | 
|  | }, | 
|  | { | 
|  | name: '娄底市', | 
|  | value: 7120 | 
|  | }, | 
|  | { | 
|  | name: '博尔塔拉州', | 
|  | value: 189 | 
|  | }, | 
|  | { | 
|  | name: '丽水市', | 
|  | value: 6478 | 
|  | }, | 
|  | { | 
|  | name: '牡丹江市', | 
|  | value: 5540 | 
|  | }, | 
|  | { | 
|  | name: '桂林市', | 
|  | value: 15518 | 
|  | }, | 
|  | { | 
|  | name: '桃园市', | 
|  | value: 86 | 
|  | }, | 
|  | { | 
|  | name: '晋中市', | 
|  | value: 10661 | 
|  | }, | 
|  | { | 
|  | name: '雅安市', | 
|  | value: 2411 | 
|  | }, | 
|  | { | 
|  | name: '文昌市', | 
|  | value: 1420 | 
|  | }, | 
|  | { | 
|  | name: '广州市', | 
|  | value: 159522 | 
|  | }, | 
|  | { | 
|  | name: '文山壮族苗族自治州', | 
|  | value: 3168 | 
|  | }, | 
|  | { | 
|  | name: '晋城市', | 
|  | value: 8640 | 
|  | }, | 
|  | { | 
|  | name: '昌都市', | 
|  | value: 507 | 
|  | }, | 
|  | { | 
|  | name: '曲靖市', | 
|  | value: 10705 | 
|  | }, | 
|  | { | 
|  | name: '昌吉州', | 
|  | value: 801 | 
|  | }, | 
|  | { | 
|  | name: '其他', | 
|  | value: 60280480, | 
|  | selected: false | 
|  | } | 
|  | ], | 
|  | type: 'pie', | 
|  | radius: '70%', | 
|  | minAngle: 1, | 
|  | minShowLabelAngle: 2 | 
|  | }], | 
|  | legend: { | 
|  | show: true, | 
|  | orient: 'vertical', | 
|  | left: 'left', | 
|  | selected: { | 
|  | '其他': false | 
|  | } | 
|  | } | 
|  | }; | 
|  |  | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main11', { | 
|  | title: [ | 
|  | 'Label line should be hidden after clicking the legend item **其他**', | 
|  | 'Test case from issue #17013', | 
|  | ], | 
|  | height: 300, | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  | var option = { | 
|  | series: [{ | 
|  | type: 'pie', | 
|  | radius: ['40%', '70%'], | 
|  | minShowLabelAngle: 100, | 
|  | label: { | 
|  | show: true, | 
|  | position: 'inside' | 
|  | }, | 
|  | data: [ | 
|  | { value: 1048, name: 'Search Engine' }, | 
|  | { value: 735, name: 'Direct' }, | 
|  | { value: 580, name: 'Email' }, | 
|  | { value: 484, name: 'Union Ads' }, | 
|  | { value: 300, name: 'Video Ads' } | 
|  | ] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main12', { | 
|  | title: [ | 
|  | 'The labels should be rendered correctly and no errors in the console', | 
|  | 'Test case from issue #17712', | 
|  | ], | 
|  | height: 300, | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  | </body> | 
|  | </html> |