echarts 图例文本太长、或者数量太多溢出的处理

根据项目需要,有时从后端取出来的图例数据太多,文本又太长,那么在展示上就不是那么完美,这时就需要对图例进行处理,效果图见下面1中的截图:

1、图例数据太多:

解决方法:echarts中已经封装了对图例的分页处理:在lengend中加入type: "scroll"即可,图例会自动根据容器的宽或高对图例进行分页,但是目前这个分页还是有点bug,就是下一页的第一条数据展示的是上一页的最后一条数据,见下图:

 解决方案【上面的分页bug】:

通过设置legend.pageIconSize【分翻页的svg图标大小】或者legend.pageButtonGap【翻页按钮与图例的间距】,来遮住图例的最后一项数据就🆗了,当然为了样式美观就2个同时设置,但是pageButtonGap的值大小是有要求的太小的话,最后一行数据会显示一部分在页面,太大的话echarts会把那条数据放到下一页之中,就达不到要求的效果,具体的取值要自己调试【取值要刚刚好遮住最后一条数据既可】。效果如下:

 

 

 

 

 

 

 

 

 

2、 图例文本太长:

解决方法:对文字做裁剪并且开启 tooltip。

1、首先对文字做裁剪有2个方法其实都是对lengend格式化处理:

A:js的substr截取,对lengend进行formatter格式化

formatter: function (name) {
          return name.length > 17 ? name.substr(0, 17) + '...' : name
         }

B:echarts封装的echarts.format.truncateText()函数,对lengend进行formatter格式化

formatter: function (name) {
        return echarts.format.truncateText(name, 100, '14px Microsoft Yahei', '…');
    }

2、开启 tooltip:

在lengend中配置显示tooltip

tooltip: {
            show: true
          }

 

以上lengend的完整代码如下:

legend: {
          type: 'scroll',
          orient: 'vertical', //图例列表的布局朝向(垂直排列)
          left: '50%',
          y: 'center',
          bottom: 10,
          itemGap: 15,//图例的上下间距
          itemWidth: 8,//图例左侧图块的长度
          padding: 5,
          textStyle: {
            fontSize: 14,
            fontFamily: 'Microsoft YaHei',
            fontWeight: 400,
            color: '#D5F1FB',
          },
       pageTextStyle: {//设置分页的当前页与总页码的文本样式
              color : 'rgba(36, 196, 221, 0.95)'
            },
          pageIconColor: '#6495ed', //翻页下一页的三角按钮颜色
          pageIconInactiveColor: '#aaa', //翻页(即翻页到头时)
          pageIconSize: 20, //翻页按钮大小
      
pageButtonGap: 22,//翻页按钮与图例的间距
          // pageFormatter: '',//隐藏翻页的数字
          // pageButtonItemGap: 20,//翻页按钮的两个之间的间距
          // selected:this.monitorData.name可不写
          //格式化处理方案一: 
          // formatter: function (name) {
          //   return name.length > 17 ? name.substr(0, 17) + '...' : name
          // },
          //格式化处理方案二: 
          formatter: function (name) {
          return echarts.format.truncateText(name, 100, '14px Microsoft Yahei', '…');
        },
         //开启tooltip
         tooltip: {
            show: true
         }
        }  

 

 

posted @ 2021-07-07 11:38  逸凨  阅读(14156)  评论(2编辑  收藏  举报