球赛技术统计

描述:当前是关于Echarts图表中的 柱状图 示例。
 
            

var data = {
    "_type": "statistics",
    "_title": "中超#2018-05-13#江苏苏宁vs大连一方",
    "_data": [
        {
            "_name": "进球",
            "_left": "1",
            "_right": "0"
        },
        {
            "_name": "控球率",
            "_left": "42.5%",
            "_right": "57.5%"
        },
        {
            "_name": "助攻",
            "_left": "1",
            "_right": "0"
        },
        {
            "_name": "射正",
            "_left": "4",
            "_right": "1"
        },
        {
            "_name": "射门",
            "_left": "15",
            "_right": "13"
        },
        {
            "_name": "传球",
            "_left": "281",
            "_right": "369"
        },
        {
            "_name": "抢断",
            "_left": "21",
            "_right": "13"
        },
        {
            "_name": "角球",
            "_left": "2",
            "_right": "8"
        },
        {
            "_name": "任意球",
            "_left": "20",
            "_right": "13"
        },
        {
            "_name": "越位",
            "_left": "1",
            "_right": "0"
        },
        {
            "_name": "犯规",
            "_left": "13",
            "_right": "20"
        },
        {
            "_name": "黄牌",
            "_left": "2",
            "_right": "4"
        },
        {
            "_name": "红牌",
            "_left": "3",
            "_right": "3"
        }
    ],
    "_teams": [
        "江苏苏宁",
        "大连一方"
    ],
    "_league_name": "中超"
}




var uploadedDataURL1 = "/asset/get/s/data-1534230068281-ry3ERxeU7.jpg";
var uploadedDataURL2 = "/asset/get/s/data-1534230056221-B1xEAgxU7.jpg"
var zongjine = [0];
var team = [];
var myData = [];
var myData_l = [];
var myData_r = [];
var garybar = [];
var data_l = [];
var data_r = [];
var colorList1 = [];
var colorList2 = [];

function dataConvert(data) {
    team = data['_teams'];
    for(var i = 0;i < data['_data'].length;i++) {
        myData.push(data['_data'][i]['_name']);
        var l = parseFloat(data['_data'][i]['_left']);
        var r = parseFloat(data['_data'][i]['_right']);
        myData_l.push(data['_data'][i]['_left']);
        myData_r.push(data['_data'][i]['_right']);
        garybar.push(1);
        var l2 = l/(l+r);
        var r2 = r/(l+r);
        data_l.push(l2);
        data_r.push(r2);
        if(l2 > r2) {
            colorList1.push('#53a748');
            colorList2.push('#888888');
        }
        else if(l2 == r2) {
            colorList1.push('#53a748');
            colorList2.push('#53a748');
        }
        else {
            colorList1.push('#888888');
            colorList2.push('#53a748');
        };

    }
    console.log(colorList1);
    
}
dataConvert(data);
option = {
    textStyle: {
        fontFamily: 'PingFangSC-Medium, sans-serif'
    },
    title : {
        text: '技术统计',
        x: 'center',
        align: 'right',
        textStyle: {
            fontSize: 24,
            color: '#4a4a4a',
        }


    },
        
    grid: [{
        show: false,
        left: '3%',
        top: 120,
        bottom: 10,
        width: '0%',
    }, {
        show: false,
        left: '10%',
        top: 120,
        bottom: 10,
        containLabel: true,
        width: '34%',
    }, {
        show: false,
        left: '49%',
        top: 120,
        bottom: 10,
        width: '0%',
    }, {
        show: false,
        right: '10%',
        top: 120,
        bottom: 10,
        containLabel: true,
        width: '34%',
    }, {
        show: false,
        right: '3%',
        top: 120,
        bottom: 10,
        width: '0%',
    },
    {
        show: false,
        left: '23%',
        top: 5,
        bottom: 10,
        containLabel: true,
        width: '10%',
    },
    {
        show: false,
        left: '68%',
        top: 5,
        bottom: 10,
        containLabel: true,
        width: '10%',
    }],

    xAxis: [
        {

            show: false,
        },
        {
            gridIndex: 1,
            type: 'value',
            inverse: true,
            axisLine: {
                show: false,
            },
            axisTick: {
                show: false,
            },
            position: 'top',
            axisLabel: {
                show: false,
                textStyle: {
                    color: '#B2B2B2',
                    fontSize: 12,
                },
            },
            splitLine: {
                show: false,
                lineStyle: {
                    color: '#1F2022',
                    width: 1,
                    type: 'solid',
                },
            },
        }, {
            gridIndex: 2,
            show: false,
        }, {
            gridIndex: 3,
            type: 'value',
            axisLine: {
                show: false,
            },
            axisTick: {
                show: false,
            },
            position: 'top',
            axisLabel: {
                show: false,
                textStyle: {
                    color: '#B2B2B2',
                    fontSize: 12,
                },
            },
            splitLine: {
                show: false,
                lineStyle: {
                    color: '#1F2022',
                    width: 1,
                    type: 'solid',
                },
            },
        }, {
            gridIndex: 4,
            show: false,
        },{
            gridIndex: 5,
            show: false,
        },{
            gridIndex: 6,
            show: false,
        }],
    yAxis: [
        {

            type: 'category',
            inverse: true,
            position: 'right',
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisLabel: {
                show: true,
                textStyle: {
                    color: '#4b4b4b',
                    fontSize: 16,
                },

            },
            data: myData_l.map(function (value) {
                return {
                    value: value,
                    textStyle: {
                        align: 'center',
                    }
                }
            }),
        }, 
        {
            gridIndex: 1,
            type: 'category',
            inverse: true,
            position: 'right',
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisLabel: {
                show: false,
                margin: 8,
                textStyle: {
                    color: '#4b4b4b',
                    fontSize: 12,
                },

            },
            data: myData,
        }, 
        {
            gridIndex: 2,
            type: 'category',
            inverse: true,
            position: 'right',
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisLabel: {
                show: true,
                textStyle: {
                    color: '#4b4b4b',
                    fontSize: 16,
                },

            },
            data: myData.map(function (value) {
                return {
                    value: value,
                    textStyle: {
                        align: 'center',
                    }
                }
            }),
        }, 
        {
            gridIndex: 3,
            type: 'category',
            inverse: true,
            position: 'left',
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisLabel: {
                show: false,
                textStyle: {
                    color: '#4b4b4b',
                    fontSize: 12,
                },

            },
            data: myData,
        }, 
        {
            gridIndex: 4,
            type: 'category',
            inverse: true,
            position: 'left',
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisLabel: {
                show: true,
                textStyle: {
                    color: '#4b4b4b',
                    fontSize: 16,
                },

            },
            data: myData_r.map(function (value) {
                return {
                    value: value,
                    textStyle: {
                        align: 'center',
                    }
                }
            }),
        },
        {
            gridIndex: 5,
            type: 'category',
            inverse: true,
            position: 'left',
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisLabel: {
                show: false,
                textStyle: {
                    color: '#4b4b4b',
                    fontSize: 16,
                },

            },
            data: myData_r.map(function (value) {
                return {
                    value: value,
                    textStyle: {
                        align: 'center',
                    }
                }
            }),
        },
        {
            gridIndex: 6,
            type: 'category',
            inverse: true,
            position: 'left',
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisLabel: {
                show: false,
                textStyle: {
                    color: '#4b4b4b',
                    fontSize: 16,
                },

            },
            data: myData_r.map(function (value) {
                return {
                    value: value,
                    textStyle: {
                        align: 'center',
                    }
                }
            }),
        }
    ],
    series: [
        {
            type: 'bar',
            itemStyle: {
                normal: {
                    color: '#ddd'
                }
            },
            silent: true,
            xAxisIndex: 1,
            yAxisIndex: 1,
            barWidth: 20,
            barGap: '-100%', // Make series be overlap
            data: garybar
        }, {
            type: 'bar',
            itemStyle: {
                color: function (params){
                    var colorList = colorList1;
                    return colorList[params.dataIndex];
                }
            },
            xAxisIndex: 1,
            yAxisIndex: 1,

            barWidth: 20,
            z: 10,
            data: data_l
        },

        {
            type: 'bar',
            itemStyle: {
                normal: {
                    color: '#ddd'
                }
            },
            silent: true,
            barWidth: 20,
            barGap: '-100%', // Make series be overlap
            xAxisIndex: 3,
            yAxisIndex: 3,
            data: garybar
        }, {
            type: 'bar',
            itemStyle: {
                color: function (params){
                    var colorList = colorList2;
                    return colorList[params.dataIndex];
                }
            },
            barWidth: 20,
            xAxisIndex: 3,
            yAxisIndex: 3,
            z: 10,
            data: data_r
        },
        {
            type: 'bar',
            xAxisIndex: 5, 
            yAxisIndex: 5,
            barGap: '-100%',
            barWidth: '25%', //统计条宽度
            itemStyle: {
                normal: {
                    barBorderRadius: 20,
                    color: '#fff'
                },
            },
            label: {
                normal: {
                    show: true,
                    //label 的position位置可以是top bottom left,right,也可以是固定值
                    //在这里需要上下统一对齐,所以用固定值
                    position: [0, '-100%'],
                    rich: { //富文本
                        
                        start1: {
                            backgroundColor: {
                                image: uploadedDataURL1,
                            },
                            width: 60,
                            height: 60,
                            align: 'center',
                        },
                        black: {
                            color: '#4b4b4b',
                            lineHeight: 50,
                            align: 'center',
                            fontSize: 18,
                        },
                    },
                    formatter: function(value) {
                        //富文本固定格式{colorName|这里填你想要写的内容}
                        return '{start1|}\n{black|' + team[0]+'}';
                    },
                }
            },
            data: zongjine
        },
        {
            type: 'bar',
            xAxisIndex: 6, 
            yAxisIndex: 6,
            barGap: '-100%',
            barWidth: '25%', //统计条宽度
            itemStyle: {
                normal: {
                    barBorderRadius: 20,
                    color: '#fff'
                },
            },
            label: {
                normal: {
                    show: true,
                    //label 的position位置可以是top bottom left,right,也可以是固定值
                    //在这里需要上下统一对齐,所以用固定值
                    position: [0, '-100%'],
                    rich: { //富文本
                        
                        start1: {
                            backgroundColor: {
                                image: uploadedDataURL2,
                            },
                            width: 60,
                            height: 60,
                            align: 'center',
                        },
                        black: {
                            color: '#4b4b4b',
                            lineHeight: 50,
                            align: 'center',
                            fontSize: 18,
                        },
                    },
                    formatter: function(value) {
                        //富文本固定格式{colorName|这里填你想要写的内容}
                        return '{start1|}\n{black|' + team[1]+'}';
                    },
                }
            },
            data: zongjine
        }

    ]

};