自定义饼图

描述:当前是关于Echarts图表中的 饼图 示例。
 
            var trafficWay = [
                {value: 735, name: '国家级'},
                {value: 580, name: '省级'},
                {value: 484, name: '市级'}
            ];
var data = [];
var data2 = [];
var color=['#00ffd5','#0083ff','#e0b808'];
for (var i = 0; i < trafficWay.length; i++) {
    data.push({
        value: trafficWay[i].value,
        name: trafficWay[i].name,
        itemStyle: {
            normal: {
                borderWidth: 5,
                shadowBlur: 20,
                borderColor:color[i],
                shadowColor: color[i]
            }
        },
        label: {
                show: false,
                position: 'center'
            },
            emphasis: {
                label: {
                    show: true,
                    fontSize: '40',
                    fontWeight: 'bold'
                }
            },
            labelLine: {
                show: false
            },
    });
}
for (var i = 0; i < 4; i++) {
    data2.push({
        value: 100,
        itemStyle: {
            normal: {
                label: {
                    show: false
                },
                labelLine: {
                    show: false
                },
                color: '#77b5b0'
            }
        }
    }, {
        value: 30,
        name: '',
        itemStyle: {
            normal: {
                label: {
                    show: false
                },
                labelLine: {
                    show: false
                },
                color: 'rgba(0, 0, 0, 0)'
            }
        }
    });
}
var seriesOption = [{
    name: '',
    type: 'pie',
    radius: ['65%', '70%'],
    center:['35%', '50%'],
    itemStyle: {
        normal: {
            label: {
                show: false,
                position: 'center',
                textStyle: {
                     rich: {
                         numText: {
                             color: '#0ff8e5',
                             fontSize: 40,
                             fontWeight: 'bold',
                             width: 30,
                             textAlign: 'center'
                         },
                         text: {
                             color: '#ccc',
                             fontSize: 18,
                             padding: [5, 0, 0, 0],
                             width: 30,
                             textAlign: 'center'
                         }
                     }
                 },
                formatter: function(params){
                    console.log(params);
                    // for (var i = 0; i < data.length; i++) {
                    //      if (data[i].name == name) {
                    //          target = data[i].value;
                    //          title = data[i].label
                    //          index = i < 6 ? i : 5
                    //      }
                    //  }
                    return `{numText| ${params.percent}%}\n{text| ${params.name}}`
                }
            },
            emphasis: {
                label: {
                    show: true,
                    fontSize: '20',
                    fontWeight: 'bold',
                }
            },
            labelLine: {
                show: false
            }
        }
    },
    data: data
},{
            name: '访问来源',
            type: 'pie',
            radius: ['52%', '54%'],
            center:['35%', '50%'],
            hoverAnimation: false,
            // avoidLabelOverlap: false,
            label: {
                show: false
            },
            labelLine: {
                show: false
            },
            data: data2
        }];
option = {
    color : color,
    legend: {
        icon: "circle",
        orient: 'horizontal',
        right: 10,
        // top: 'center',
        width: '100px',
        align: 'left',
        textStyle: {
          color: "#fff",
          fontSize:14,
        },
        itemGap: 15,
        formatter: function(name) {
          var total = 0;
          var target;
          for (var i = 0, l = data.length; i < l; i++) {
            total += data[i].value;
            if (data[i].name == name) {
              target = data[i].value;
            }
          }
          return (
            name +
            " " +
            target +
            " | " +
            ((target / total) * 100).toFixed(2) +
            "%"
          );
        },
    },
    toolbox: {
        show: false
    },
    series: seriesOption
}