转化率关系图

描述:当前是关于Echarts图表中的 示例。
 
            var rightArrow = "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABNBAMAAAAYzFT5AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEUAAACZmZmZmZmqqqqZmZkAAAClqsN/AAAAA3RSTlMAf4C/aSLHAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAFdJREFUSMftzbENgCAYROEDHMCCASwYwMQFKNh/JkOhHfnPxuq9+sud9FSuZac+qnUFhUKhUKi3raNQqJ/U7qgU7k1VHZWGo+qI62qWyvHjrFkqW0pHTG6J1zAklFuGvAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wMi0wM1QxODo0OTo1NyswODowMJLTpqcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDItMDNUMTg6NDk6NTcrMDg6MDDjjh4bAAAAAElFTkSuQmCC",
    uploadedDataURL = "/asset/get/s/data-1576742942370-X6JMK0GY.png",
    colors = ['#1cd389', '#668eff', '#ffc751', '#ff6e73', '#8683e6', 'rgba(134,131,230,1)', 'rgba(134,131,230,0.8)', 'rgba(134,131,230,0.6)', 'rgba(134,131,230,0.4)', 'rgba(134,131,230,0.2)'],
    url = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAARCAMAAACLgl7OAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAaVBMVEUAAADBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcEAAAD45xibAAAAInRSTlMAmT6WJYwSfBMGZAFHmEgtkBeCCW0KAlI1k5QeiA10A1tc7ah1owAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAB7SURBVCjPtZDZDoAgDAQXvA+8bwX1/3/SGKIBEd+cx07TdgtIiAF0/mygDvnAoYDr2b3nnjP8wOaDUG6J4ncfR9cdScpMzbJECZEXT1/kesyy0n1VPv6AulF908Kg6+9DWN/hjWGUfhpgYV5Ov8ywwgUhguODddtXvXIAjuUEs/70/t4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTItMTZUMTU6MzM6MDkrMDg6MDCzL2BEAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTEyLTE2VDE1OjMzOjA5KzA4OjAwwnLY+AAAAABJRU5ErkJggg==',
    markLineSetting = {
        normal: {
            show: true,
            backgroundColor: '#e4f5da',
            borderRadius: 4,
            color: '#333',
            verticalAlign: 'middle',
            offset: [40, 0, 0, 0],
            fontSize: 14,
            padding: [3, 10, 5, 10],
            formatter: function(d) {
                if (d.value) {
                    var ins = '{img1|} ' + '{words|' + d.data.itemValue + '}';
                    return ins
                }
            },
            rich: {
                img1: {
                    backgroundColor: {
                        image: uploadedDataURL,
                    },
                    width: 18,
                    height: 16
                },
                words: {
                    color: '#333',
                    position: 'right',
                    fontSize: 14,
                    lineHeight: 20,
                    padding: [0, 0, 5, 0],
                }
            }
        }
    };



var lineargroup = [{
        value: 100,
        name: '目标',
        oriname: "意向",
        number: 98756,
        percent: '15.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },
    {
        value: 80,
        name: '方案率',
        oriname: "方案",
        number: 88756,
        percent: '18.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },
    {
        value: 60,
        name: '商務率',
        oriname: "商務",
        number: 78756,
        percent: '19.56%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },
    {
        value: 40,
        name: '成交率',
        oriname: "即將成交",
        number: 68756,
        percent: '25.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },
    {
        value: 20,
        name: '贏单率',
        oriname: "贏单",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },
    {
        value: 20,
        name: '贏单率1',
        oriname: "贏单1",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },
    {
        value: 20,
        name: '贏单率2',
        oriname: "贏单2",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    }, {
        value: 20,
        name: '贏单率2',
        oriname: "贏单2",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },
     {
        value: 20,
        name: '贏单率2',
        oriname: "贏单2",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },

 {
        value: 20,
        name: '贏单率2',
        oriname: "贏单2",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },

    {
        value: 20,
        name: '贏单率2',
        oriname: "贏单2",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    }, {
        value: 20,
        name: '贏单率2',
        oriname: "贏单2",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },
     {
        value: 20,
        name: '贏单率2',
        oriname: "贏单2",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },

 {
        value: 20,
        name: '贏单率2',
        oriname: "贏单2",
        number: 58756,
        percent: '65.35%', // 非必须,如果不需要,填充空字符串, 左侧的数据

    },


];





var data1 = [];
var data2 = [];
var ydata = [];
var xiaojiantou_data = [];
for (var i = 0; i < lineargroup.length; i++) {
    var obj1 = {
        value: (100 / lineargroup.length) * (lineargroup.length - i),
        num: lineargroup[i].number,
        name: lineargroup[i].oriname
    };
    var obj2 = {
        value: (100 / lineargroup.length) * (lineargroup.length - i),
        percent: lineargroup[i].percent,
        name: lineargroup[i].name,
        itemStyle: {
            normal: {
                color: '#eee',
                borderWidth: 0,
                opacity: 1
            }
        },
    };
    var _jiantou = {
        value: 100,
    }
    data1.push(obj1);
    data2.push(obj2);
    ydata.push(i + 1);
    xiaojiantou_data.push(_jiantou)
}

var _rightHeight = (600 - 20 * (lineargroup.length - 1)) / lineargroup.length + 17;

//转化率数据
var sdata = ['24%', '21%', '15%', '12%', '7%', '97.87%', '20%', '20%', '12%']



var arrowData = [{
    value: 0,
    itemValue: '50%',
    show: false,
    label: markLineSetting,
}]

for (var i = 0; i < lineargroup.length - 1; i++) {
    var _objdd = {
        value: 365 - i * (50 / lineargroup.length),
        itemValue: sdata[i],
        label: markLineSetting,
    }
    arrowData.push(_objdd);
}



var option = {
    backgroundColor: '#ffffff',
    color: colors,
    grid: {
        top: '0',
        left: "2%",
        right: 20,
        height: ((600 - 20 * (lineargroup.length )) / lineargroup.length + 23) * (lineargroup.length - 1)- (lineargroup.length),
        bottom: '10',
    },
    xAxis: [{
            show: false,
            inverse: true,
            position: 'top',
        },
        {
            position: 'bottom',
            show: false,
            min: 100,
            max: 200
        }
    ],
    yAxis: [{
     
        top: '120',
        show: false,
        boundaryGap: false,
        inverse: true,
        type: "category",
        // min: '转化率1',
        data: ydata
    }],
    series: [
        {
            top: 0,
            type: 'funnel',
            height: '600',
            gap: 20,
            minSize: 150,
            left: '20%',
            width: '60%',
            z: 3,

            label: {
                show: true,
                position: 'inside',
                fontSize: '14',
                formatter: function(d) {
                    var ins = d.name + '{aa|} ' + d.data.num;
                    return ins
                },
                rich: {
                    aa: {
                        padding: [8, 0, 6, 0]
                    }
                }
            },
            data: data1
        },
        {
            top: 0,
            type: 'funnel',
            height: '600',
            gap: 20,
            minSize: 150,
            left: '8%',
            width: '60%',
            z: 2,
            label: {
                normal: {
                    color: '#333',
                    position: 'insideLeft',
                    padding: [11, 25],
                    formatter: function(d) {
                        var ins = '{bb|' + d.data.percent + '}';
                        return ins;
                    },
                    rich: {
                        aa: {
                            align: 'center',
                            color: '#666',
                            fontSize: '12',
                            lineHeight: '30'
                        },
                        bb: {
                            align: 'center',
                            color: '#333',
                            fontSize: '22'
                        }
                    }
                }
            },
            data: data2
        },
        {
            top: '0',
            type: 'pictorialBar',
            name: 'xiaojiantou',
            symbolSize: ['32', '17'],
            symbolOffset: [0, -10],
            symbolPosition: 'center',
            symbol: url,
            animation: true,
            symbolClip: true,
            z: 10,
            data: xiaojiantou_data
        },
        {
            top: '0',
            name: 'youcejiantou',
            type: 'pictorialBar',
            symbolPosition: 'center',
            symbolSize: ['73', '' + _rightHeight],
            symbol: rightArrow,
            symbolClip: true,
            xAxisIndex: '1',
            z: 1,
            data: arrowData
        },
    ]
};