echarts的x轴文字展示不全

本文介绍了如何解决Echarts图表中X轴文字过长导致的重叠问题,包括设置文字倾斜、调整图表位置、使用多列折叠显示以及通过formatter函数实现文字间隔换行。这些方法能有效改善图表的可读性和美观性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当x轴文字过长时,可能会出现重叠现象,如图:

 解决文字过长展示不全的问题,可以有以下解决方式:

设置x轴文字倾斜一定角度,可防止文字重叠

1

2

3

4

5

6

7

8

9

10

xAxis: [

    {

        name: '部门',

        type:'category',

        axisLabel: {

            interval:0,

            rotate:40,

        }

    }

]

  如此便可避免重叠,效果如图:

 但这里还有个问题,如果文字还是太长,会显示不全,可以尝试设置echarts图整体向上挪一下:

1

2

3

grid:{

            bottom:140+'px',

        },

效果如图:

 但整体看不是那么美观,如果像让x轴分多列折叠,可以设置以下属性:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

axisLabel: {

                    interval:0,

                    // rotate:40,

                    formatter:function(value){

             

                        var ret = "";  //拼接加\n返回的类目项

                        var maxLength = 2;  //每项显示文字个数

                        var valLength = value.length;  //X轴类目项的文字个数

                        var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数

                        if (rowN > 1) { //如果类目项的文字大于3,

                            for (var i = 0; i < rowN; i++) {

                                var temp = "";//每次截取的字符串

                                var start = i * maxLength;//开始截取的位置

                                var end = start + maxLength;//结束截取的位置

                                //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧

                                temp = value.substring(start, end) + "\n";

                                ret += temp; //凭借最终的字符串

                            }

                            return ret;

                        }else {

                            return value;

                        }

                    }

                }

  

效果如图:

 还有一种解决方式就是,X轴类目项隔一个换行(使用formatter中index参数)

1

2

3

4

5

6

7

8

9

10

axisLabel: {

        interval: 0,

       formatter:function(value,index) {

            debugger

       if (index % 2 != 0) {

               return '\n\n' + value;

         }else {

               return value;

             }

         }<br>}

  效果如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值