echarts折线图legend太多与图重叠处理办法

 更新时间:2024年02月20日 09:46:02   作者:liaoxiuqing  
ECharts折线图的Legend(图例)用于展示每条折线所对应的数据系列名称,下面这篇文章主要给大家介绍了关于echarts折线图legend太多与图重叠的处理办法,文中通过代码介绍的非常详细,需要的朋友可以参考下
getGridTop(legendData) {
    varDEFAULT_LINE_NUM = 10; // 采用默认grid.top值的默认线条数目;
    var DEFAULT_GRID_TOP_PECENTAGE = 18; // 默认的grid.top百分比(整数部分);
    var DELTA_GRID_TOP_PECENTAGE = 5; // 超出默认线条数时的grid.top百分比增量(整数部分);
    var MAX_GRID_TOP_PECENTAGE = 20; // 最大的grid.top百分比(整数部分);
    var topInt;
    var gridTop;
    var len = legendData.length;
    // 如果图例太多,需要调整option中的grid.top值才能避免重叠
    topInt = len > DEFAULT_LINE_NUM
        ? DEFAULT_GRID_TOP_PECENTAGE
        + DELTA_GRID_TOP_PECENTAGE * (Math.ceil((len - DEFAULT_LINE_NUM) / 10))
        : DEFAULT_GRID_TOP_PECENTAGE;
    if (topInt >= MAX_GRID_TOP_PECENTAGE) {
        topInt = MAX_GRID_TOP_PECENTAGE;
    }
    gridTop = topInt + "%";
    return gridTop;
},
echarts 代码
//第一步:处理 legend 过多,一行显示个数控制
if(this.lincData.length>0){
    this.lincData.forEach((el,index) => {
        let data= Object.values(el)
        let name = data.shift()
        //一行显示个数控制
        if(index%10==0){
            legendname.push("") //分行
        }
        legendname.push(name)

        series.push(
            {
                name: name,
                type: 'line',
                stack: 'Total',
                data: data
            }
        )
    });
}

let gridtop = this.getGridTop(legendname)
let option = {
	......
	tooltip: {
        trigger: 'axis',
        // 第三步:处理鼠标放在图片内容因为过多显示不全
        formatter:function(params){
            let res = params[0].axisValueLabel;
            function getHtml(param){
                let str = '<div style="float: left"><span style="background: '+param.color+'; width: 11px; height: 11px; border-radius: 11px;float: left; margin: 5px 3px;"></span>'+
                param.seriesName+':'+param.data+'&emsp;&emsp;</div>';
                return str;
            }
            let flag=false;
            res += '<div style="clear: both">';
            for (let i = 0; i < params.length; i++) {
                res += getHtml(params[i]);
                if (params.length>11 && i%2==1){
                    res += '</div><div style="clear: both">';
                }
                if (params.length <=11){
                    res += '</div><div style="clear: both">';
                }
            }
            res += "</div>";
            return res;
        }
    },
	//第一步
	legend: {
	          data: legendname
	 },
	 //第二步:处理legendname与图重叠
	 grid: {
         top:gridtop,
         left: '3%',
         right: '4%',
         bottom: '3%',
         containLabel: true
     },
	 ....
}

处理前:

处理后:

总结 

到此这篇关于echarts折线图legend太多与图重叠处理办法的文章就介绍到这了,更多相关echarts折线图legend与图重叠内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用jsonp跨域调用百度js实现搜索框智能提示

    利用jsonp跨域调用百度js实现搜索框智能提示

    这篇文章主要为大家详细介绍了使用jsonp跨域调用百度js实现搜索框智能提示,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • 有效的捕获JavaScript焦点的方法小结

    有效的捕获JavaScript焦点的方法小结

    阅读本文可理解并解决以下问题 设置元素可获得焦点以监听键盘事件 某个元素明明设置了聚焦却没效果 聚焦时抛出异常的
    2009-10-10
  • JavaScript navigator.userAgent获取浏览器信息案例讲解

    JavaScript navigator.userAgent获取浏览器信息案例讲解

    这篇文章主要介绍了JavaScript navigator.userAgent获取浏览器信息案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • js canvas实现5张图片合成一张图片

    js canvas实现5张图片合成一张图片

    这篇文章主要为大家详细介绍了js canvas实现5张图片合成一张图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 简洁短小的 JavaScript IE 浏览器判定代码

    简洁短小的 JavaScript IE 浏览器判定代码

    IE浏览器不管是什么版本,总是跟Web标准有些不太兼容。对于代码工作者来说,自然是苦不堪言,为了考虑IE的兼容问题,不管是写 CSS 还是 JS,往往都要对 IE 特别对待,这就少不了做些判断。本文不讨论如何区分 IE 的样式,仅是 JS 判定 IE 浏览器。
    2010-03-03
  • 实例解析Array和String方法

    实例解析Array和String方法

    本文主要对Array和String方法进行总结,每一部分总结后有实例代码,代码中黄色框方法不改变原数组。PS:所有实例结果均一一运行所得。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • 详解webpack 如何集成第三方js库

    详解webpack 如何集成第三方js库

    这篇文章主要介绍了详解webpack 如何集成第三方js库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • js回调函数仿360开机

    js回调函数仿360开机

    这篇文章主要为大家详细介绍了js回调函数仿360开机,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • js function定义函数使用心得

    js function定义函数使用心得

    js function定义函数使用心得,了解这个才能更进一步的了解js面向对象方面的知识。
    2010-04-04
  • 老生常谈js中的MVC

    老生常谈js中的MVC

    下面小编就为大家带来一篇老生常谈js中的MVC。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论