XX区2015-2017年度税收前三名企业对比

描述:当前是关于Echarts图表中的 饼图 示例。
 
            var jsonData = {
    "RECORDS": [{
            "enterprises": "XX汽车有限公司",
            "TotalTax": 11111111111.11,
            "TotalTax_Rank": 1,
            "TotalTaxLeave": 555555555.55,
            "TotalTaxLeave_Rank": 7,
            "TotalContribute": 444444444.44,
            "TotalContribute_Rank": 6,
            "TotalAppropriation": 111111111.11,
            "TotalAppropriation_Rank": 9
        },
        {
            "enterprises": "XX股份有限公司XX分公司",
            "TotalTax": 8888888888.88,
            "TotalTax_Rank": 2,
            "TotalTaxLeave": 1111111111.11,
            "TotalTaxLeave_Rank": 2,
            "TotalContribute": 888888888.888,
            "TotalContribute_Rank": 2,
            "TotalAppropriation": 222222222.223,
            "TotalAppropriation_Rank": 5
        },
        {
            "enterprises": "XX公司",
            "TotalTax": 6666666666.66,
            "TotalTax_Rank": 3,
            "TotalTaxLeave": 3333333333.33,
            "TotalTaxLeave_Rank": 1,
            "TotalContribute": 1111111111.11,
            "TotalContribute_Rank": 1,
            "TotalAppropriation": 2222222222.22,
            "TotalAppropriation_Rank": 1
        }
    ]
};

var dataStyle = {
    normal: {
        shadowBlur: 40,
        shadowColor: 'rgba(40, 40, 40, 0.5)',
    }
};
var placeHolderStyle = {
    normal: {
        color: 'rgba(0,0,0,0)',
    },
    emphasis: {
        color: 'rgba(0,0,0,0)'
    }
};
option = {
    title: {
        text: '开发区2015-2017年度税收前三名企业对比',
        target: 'self',
        textStyle: {
            color: '#000',
            fontSize: 23,
            fontWeight: 'bold'
        }
    },
    tooltip: {
        show: true,
        formatter: function(params) {
            if (params.name != 'invisible' && params.name != '是否与第一名统一税收比例') {
                var relVal = params.seriesName;
                relVal += '<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + params.color + '"></span>' + params.name + ': ' + params.value.toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '(' + params.percent + '%)';
                if (params.name == '税收') {
                    relVal += '<br/>税收排名: ' + jsonData.RECORDS[Math.floor(params.seriesIndex / 4)].TotalTax_Rank;
                } else if (params.name == '留成') {
                    relVal += '<br/>留成排名: ' + jsonData.RECORDS[Math.floor(params.seriesIndex / 4)].TotalTaxLeave_Rank;
                } else if (params.name == '财力贡献') {
                    relVal += '<br/>财力贡献排名: ' + jsonData.RECORDS[Math.floor(params.seriesIndex / 4)].TotalContribute_Rank;
                } else if (params.name == '拨款') {
                    relVal += '<br/>拨款排名: ' + jsonData.RECORDS[Math.floor(params.seriesIndex / 4)].TotalAppropriation_Rank;
                }
                return relVal;
            }
        }

        //formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    color: ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#c23531'],
    legend: {
        itemGap: 12,
        top: '5%',
        width: '420',
        textStyle: {
            color: '#000',
            fontSize: 18
        },
        data: ['税收', '留成', '财力贡献', '拨款', {
            name: '是否与第一名统一税收比例',
            icon: 'circle',
            textStyle: {
                fontWeight: 'bold'
            }
        }]
    },
    toolbox: {
        show: true,
        feature: {
            mark: {
                show: true
            },
            dataView: {
                show: true,
                readOnly: false
            },
            restore: {
                show: true
            },
            saveAsImage: {
                show: true
            }
        }
    },
    series: [{
            type: 'pie',
            center: ['50%', '33%'],
            clockWise: false,
            radius: [180, 200],
            itemStyle: dataStyle,
            hoverAnimation: false,
            label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
            name: jsonData.RECORDS[0].enterprises,
            data: [{
                    value: jsonData.RECORDS[0].TotalTax,
                    name: '税收'
                },
                {
                    value: 0,
                    name: 'invisible',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                }

            ]
        },
        {
            type: 'pie',
            center: ['50%', '33%'],
            clockWise: false,
            radius: [160, 180],
            itemStyle: dataStyle,
            hoverAnimation: false,
            label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
            name: jsonData.RECORDS[0].enterprises,
            data: [{
                    value: jsonData.RECORDS[0].TotalTaxLeave,
                    name: '留成'
                },
                {
                    value: jsonData.RECORDS[0].TotalTax - jsonData.RECORDS[0].TotalTaxLeave,
                    name: 'invisible',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                }
            ]
        },
        {
            type: 'pie',
            center: ['50%', '33%'],
            clockWise: false,
            hoverAnimation: false,
            radius: [140, 160],
            itemStyle: dataStyle,
            name: jsonData.RECORDS[0].enterprises,
            data: [{
                    value: jsonData.RECORDS[0].TotalContribute,
                    label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
                    name: '财力贡献'
                },
                {
                    value: jsonData.RECORDS[0].TotalAppropriation,
                    label:{normal:{show:true,formatter:'{d}%'}},
                    labelLine:{normal:{length:0,show:true,length:0,length2:2}},
                    name: '拨款'
                },
                {
                    value: jsonData.RECORDS[0].TotalTax - jsonData.RECORDS[0].TotalContribute - jsonData.RECORDS[0].TotalAppropriation,
                    name: 'invisible',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                }
            ]
        },
        {
            type: 'pie',
            center: ['50%', '33%'],
            clockWise: false,
            hoverAnimation: false,

            radius: [0, 1],
            itemStyle: dataStyle,
            name: jsonData.RECORDS[0].enterprises,
            label: {
                normal: {
                    show: true,
                    position: 'center',
                    color: 'black',
                    //fontWeight:'bold',
                    formatter: [
                        '{title|{a}}{abg|}',
                        '  {stringHead|指标名}{valueHead|指标值}{rateHead|排名}',
                        '{hr|}',
                        '    {string|税收}{value|' + (Math.round(jsonData.RECORDS[0].TotalTax * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[0].TotalTax_Rank * 100) / 100 + '}',
                        '    {string|留成}{value|' + (Math.round(jsonData.RECORDS[0].TotalTaxLeave * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[0].TotalTaxLeave_Rank * 100) / 100 + '}',
                        '  {stringL|财力贡献}{value|' + (Math.round(jsonData.RECORDS[0].TotalContribute * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[0].TotalContribute_Rank * 100) / 100 + '}',
                        '    {string|拨款}{value|' + (Math.round(jsonData.RECORDS[0].TotalAppropriation * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[0].TotalAppropriation_Rank * 100) / 100 + '}',
                    ].join('\n'),
                    backgroundColor: '#eee',
                    borderColor: '#777',
                    borderWidth: 1,
                    borderRadius: 4,
                    rich: {
                        title: {
                            color: '#eee',
                            align: 'center'
                        },
                        abg: {
                            backgroundColor: '#333',
                            width: '100%',
                            align: 'right',
                            height: 25,
                            borderRadius: [4, 4, 0, 0]
                        },
                        string: {
                            height: 20,
                            align: 'left',
                            color: 'black',
                            padding: [0, 20, 0, 0]
                        },
                        stringL: {
                            height: 20,
                            align: 'left',
                            color: 'black',
                            padding: [0, 10, 0, 0]
                        },
                        stringHead: {
                            color: '#333',
                            height: 24,
                            align: 'left',
                            padding: [0, 20, 0, 0]
                        },
                        hr: {
                            borderColor: '#777',
                            width: '100%',
                            align: 'right',
                            borderWidth: 0.5,
                            height: 0
                        },
                        value: {
                            width: 40,
                            padding: [0, 10, 0, 40],
                            align: 'left'
                        },
                        valueHead: {
                            color: '#333',
                            width: 40,
                            padding: [0, 10, 0, 30],
                            align: 'center'
                        },
                        rate: {
                            width: 40,
                            align: 'right',
                            padding: [0, 10, 0, 0]
                        },
                        rateHead: {
                            color: '#333',
                            width: 40,
                            align: 'right',
                            padding: [0, 10, 0, 0]
                        }
                    }

                    //formatter: "{a} {b} : {c} ({d}%)"
                }
            },
            data: [{
                value: 1,
                name: 'invisible'
            }]
        },

        {
            type: 'pie',
            center: ['33%', '67%'],
            clockWise: false,
            radius: [180, 200],
            itemStyle: dataStyle,
            hoverAnimation: false,
            label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
            name: jsonData.RECORDS[1].enterprises,
            data: [{
                    value: jsonData.RECORDS[1].TotalTax,
                    name: '税收'
                },
                {
                    value: jsonData.RECORDS[0].TotalTax - jsonData.RECORDS[1].TotalTax,
                    name: '是否与第一名统一税收比例',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                }

            ]
        },
        {
            type: 'pie',
            center: ['33%', '67%'],
            clockWise: false,
            radius: [160, 180],
            itemStyle: dataStyle,
            hoverAnimation: false,
            label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
            name: jsonData.RECORDS[1].enterprises,
            data: [{
                    value: jsonData.RECORDS[1].TotalTaxLeave,
                    name: '留成'
                },
                {
                    value: jsonData.RECORDS[1].TotalTax - jsonData.RECORDS[1].TotalTaxLeave,
                    name: 'invisible',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                },
                {
                    value: jsonData.RECORDS[0].TotalTax - jsonData.RECORDS[1].TotalTax,
                    name: '是否与第一名统一税收比例',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                }
            ]
        },
        {
            type: 'pie',
            center: ['33%', '67%'],
            clockWise: false,
            hoverAnimation: false,
            radius: [140, 160],
            itemStyle: dataStyle,
            label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
            name: jsonData.RECORDS[1].enterprises,
            data: [{
                    value: jsonData.RECORDS[1].TotalContribute,
                    name: '财力贡献'
                },
                {
                    value: jsonData.RECORDS[1].TotalAppropriation,
                    name: '拨款'
                },
                {
                    value: jsonData.RECORDS[1].TotalTax - jsonData.RECORDS[1].TotalContribute - jsonData.RECORDS[1].TotalAppropriation,
                    name: 'invisible',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                },
                {
                    value: jsonData.RECORDS[0].TotalTax - jsonData.RECORDS[1].TotalTax,
                    name: '是否与第一名统一税收比例',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                }
            ]
        },
        {
            type: 'pie',
            center: ['33%', '67%'],
            clockWise: false,
            hoverAnimation: false,
            radius: [0, 1],
            itemStyle: dataStyle,
            name: jsonData.RECORDS[1].enterprises,
            label: {
                normal: {
                    show: true,
                    position: 'center',
                    color: 'black',
                    //fontWeight:'bold',
                    formatter: [
                        '{title|{a}}{abg|}',
                        '  {stringHead|指标名}{valueHead|指标值}{rateHead|排名}',
                        '{hr|}',
                        '    {string|税收}{value|' + (Math.round(jsonData.RECORDS[1].TotalTax * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[1].TotalTax_Rank * 100) / 100 + '}',
                        '    {string|留成}{value|' + (Math.round(jsonData.RECORDS[1].TotalTaxLeave * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[1].TotalTaxLeave_Rank * 100) / 100 + '}',
                        '  {stringL|财力贡献}{value|' + (Math.round(jsonData.RECORDS[1].TotalContribute * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[1].TotalContribute_Rank * 100) / 100 + '}',
                        '    {string|拨款}{value|' + (Math.round(jsonData.RECORDS[1].TotalAppropriation * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[1].TotalAppropriation_Rank * 100) / 100 + '}',
                    ].join('\n'),
                    backgroundColor: '#eee',
                    borderColor: '#777',
                    borderWidth: 1,
                    borderRadius: 4,
                    rich: {
                        title: {
                            color: '#eee',
                            align: 'center'
                        },
                        abg: {
                            backgroundColor: '#333',
                            width: '100%',
                            align: 'right',
                            height: 25,
                            borderRadius: [4, 4, 0, 0]
                        },
                        string: {
                            height: 20,
                            align: 'left',
                            color: 'black',
                            padding: [0, 20, 0, 0]
                        },
                        stringL: {
                            height: 20,
                            align: 'left',
                            color: 'black',
                            padding: [0, 10, 0, 0]
                        },
                        stringHead: {
                            color: '#333',
                            height: 24,
                            align: 'left',
                            padding: [0, 20, 0, 0]
                        },
                        hr: {
                            borderColor: '#777',
                            width: '100%',
                            align: 'right',
                            borderWidth: 0.5,
                            height: 0
                        },
                        value: {
                            width: 40,
                            padding: [0, 10, 0, 40],
                            align: 'left'
                        },
                        valueHead: {
                            color: '#333',
                            width: 40,
                            padding: [0, 10, 0, 30],
                            align: 'center'
                        },
                        rate: {
                            width: 40,
                            align: 'right',
                            padding: [0, 10, 0, 0]
                        },
                        rateHead: {
                            color: '#333',
                            width: 40,
                            align: 'right',
                            padding: [0, 10, 0, 0]
                        }
                    }

                    //formatter: "{a} {b} : {c} ({d}%)"
                }
            },
            data: [{
                value: 1,
                name: 'invisible'
            }]
        },

        {
            type: 'pie',
            center: ['67%', '67%'],
            clockWise: false,
            radius: [180, 200],
            itemStyle: dataStyle,
            hoverAnimation: false,
            label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
            name: jsonData.RECORDS[2].enterprises,
            data: [{
                    value: jsonData.RECORDS[2].TotalTax,
                    name: '税收'
                },
                {
                    value: jsonData.RECORDS[0].TotalTax - jsonData.RECORDS[2].TotalTax,
                    name: '是否与第一名统一税收比例',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle,

                }

            ]
        },
        {
            type: 'pie',
            center: ['67%', '67%'],
            clockWise: false,
            radius: [160, 180],
            itemStyle: dataStyle,
            hoverAnimation: false,
            label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
            name: jsonData.RECORDS[2].enterprises,
            data: [{
                    value: jsonData.RECORDS[2].TotalTaxLeave,
                    name: '留成'
                },
                {
                    value: jsonData.RECORDS[2].TotalTax - jsonData.RECORDS[2].TotalTaxLeave,
                    name: 'invisible',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                },
                {
                    value: jsonData.RECORDS[0].TotalTax - jsonData.RECORDS[2].TotalTax,
                    name: '是否与第一名统一税收比例',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                }

            ]
        },
        {
            type: 'pie',
            center: ['67%', '67%'],
            clockWise: false,
            hoverAnimation: false,
            radius: [140, 160],
            itemStyle: dataStyle,
            label:{normal:{show:true,position:'inside',formatter:'{d}%'}},
            name: jsonData.RECORDS[2].enterprises,

            data: [{
                    value: jsonData.RECORDS[2].TotalContribute,
                    name: '财力贡献'
                },
                {
                    value: jsonData.RECORDS[2].TotalAppropriation,
                    name: '拨款'
                },
                {
                    value: jsonData.RECORDS[2].TotalTax - jsonData.RECORDS[2].TotalContribute - jsonData.RECORDS[2].TotalAppropriation,
                    name: 'invisible',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                },
                {
                    value: jsonData.RECORDS[0].TotalTax - jsonData.RECORDS[2].TotalTax,
                    name: '是否与第一名统一税收比例',
                    label:{
                        show:false
                    },
                    itemStyle: placeHolderStyle
                }

            ]
        },
        {
            type: 'pie',
            center: ['67%', '67%'],
            clockWise: false,
            hoverAnimation: false,
            radius: [0, 1],
            itemStyle: dataStyle,
            name: jsonData.RECORDS[2].enterprises,
            label: {
                normal: {
                    show: true,
                    position: 'center',
                    color: 'black',
                    //fontWeight:'bold',
                    formatter: [
                        '{title|{a}}{abg|}',
                        '  {stringHead|指标名}{valueHead|指标值}{rateHead|排名}',
                        '{hr|}',
                        '    {string|税收}{value|' + (Math.round(jsonData.RECORDS[2].TotalTax * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[2].TotalTax_Rank * 100) / 100 + '}',
                        '    {string|留成}{value|' + (Math.round(jsonData.RECORDS[2].TotalTaxLeave * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[2].TotalTaxLeave_Rank * 100) / 100 + '}',
                        '  {stringL|财力贡献}{value|' + (Math.round(jsonData.RECORDS[2].TotalContribute * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[2].TotalContribute_Rank * 100) / 100 + '}',
                        '    {string|拨款}{value|' + (Math.round(jsonData.RECORDS[2].TotalAppropriation * 100) / 100).toString().replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,') + '}{rate|' + Math.round(jsonData.RECORDS[2].TotalAppropriation_Rank * 100) / 100 + '}',
                    ].join('\n'),
                    backgroundColor: '#eee',
                    borderColor: '#777',
                    borderWidth: 1,
                    borderRadius: 4,
                    rich: {
                        title: {
                            color: '#eee',
                            align: 'center'
                        },
                        abg: {
                            backgroundColor: '#333',
                            width: '100%',
                            align: 'right',
                            height: 25,
                            borderRadius: [4, 4, 0, 0]
                        },
                        string: {
                            height: 20,
                            align: 'left',
                            color: 'black',
                            padding: [0, 20, 0, 0]
                        },
                        stringL: {
                            height: 20,
                            align: 'left',
                            color: 'black',
                            padding: [0, 10, 0, 0]
                        },
                        stringHead: {
                            color: '#333',
                            height: 24,
                            align: 'left',
                            padding: [0, 20, 0, 0]
                        },
                        hr: {
                            borderColor: '#777',
                            width: '100%',
                            align: 'right',
                            borderWidth: 0.5,
                            height: 0
                        },
                        value: {
                            width: 40,
                            padding: [0, 10, 0, 40],
                            align: 'left'
                        },
                        valueHead: {
                            color: '#333',
                            width: 40,
                            padding: [0, 10, 0, 30],
                            align: 'center'
                        },
                        rate: {
                            width: 40,
                            align: 'right',
                            padding: [0, 10, 0, 0]
                        },
                        rateHead: {
                            color: '#333',
                            width: 40,
                            align: 'right',
                            padding: [0, 10, 0, 0]
                        }
                    }

                    //formatter: "{a} {b} : {c} ({d}%)"
                }
            },
            data: [{
                value: 1,
                name: 'invisible'
            }]
        },

    ]
};
myChart.setOption(option);