横向漏斗图

描述:当前是关于Echarts图表中的 漏斗图 示例。
 
            
var lineargroup = [
    {
        value: 70,
        name: 'All Customers',
        oriname: '访客',
        number: '82%',
        text1: '访问1',
        value1: '3200',
        text2: 'Item Name 1',
        value2: '',
    },
    {
        value: 40,
        name: 'Winner',
        oriname: '下单',
        number: '63%',
        text1: '下单金额',
        value1: '1349',
        text2: 'Item Name 2',
        value2: '',
    },
    {
        value: 20,
        name: 'Payfor',
        oriname: '支付',
        number: "41%",
        text1: '支付金额',
        value1: '514',
        text2: 'Item Name 3',
        value2: '321',
    },
    {
        value: 10,
        name: 'Order',
        oriname: '支付',
        number: "27%",
        text1: '支付金额',
        value1: '141',
        text2: 'Item Name 4',
        value2: '321',
    },
];

var data1 = [];
var data2 = [];
for (var i = 0; i < lineargroup.length; i++) {
    var obj1 = {
        value: lineargroup[i].value,
        name: lineargroup[i].name,
    };
    var obj2 = {
        data: lineargroup[i],
        itemStyle: {
            normal: {
                color: '#fff',
                borderWidth: 1,
                borderColor: '#f5f5f5',
                opacity: 1,
            },
        },
    };
    data1.push(obj1);
    data2.push(obj2);
}

var colorList = [{
    type: 'linear',
    colorStops: [{
        offset: 0,
        color: '#7879f1' // 0% 处的颜色
    }],
}, {
    type: 'linear',
    colorStops: [{
        offset: 0,
        color: '#565dd1' // 0% 处的颜色
    }],
}, {
    type: 'linear',
    colorStops: [{
        offset: 0,
        color: '#3143b1' // 0% 处的颜色
    }],
}, {
    type: 'linear',
    colorStops: [{
        offset: 0,
        color: '#002a93' // 0% 处的颜色
    }],
}]

option = {
    legend: {//图例
        type: 'scroll',//可滚动的图例
        bottom: '1%',//图例组件离容器左侧的距离:靠左
        data: ['All Customers', 'Winner', 'Payfor', 'Order']
    },
    tooltip: {
        trigger: 'item',
        formatter: "{b} : {c}%"
    },
    calculable: true,
    series: [{
        top: 380,
        type: 'funnel',
        color: colorList,
        sort: "descending",
        height: '250',
        left: '0%',
        width: '100%',
        minSize: 20,
        orient: 'horizontal',

        label: {
            show: true,
            position: 'inside',
            fontSize: '12',
            formatter: function (d) {
                var ins = d.value + '%';
                return ins;
            },
            rich: {
                aa: {
                    color: '#000',
                    padding: [8, 0, 6, 0],
                },
            },
        },
        data: data1,
    },
    {
        type: 'funnel',
        color: colorList,
        left: '0%',
        top: 160,
        height: '100%',
        gap: 0,
        z: 1,
        width: '100%',
        minSize: '100%',
        sort: 'descending',
        orient: 'horizontal',
        tooltip: {
            show: false,
        },
        label: {
            position: 'insideLeft',
            padding: [300, 0, 0, -80],
            formatter: function (d) {
                console.log(d);
                let ins =
                    '{aa|' + d.data.data.name + '}' +
                    '\n{bb|' + d.data.data.value1 + '}' +
                    '\n{cc|' + d.data.data.text2 + '}' +
                    '\n{dd|' + d.data.data.value1 + '}' +
                    '{ee|' + d.data.data.number + '}' +
                    '';
                return ins;
            },
            rich: {
                aa: {
                    color: '#000',
                    fontSize: '16',
                    lineHeight: '30',
                    padding: [0, 0, 0, 0]
                },
                bb: {
                    color: '#666',
                    fontSize: '22',
                    fontWeight: 'bold',
                    padding: [5, 0, 0, 0],
                },
                cc: {
                    color: '#999',
                    fontSize: '14',
                    padding: [20, 0, 0, 0],
                },
                dd: {
                    padding: [5, 0, 0, 0],
                },
                ee: {
                    padding: [0, 0, 0, 80],
                },
            },
        },
        labelLine: {
            normal: {
                show: false
            },
            emphasis: {
                show: false,
            }
        },
        itemStyle: {
            borderColor: '#fff',
            borderWidth: 0
        },
        data: data2
    }]
};