跑道图占比

描述:当前是关于Echarts图表中的 饼图 示例。
 
            data = [{
        name: "使用中资源量",
        value: 754
    },
    {
        name: "维修中资源量",
        value: 611
    },
    {
        name: "保养中资源量",
        value: 400
    },
    {
        name: "已损坏资源量",
        value: 200
    }
];
arrName = getArrayValue(data, "name");
//debugger
arrValue = getArrayValue(data, "value");
sumValue = eval(arrValue.join('+'));
objData = array2obj(data, "name");
optionData = getData(data)
function getArrayValue(array, key) {
    var key = key || "value";
    var res = [];
    if (array) {
        array.forEach(function(t) {
            res.push(t[key]);
        });
    }
    return res;
}

function array2obj(array,key) {
	var resObj = {};
	for(var i=0;i<array.length;i++){
		resObj[array[i][key]] = array[i];
	}
	return resObj;
}

function getData(data) {
    var res = {
        series: [],
        //yAxis: []
    };
    for (let i = 0; i < data.length; i++) {
        // console.log([70 - i * 15 + '%', 67 - i * 15 + '%']);
        res.series.push({
            name: '',
            type: 'pie',
            clockWise: false, //顺时加载
            hoverAnimation: false, //鼠标移入变大
            radius: [73 - i * 15 + '%', 68 - i * 15 + '%'],
            center: ["30%", "55%"],
            label: {
                show: false
            },
            itemStyle: {
                label: {
                    show: false,
                },
                labelLine: {
                    show: false
                },
                borderWidth: 5,
            },
            data: [{
                value: data[i].value,
                name: data[i].name
            }, {
                value: sumValue - data[i].value,
                name: '',
                itemStyle: {
                    color: "rgba(0,0,0,0)",
                    borderWidth: 0
                },
                tooltip: {
                    show: false
                },
                hoverAnimation: false
            }]
        });
        res.series.push({
            name: '',
            type: 'pie',
            silent: true,
            z: 1,
            clockWise: false, //顺时加载
            hoverAnimation: false, //鼠标移入变大
            radius: [73 - i * 15 + '%', 68 - i * 15 + '%'],
            center: ["30%", "55%"],
            label: {
                show: false
            },
            itemStyle: {
                label: {
                    show: false,
                },
                labelLine: {
                    show: false
                },
                borderWidth: 5,
            },
            data: [{
                value: 7.5,
                itemStyle: {
                    color: "rgb(3, 31, 62)",
                    borderWidth: 0
                },
                tooltip: {
                    show: false
                },
                hoverAnimation: false
            }, {
                value: 2.5,
                name: '',
                itemStyle: {
                    color: "rgba(0,0,0,0)",
                    borderWidth: 0
                },
                tooltip: {
                    show: false
                },
                hoverAnimation: false
            }]
        });
        //res.yAxis.push((data[i].value / sumValue * 100).toFixed(2) + "%");
    }
    return res;
}

option = {
    backgroundColor:'#000',
    title: {
        text:'dfssdf',
        left: 'center',
        top: 0,
        textStyle: {
            color: '#00ffff',
            fontSize: 14,
            fontWeight: 0
        }
    },
    legend: {
        show: true,
        icon:"circle",
        top: "15%",
        left: '35%',
        data: arrName,
        width:50,
        //padding: [0, 5],
	        itemGap:5,
            itemWidth:8,
            itemHeight:8,
        itemGap: 5,
        formatter: function(name) {
            //return "{title|" + name + "}\n{value|" + (objData[name].value) +"}  {title|项}"+(objData[name].value/sumValue*100).toFixed(2)+"%"
            return  name + " " + (objData[name].value) +"项\n"+(objData[name].value/sumValue*100).toFixed(2)+"%"
        },
       
        textStyle: {
            // rich: {
            //     title: {
            //         fontSize: 16,
            //         lineHeight: 15,
            //         color: "rgb(0, 178, 246)"
            //     },
            //     value: {
            //         fontSize: 18,
            //         lineHeight: 20,
            //         color: "#fff"
            //     }
            // }
            color:'#fff',
            fontSize:14,
        },
    },
    tooltip: {
        show: true,
        trigger: "item",
        formatter: "{b}:<br>{c}"
    },
    color: ['rgb(24, 183, 142)', 'rgb(1, 179, 238)', 'rgb(22, 75, 205)', 'rgb(52, 52, 176)'],
    grid: {
        top: '15%',
        //bottom: '53%',
        left: "0",
        containLabel: false
    },
    // yAxis: [{
    //     type: 'category',
    //     inverse: true,
    //     axisLine: {
    //         show: false
    //     },
    //     axisTick: {
    //         show: false
    //     },
    //     axisLabel: {
    //         interval: 0,
    //         inside: true,
    //         textStyle: {
    //             color: "#fff",
    //             fontSize: 16,
    //         },
    //         show: true
    //     },
    //     data: optionData.yAxis
    // }],
    // xAxis: [{
    //     show: false
    // }],
    series: optionData.series
};