配置项如下
var data = [{
value: 50,
name: '直接访问'
},
{
value: 20,
name: '邮件营销'
},
{
value: 15,
name: '联盟广告'
},
{
value: 5,
name: '视频广告'
},
{
value: 5,
name: '搜索引擎'
},
{
value: 5,
name: '搜索引擎1'
}
];
var center = ['30%', '50%'];
var radius = {
'内': ['54%', '60%'],
'pie': ['60%', '70%'],
'中': ['70%', '76%'],
'外': ['70%', '85%'],
}
var text = '总任务数'
var num = 1234
var size = 32
// 称量字的中间位置
var titleLeft = size - text.length * 2 + '%'
var numLeft = 40 - num.length * 2 + '%'
var legenddata = data.map(item => item.name)
option = {
backgroundColor: '#fff',
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
title: [{
text: text,
y: '40%',
x: titleLeft,
textStyle: {
color: '#000',
fontSize: 30
}
},{
text: num,
y: '50%',
x: '25%',
textStyle: {
color: '#000',
fontSize: 30
}
}],
legend: {
type:"plain",
orient: 'vertical',
// x: 'right',
// y: 'center',
left: '65%',
top: 'center',
icon: "circle",
data: ['直接访问', '搜索引擎', '邮件营销', '联盟广告', '视频广告', '搜索引擎1'],
formatter: function(name) {
var oa = option.series[0].data;
var num = oa[0].value + oa[1].value + oa[2].value + oa[3].value;
for (var i = 0; i < option.series[0].data.length; i++) {
if (name == oa[i].name) {
return '{name|' + name + '}{rate|' + (oa[i].value / num * 100).toFixed(2) + '%}{value|' +oa[i].value + '}'
// return name + ' ' + (oa[i].value / num * 100).toFixed(2) + '%' + ' ' + oa[i].value
}
}
},
width: 150,
height:400,
padding: [15,20,15,20],
borderColor: 'rgba(0,0,0,0.08)',
borderWidth: 1,
borderRadius: 10,
shadowColor: 'rgba(0, 0, 0, 0.3)',
shadowBlur: 20,
backgroundColor: '#fff',
textStyle: {
rich: {
name: {
fontSize: 17,
fontWeight: 550,
fontFamily: '-webkit-pictograph',
width: 130,
height: 50,
// padding: [4,0,4,0]
},
rate: {
fontSize: 17,
fontFamily: '-webkit-pictograph',
fontWeight: 550,
height: 50,
width: 80
// padding: [0,0,0,0]
},
value: {
fontSize: 17,
fontWeight: 550,
fontFamily: '-webkit-pictograph',
height: 50,
width: 60
// padding: [0,0,0,0]
}
}
}
},
// legend: {
// orient: 'vertical',
// left: 'right',
// top: 'center',
// align: 'left',
// itemHeight: 20,
// itemWidth: 20,
// textStyle: {
// color: '#afb5b7'
// },
// data: legenddata
// },
series: [{
name: '访问来源',
type: 'pie',
radius: radius['pie'],
center: center,
avoidLabelOverlap: false,
color: ['#4c84ff', '#5b6378', '#ffc400', '#29cb97', '#ff86ad', '#815eff'],
label: {
normal: {
show: false,
position: 'center',
formatter: '{b}\n\n{c}'
},
emphasis: {
show: false,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
}
},
labelLine: {
normal: {
show: false
}
},
data: data
}, {
name: '背景中圆环',
type: 'pie',
radius: radius['中'],
center: center,
color: '#f4f5f6',
silent: true,
label: {
normal: {
show: false
},
emphasis: {
show: false
}
},
labelLine: {
normal: {
show: false
}
},
data: [{
name: '',
value: 100
}]
}, {
name: '背景内圆环',
type: 'pie',
radius: radius['内'],
center: center,
color: 'rgba(0,0,0,.1)',
silent: true,
label: {
normal: {
show: false
},
emphasis: {
show: false
}
},
labelLine: {
normal: {
show: false
}
},
data: [{
name: '',
value: 100
}]
}]
};