echarts中图例换行并且对齐的一种方法

本文介绍了如何在Echarts图表中实现图例换行且保持对齐的效果。通过计算图例总宽度并设定每个图例的宽度,确保文字宽度一致,从而解决对不齐的问题。关键代码涉及对图例宽度和文字宽度的设置,使用了富文本样式。
摘要由CSDN通过智能技术生成

前言:

在统计图中,经常遇到图例很多的情况,此时一行很有可能就放不下了,就想到了换行,当然默认一行放不下的时候,图例也是会自动换行,可是。。。他对不齐呀!!就跑去问产品,对不齐行不行,产品说:怎么会对不齐呢???(黑人问号)我说也可以对齐,但是得配置一下(其实心里只想这样就行了吧)不过最后还是满足她,都给我对齐!!

在说我的方法前,我们看一下,默认的换行:

对不齐的原因可能是因为默认的图例间距固定,每个图例的大小由字体而自适应吧(猜的),不过这个也不怎么重要。 我也看了网上有很多大佬有其他方法,图例分组什么的,我主要是嫌麻烦,所以找到了一个还算简单的方法,话不多说,上才艺(方法)!!

关键思路:

获取图例的总宽度,然后除以自己想设置一行几个,算出来一个图例的宽度,听上去很简单吧。获取图例的总宽度基本就是echarts画布的大小,很容易获取,假设是allWidth,假定一行显示10个,那么每个图例的宽度就是:

width = allWidth / 10

图例由icon和文本组成,他们各自的宽度都能分别设置,而造成对不齐的原因主要是文字个数不定,所以只要设置文字宽度一致后,就能对齐了!!下面上代码:

关键代码:

// echarts 的 legend配置 
legend: {
     data: legendData,
     icon: 'circle',
     formatter: '{a|{name}}',
     itemGap: 0,
     left: 'center',
     textStyle: {
        color: "#1B1B4E",
        padding: [0, 0, 0, 0],
        rich:{
           a: {
             width: (allWidth - 200) / 10,
             height:38,
             fontSize: 12
           },
        }
    },
 },

实现效果: 

说明:

这里用的文本的富文本样式,使用说明详见echarts。另外我在allWidth的基础上又减了200,这个根据自己的实际情况设置,我的理解是减去了一行icon的所有宽度,因为我们设置的是文本的宽度,要把icon的宽度减掉在计算。个人感觉还挺简单的,希望对你们有帮助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值