Echart 制作柏拉图——带二八法则线

一、使用场景

制作柏拉图,带二八法则线,柱状图显示不同的颜色,折点显示占比,在接近80%的折点的右方显示虚线到坐标轴位置,

要求图片

Echart 制作柏拉图——带二八法则线_第1张图片

二、使用echarts制图,脚本如下:

app.title = '柏拉图';

option = {

//添加横线滚动条(解决数据太多时显示重叠问题):根据实际是否需要显示,不显示注释
    dataZoom: {
        start: 0, //默认为0
        end: 90 - 1500 / 31, //默认为100
        type: 'slider',
        show: true,
        xAxisIndex: [0,1],//需要缩放显示的横坐标的序号,多个用逗号分隔;[0,1]指分别缩放显示柱状图和折线图
        handleSize: 1, //滑动条的 左右2个滑动条的大小
        height: 15, //组件高度
        left: 20, //左边的距离
        right: 20, //右边的距离
        bottom: 20, //右边的距离
        fillerColor: new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
            //给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变
            //给第一个设置0,第四个设置1,就是垂直渐变
            offset: 0,
            color: '#3FA7DC'//横向滚动条的颜色
        }, {
            offset: 1,
            color: '#eeeeee'//横向滚动条的颜色
        }]),
        //backgroundColor: 'rgba(0, 0, 0, 0)', //两边未选中的滑动条区域的颜色
        showDataShadow: false, //是否显示数据阴影 默认auto
        showDetail: false, //即拖拽时候是否显示详细数值信息 默认true
        handleIcon: 'M-292,322.2c-3.2,0-6.4-0.6-9.3-1.9c-2.9-1.2-5.4-2.9-7.6-5.1s-3.9-4.8-5.1-7.6c-1.3-3-1.9-6.1-1.9-9.3c0-3.2,0.6-6.4,1.9-9.3c1.2-2.9,2.9-5.4,5.1-7.6s4.8-3.9,7.6-5.1c3-1.3,6.1-1.9,9.3-1.9c3.2,0,6.4,0.6,9.3,1.9c2.9,1.2,5.4,2.9,7.6,5.1s3.9,4.8,5.1,7.6c1.3,3,1.9,6.1,1.9,9.3c0,3.2-0.6,6.4-1.9,9.3c-1.2,2.9-2.9,5.4-5.1,7.6s-4.8,3.9-7.6,5.1C-285.6,321.5-288.8,322.2-292,322.2z',
        filterMode: 'filter',
    },
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'cross',
            crossStyle: {
                color: '#999'
            }
        }
    },
    grid: {
        borderWidth: '10',
        borderColor : '#eeeeee'
    },
    legend: {
        //selectedMode: false,
        //data:['水量','占比']
        data:['','']
    },
    xAxis: [
        {
            type: 'category',
            //显示横坐标中对应值的坐标线(竖线):默认不显示
            //splitLine:{show:true},
            data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
        }
        ,{
            type: 'category',
            show:false,
            boundaryGap : false,
            data: ['', '1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
        }
    ],
    yAxis: [
        {
            type: 'value',
            //纵坐标轴上的各个值对应的横线是否显示:默认显示
            splitLine:false,
            name: '水量',
            min: 0,
            max: 250,
            interval: 50,
            axisLabel: {
                formatter: '{value} ml'
            }
        },
        {
            type: 'value',
            name: '占比',
            min: 0,
            max: 100,
            interval: 15,
            //纵坐标轴上的各个值对应的横线是否显示:默认显示
            splitLine:false,
            //splitArea : {show : true}, //保留网格区域
            axisLabel: {
                formatter: '{value} %'
            }
        }
    ],
    series: [
        {
            name:'水量',
            type:'bar',
            //柱状图之间的空隙为0
            barCategoryGap: '0',
        
            //设置柱状图的颜色
            itemStyle: {
                normal: {
                    color: function(params) {
                        var colorList = [
                          '#5e7e54','#e44f2f','#81b6b2','#eba422','#5e7e54',
                          '#e44f2f','#81b6b2','#eba422','#5e7e54','#e44f2f','#2e7e04','#e00f2f'
                        ];
                        return colorList[params.dataIndex]
                    },
                    //color: '#5a9bd5',
                    //设置柱状图边框线颜色
                    //barBorderColor: 'black',
                    //设置柱状图边框线的显示宽度
                    //barBorderWidth:0.2
                }
            },
            data:[15, 10, 9, 8, 8, 8, 8, 8, 8, 7, 6, 5]
        },
        {
            name:'占比',
            type:'line',
            symbolSize:10,
            //显示数字
            itemStyle : 
            { 
                normal: {
                    //color:'#f37b1d',
                    color: function(params) {
                        var colorList = [
                          '','#f37b1d','#f37b1d','#f37b1d','#f37b1d',
                          '#f37b1d','#f37b1d','#f37b1d','#f37b1d',
                          'red','#f37b1d','#f37b1d',''];
                        return colorList[params.dataIndex]
                    },
                    label : 
                    {
                        show: true,
                        //格式化
                        formatter: '{c}%'
                    }
                }
            },
            xAxisIndex: 1,
            yAxisIndex: 1,
            data:[0, 13, 26, 32, 42, 50, 58, 66, 74, 82, 89,95, 100]
        }
        ,
        {
        type: 'scatter',
        xAxisIndex: 1,
        yAxisIndex: 1,
        data: [[8, 82]],
        //symbolSize: 0,
        symbol:'none',//去掉箭头
        //二八线
        markLine: {
                itemStyle: {
                    normal: { 
                        lineStyle: { 
                            color: "#c00",
                            type: 'dotted',  //'dotted'虚线 'solid'实线,默认实线
                            width: 1
                        },
                        label: { 
                            show: true, 
                            //position:'top' 
                        } 
                    },
                    //圆点加强显示
                    // emphasis: {
                    //     color: "#d9def7"
                    // }
                },
                data: [
                    //平行于坐标轴和坐标轴等长的二八线
                    // {
                    //     xAxis:'9月',
                    //     name: '二八竖线',
                    //     label:{
                    //         formatter: '{c}'
                    //     },
                    //     itemStyle: {
                    //         normal: {
                    //             color: "#b84a58"
                    //         }
                    //     }
                    // }, {
                    //     yAxis: '82',
                    //     name: '二八横线',
                    //     label:{
                    //         formatter: '{c}%'
                    //     },
                    //     itemStyle: {
                    //         normal: {
                    //             color: "#b84a58"
                    //         }
                    //     }
                    // },
                    //指定坐标点之间的线
                    //竖线
                    [
                        {
                            name: '',
                            xAxis: '9月',
                            yAxis: 82
                        },
                        {
                            xAxis: '9月',
                            yAxis: 0
                        }
                    ],
                    //横线
                    [
                        {
                            name: '',
                            xAxis: '9月',
                            yAxis: 82
                        },
                        {
                            xAxis: '12月',
                            yAxis: 82
                        }
                    ]
                ]
                ,symbol: ['none', 'none'],
            }
        }
    ]
};

三、运行效果:

Echart 制作柏拉图——带二八法则线_第2张图片

四、实例运行网址:

https://www.echartsjs.com/examples/editor.html?c=mix-line-bar

五、参照网址:

https://blog.csdn.net/xiaoyu19910321/article/details/78540877

https://blog.csdn.net/luanpeng825485697/article/details/76864440

横向滚动条:https://blog.csdn.net/Arbort_/article/details/80884789

你可能感兴趣的:(Echarts,echarts,柏拉图)