echarts折线图设置横向基准线/水平线

 注意:请勿复制源码以防页面乱码 具体基准线设置项请参考js注释

需求:在搜索框内输入数值 基准线会自动移动至相应位置

 

代码如下:

  <div class="mt43  globalflowAnalysisForensics" >

                        
                          <div class="pencilBox" style="text-align:right;height:20px;">
                            <i class="redbox"></i>
                            <span class="whiteColor">安全基线</span>
                            <b class="deepColor"></b>
                            <span class="glyphicon glyphicon-pencil js-pencil" ></span>
                            <div class="js-alertPrompt hidden">
                              <div class=" positionHorn boxLineColor js-Prompt1" style="">
                                <i class="leftBottom"></i>
                                <i class="rightBottom"></i>
                                <input type="" name="" class="boxLineColor iptsearch" placeholder="请设置基线(kb)" autocomplete="off">
                              </div>
                              <input autocomplete="off" type="button" class="search-button smallbutton js-changeline" name="" value="确定">
                            </div>


                          </div>
              						<div class="globalflow" id="globalflow">

                          </div>

              					</div>

 

js如下:

//铅笔点击输入
    $('.js-pencil').on('click',function(){
      $(".js-alertPrompt").removeClass("hidden");
      $(".pencilBox").css("text-align","right");
    });
//确定按钮
    $('.js-changeline').on('click',function(){
      linevalue=Number($(".iptsearch").val());           //将linevalue设置 为数值类型 切记
        $(".js-alertPrompt").addClass("hidden");
      fnBrokenline3('globalflow',unnormalFlow.ssids,unnormalFlow.datasizes);
    });


var linevalue=200;                             //将linevalue设置为全局变量 切记 为数值类型 也不能为0 
    var unnormalFlow="";
    // 异常流量报警
    function fnglobalflowAnalysisForensics(){
        $.ajax({
            url:'/home/susApFlow',
            type:'post',
            data:{},
            success:function(data){
                // var hour = data.hour;
                // var y1 = data.yes_count;
                // var y2 = data.count;
                // fuDoubleDiagram(id,hour,y1,y2,'个');
                unnormalFlow=data
                fnBrokenline3('globalflow',data.ssids,data.datasizes);
            },
            error:function(error){console.log(error);}
        });

    }

    /*折线图 -- 带中间标线*/
    function fnBrokenline3(id,dtx,dty){

        var pieChart = echarts.init(document.getElementById(id));
        var option1 = {
            grid: {
                left: '1%',
                right: '5%',
                bottom: '1%',
                top:'15%',
                containLabel: true
            },
            xAxis: {
                type: 'category',
                axisTick: {           //去掉坐标轴刻线
                    show: false
                },
                axisLine:{
                    lineStyle:{
                       color:'rgba(30,130,190,0.7)'     //X轴的颜色
                    },
                },
                axisLabel:{
                    color:'#FFF',
                    interval: '0',
                    formatter:function(params){
                        var newParamsName = "";// 最终拼接成的字符串
                        var paramsNameNumber = params.length;// 实际标签的个数
                        var provideNumber = 7;// 每行能显示的字的个数
                        var rowNumber = Math.ceil(paramsNameNumber / provideNumber);// 换行的话,需要显示几行,向上取整
                        /**
                         * 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
                         */
                         // 条件等同于rowNumber>1
                        if (paramsNameNumber > provideNumber) {
                        /** 循环每一行,p表示行 */
                        for (var p = 0; p < rowNumber; p++) {
                        var tempStr = "";// 表示每一次截取的字符串
                        var start = p * provideNumber;// 开始截取的位置
                        var end = start + provideNumber;// 结束截取的位置
                        // 此处特殊处理最后一行的索引值
                        if (p == rowNumber - 1) {
                        // 最后一次不换行
                         tempStr = params.substring(start, paramsNameNumber);
                        } else {
                            // 每一次拼接字符串并换行
                        tempStr = params.substring(start, end) + "\n";
                        }
                        newParamsName += tempStr;// 最终拼成的字符串
                        }

                        } else {
                        // 将旧标签的值赋给新标签
                        newParamsName = params;
                        }
                         //将最终的字符串返回
                        return newParamsName
                    }
                },
                data:dtx
            },

                visualMap: {
                    show: false,
                    pieces: [
                      {
                        gt: 0,
                        lte: linevalue,          //这儿设置基线上下颜色区分 基线下面为绿色
                        color: '#03d6d6'
                    }, {
                                
                        gt: linevalue,          //这儿设置基线上下颜色区分 基线上面为红色
                        color: '#e91642'
                    }]
                },
                yAxis: {
                    type: 'value',
                    name: '(kb)',
                    nameTextStyle:{
                        color:'#FFF'
                    },
                    axisTick: {//去掉坐标轴刻线
                        show: false
                    },
                    axisLine:{
                        lineStyle:{
                            color:'rgba(30,130,190,0.7)'         //y轴的颜色
                        },
                    },
                    axisLabel:{
                        color:'#FFF'
                    },
                    splitLine:{show: false},//去除网格线

                },
                series: [{
                    type: 'line',
                    smooth:true,//平滑曲线
                    data:dty,
                    markLine: {
                        silent: true,
                        lineStyle: {
                          normal: {
                            color: '#01fef9'                   // 这儿设置安全基线颜色
                          }
                        },
                        data: [{
                            yAxis: linevalue
                        }],
                        label: {
                          normal: {
                            formatter: '安全\n基线'           // 这儿设置安全基线
                          }
                        },
                    },

                }, ]
            };
        pieChart.setOption(option1);
    }


 

 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值