|  |  | 
|  | <!-- | 
|  | 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"> | 
|  | <script src="lib/simpleRequire.js"></script> | 
|  | <script src="lib/config.js"></script> | 
|  | <script src="data/pie-texture.js"></script> | 
|  | <script src="lib/dat.gui.min.js"></script> | 
|  | <link rel="stylesheet" href="lib/reset.css" /> | 
|  | <script src="lib/testHelper.js"></script> | 
|  | </head> | 
|  | <body> | 
|  | <style> | 
|  | </style> | 
|  |  | 
|  | <div id="main"></div> | 
|  | <div id="main2"></div> | 
|  | <div id="main3"></div> | 
|  |  | 
|  |  | 
|  | <script> | 
|  | var chart; | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | chart = echarts.init(document.getElementById('main')); | 
|  |  | 
|  | // Pencil sketch texture | 
|  | var patternSrc = window.pieTexture; | 
|  | var itemStyle = { | 
|  | normal: { | 
|  | opacity: 0.7, | 
|  | color: { | 
|  | image: patternSrc, | 
|  | repeat: 'repeat' | 
|  | }, | 
|  | borderWidth: 3, | 
|  | borderColor: '#235894' | 
|  | // shadowBlur: 10, | 
|  | // shadowOffsetX: 0, | 
|  | // shadowOffsetY: 5, | 
|  | // shadowColor: 'rgba(0, 0, 0, 0.4)' | 
|  | } | 
|  | }; | 
|  | chart.setOption({ | 
|  | legend: { | 
|  | data: ['直接访问(初始就被选中)','邮件营销','联盟广告','视频广告','搜索引擎'] | 
|  | // data: [] | 
|  | }, | 
|  | toolbox: { | 
|  | left: 'left', | 
|  | feature: { | 
|  | dataView: {}, | 
|  | saveAsImage: {} | 
|  | } | 
|  | }, | 
|  | tooltip: {}, | 
|  | series: [{ | 
|  | name: 'pie', | 
|  | type: 'pie', | 
|  | selectedMode: 'single', | 
|  | selectedOffset: 30, | 
|  | clockwise: true, | 
|  | label: { | 
|  | textStyle: { | 
|  | fontSize: 18, | 
|  | // color: '#333' | 
|  | } | 
|  | }, | 
|  | labelLine: { | 
|  | lineStyle: { | 
|  | color: '#333' | 
|  | } | 
|  | }, | 
|  | // emphasis: { | 
|  | //     labelLine: { | 
|  | //         lineStyle: { | 
|  | //             color: 'red' | 
|  | //         } | 
|  | //     }, | 
|  | //     itemStyle: { | 
|  | //     } | 
|  | // }, | 
|  | data:[ | 
|  | { | 
|  | value:235, | 
|  | name:'直接访问(初始就被选中)', | 
|  | cursor: 'move', | 
|  | selected: true | 
|  | }, | 
|  | {value: 163, name: '标签在内部', | 
|  | label: { | 
|  | normal: { | 
|  | position: 'inside' | 
|  | } | 
|  | } | 
|  | }, | 
|  | {value:310, name:'邮件营销', label: { | 
|  | normal: { | 
|  | textStyle: { // compat | 
|  | color: 'red' | 
|  | }, | 
|  | formatter: '{abg|(居右)背景文字 }\n  {b|{b}}{c|}  ', | 
|  | backgroundColor: 'rgba(0,0,0,0.1)', | 
|  | borderColor: '#777', | 
|  | borderWidth: 2, | 
|  | borderRadius: 3, | 
|  | rich: { | 
|  | abg: { | 
|  | color: '#eee', | 
|  | fontSize: 14, | 
|  | backgroundColor: '#333', | 
|  | width: '100%', | 
|  | align: 'right', | 
|  | height: 22, | 
|  | borderRadius: [4, 4, 0, 0] // 四角的 borderRadius | 
|  | }, | 
|  | b: { | 
|  | fontSize: 20, | 
|  | lineHeight: 46 | 
|  | }, | 
|  | c: { | 
|  | backgroundColor: { | 
|  | image: './data/hill-Kilimanjaro.png', | 
|  | }, | 
|  | height: 30 | 
|  | } | 
|  | } | 
|  | }, | 
|  | emphasis: { | 
|  | } | 
|  | }}, | 
|  | {value:234, name:'联盟广告', label: { | 
|  | normal: { | 
|  | textStyle: { // compat | 
|  | color: 'red' | 
|  | }, | 
|  | formatter: '{a|(居中)背景文字顺序上有些 triky}{abg|}\n  {b|{b}}{c|}  ', | 
|  | backgroundColor: 'rgba(0,0,0,0.1)', | 
|  | borderColor: '#777', | 
|  | borderWidth: 2, | 
|  | borderRadius: 3, | 
|  | rich: { | 
|  | a: { | 
|  | color: '#eee', | 
|  | fontSize: 14, | 
|  | align: 'center' | 
|  | }, | 
|  | abg: { | 
|  | backgroundColor: '#333', | 
|  | width: '100%', | 
|  | align: 'right', | 
|  | height: 22, | 
|  | borderRadius: [4, 4, 0, 0] // 四角的 borderRadius | 
|  | }, | 
|  | b: { | 
|  | fontSize: 20, | 
|  | lineHeight: 46 | 
|  | }, | 
|  | c: { | 
|  | backgroundColor: { | 
|  | image: './data/hill-Kilimanjaro.png', | 
|  | }, | 
|  | height: 30 | 
|  | } | 
|  | } | 
|  | }, | 
|  | emphasis: { | 
|  | } | 
|  | }}, | 
|  | {value:135, name:'视频广告', label: { | 
|  | normal: { | 
|  | textStyle: { // compat | 
|  | color: 'red' | 
|  | }, | 
|  | formatter: '{abg|(居左)背景文字}\n  {b|{b}}{c|}  ', | 
|  | backgroundColor: 'rgba(0,0,0,0.1)', | 
|  | borderColor: '#777', | 
|  | borderWidth: 2, | 
|  | borderRadius: 3, | 
|  | rich: { | 
|  | abg: { | 
|  | color: '#eee', | 
|  | fontSize: 14, | 
|  | backgroundColor: '#333', | 
|  | width: '100%', | 
|  | align: 'left', | 
|  | height: 22, | 
|  | borderRadius: [4, 4, 0, 0] // 四角的 borderRadius | 
|  | }, | 
|  | b: { | 
|  | fontSize: 20, | 
|  | lineHeight: 46 | 
|  | }, | 
|  | c: { | 
|  | backgroundColor: { | 
|  | image: './data/hill-Kilimanjaro.png', | 
|  | }, | 
|  | height: 30 | 
|  | } | 
|  | } | 
|  | }, | 
|  | emphasis: { | 
|  | } | 
|  | }}, | 
|  | {value:148, name:'搜索引擎', label: { | 
|  | normal: { | 
|  | textStyle: { // compat | 
|  | color: 'red' | 
|  | }, | 
|  | formatter: '{a|富文本:(emphasis 背景改变)}\n{hr|}\n{b|{b}}{c|}', | 
|  | backgroundColor: 'rgba(0,0,0,0.1)', | 
|  | borderColor: '#777', | 
|  | borderWidth: 2, | 
|  | padding: 5, | 
|  | borderRadius: 3, | 
|  | rich: { | 
|  | a: { | 
|  | color: '#334499', | 
|  | align: 'left' | 
|  | }, | 
|  | b: { | 
|  | fontSize: 20 | 
|  | }, | 
|  | hr: { | 
|  | width: '100%', | 
|  | borderColor: '#999', | 
|  | borderWidth: 0.5, | 
|  | height: 0, | 
|  | lineHeight: 15 | 
|  | }, | 
|  | c: { | 
|  | backgroundColor: { | 
|  | image: './data/hill-Kilimanjaro.png', | 
|  | }, | 
|  | height: 30 | 
|  | } | 
|  | } | 
|  | }, | 
|  | emphasis: { | 
|  | backgroundColor: 'rgba(0,0,0,0.5)', | 
|  | shadowOffsetX: 5, | 
|  | shadowOffsetY: 5, | 
|  | shadowBlur: 5, | 
|  | shadowColor: '#333' | 
|  | } | 
|  | }} | 
|  | ], | 
|  | itemStyle: itemStyle | 
|  | }] | 
|  | }); | 
|  |  | 
|  | var config = { | 
|  | labelPosition: 'outside', | 
|  | clockwise: true, | 
|  | labelLineLen: 20, | 
|  | labelLineLen2: 5 | 
|  | }; | 
|  |  | 
|  | function update() { | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | name: 'pie', | 
|  | clockwise: config.clockwise, | 
|  | label: { | 
|  | normal: { | 
|  | position: config.labelPosition | 
|  | } | 
|  | }, | 
|  | labelLine: { | 
|  | normal: { | 
|  | length: config.labelLineLen, | 
|  | length2: config.labelLineLen2 | 
|  | } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | } | 
|  |  | 
|  | var gui = new dat.GUI(); | 
|  | gui.add(config, 'clockwise') | 
|  | .onChange(update); | 
|  | gui.add(config, 'labelPosition', ['inside', 'outside']) | 
|  | .onChange(update); | 
|  | gui.add(config, 'labelLineLen', 0, 100) | 
|  | .onChange(update); | 
|  | gui.add(config, 'labelLineLen2', 0, 100) | 
|  | .onChange(update); | 
|  | }) | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var option = { | 
|  | legend: {}, | 
|  | dataset: { | 
|  | source: [ | 
|  | {name: 'a', value: 123}, | 
|  | {name: 'b', value: 456}, | 
|  | {name: 'should be selected', value: 789, selected: true} | 
|  | ] | 
|  | }, | 
|  | series: { | 
|  | type: 'pie', | 
|  | selectedMode: 'multiple' | 
|  | } | 
|  | }; | 
|  |  | 
|  | testHelper.create(echarts, 'main2', { | 
|  | option: option, | 
|  | info: option | 
|  | }) | 
|  |  | 
|  | }); | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  | var clockwise = true; | 
|  |  | 
|  | var option = { | 
|  | series: [ | 
|  | { | 
|  | type: "pie", | 
|  | radius: ["40.625%", "100%"], | 
|  | startAngle: 320, | 
|  | clockwise, | 
|  | data: [ | 
|  | { value: 0, name: "Search Engine" }, | 
|  | { value: 0, name: "Direct" }, | 
|  | { value: 0, name: "Email" }, | 
|  | { value: 0, name: "Union Ads" } | 
|  | ] | 
|  | } | 
|  | ] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main3', { | 
|  | title: [ | 
|  | 'Shouldn\'t be fully annular', | 
|  | 'from https://github.com/apache/echarts/issues/16363' | 
|  | ], | 
|  | option | 
|  | }); | 
|  |  | 
|  | setTimeout(function () { | 
|  | option.series[0].data = [ | 
|  | { value: 21, name: "Search Engine" }, | 
|  | { value: 8, name: "Direct" }, | 
|  | { value: 1, name: "Email" }, | 
|  | { value: 0, name: "Union Ads" } | 
|  | ]; | 
|  | chart.setOption(option); | 
|  | }, 1e3); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  | </body> | 
|  | </html> |