pie排序,自定义legend
配置项如下
let colorNumber = ['#FF6767', '#FF9D6B', '#55CA69', '#16D8B8', '#67CCFF']
let pieData = [
{value:1335, name:'搜索引擎'},
{value:1110, name:'邮件营销'},
{value:934, name:'联盟广告'},
{value:655, name:'视频广告'},
{value:342, name:'直接访问'}
]
let rich = {
txtStyle: {
fontSize: 12,
padding: [0, 3],
align: 'center'
}
}
let legendName = [];
pieData.forEach((v, i) => {
legendName.push(v.name)
let value = 'num' + i
rich[value] = {
width: 15,
height: 10,
backgroundColor: colorNumber[i],
color: '#fff',
align: 'center',
fontSize: 12,
padding: [3, 2]
}
})
option = {
backgroundColor: '#0E2A43',
color: colorNumber,
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
legend: {
orient: 'vertical',
x: 'left',
itemWidth: 5,
itemHeight: 0,
itemGap: 10,
data: legendName,
formatter: name => {
let data = legendName;
let idx = data.indexOf(name);
let number = idx + 1;
return '{num' + idx + '|' + number + '}{txtStyle|}' + name
},
textStyle: {
color: '#fff',
fontSize: 12,
rich: rich
}
},
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: pieData
}
]
};