將下列代碼copy的echarts編輯器中app
app.title = '環形圖'; var $legendData = ['直接訪問','郵件營銷','聯盟廣告','視頻廣告','搜索引擎']; var $legendSelected = {'直接訪問':false}; var $seriesData = [ {value:335, name:'直接訪問'}, {value:310, name:'郵件營銷'}, {value:234, name:'聯盟廣告'}, {value:135, name:'視頻廣告'}, {value:1548, name:'搜索引擎'} ]; var option = { tooltip: { trigger: 'item', formatter: "{a} <br/>{b}: {c} ({d}%)" }, legend: { orient: 'vertical', x: 'left', data:$legendData, selected:$legendSelected }, series: [ { name:'訪問來源', type:'pie', radius: ['50%', '70%'], avoidLabelOverlap: false, label: { normal: { show: false, position: 'center' }, emphasis: { show: true, textStyle: { fontSize: '30', fontWeight: 'bold' } } }, labelLine: { normal: { show: false } }, data:$seriesData } ] }; myChart.on('legendselectchanged', function (params) { if (!$seriesData || $seriesData.length <= 0) return var legendData = [] var seriesData = [] var selected = params.selected; /*var selectedMode = false; for (var i in params.selected) { if( params.selected[i] && i != '其餘'){ selectedMode = true; } }*/ console.log('params'); console.log(params); var v = null; for (var i = 0; i < $seriesData.length; i++) { var item = $seriesData[i] console.log(params.selected[item.name]); if( !params.selected[item.name] ){ if( v === null ){ v = item.value; }else{ v += item.value; } } if(item.name == '其餘'){ continue; } legendData.push(item.name) seriesData.push({ value: item.value, name: item.name, }) } if( v !== null ){ legendData.push('其餘'); seriesData.push({ value: v, name: '其餘'}) } console.log(legendData); console.log(seriesData); var $option = option $option.legend.data = legendData $option.legend.selected = selected //$option.legend.selectedMode = selectedMode $option.series[0].data = seriesData myChart.clear() console.log(option); myChart.setOption(option) });