Echart学习记录----formatter

4,778 阅读1分钟

formatter==格式化

在使用echart的时候经常会要修改部分的文字显示,从官方的文档上看,包括的内容很多,大部分都是关于lable标签的,因为在lable中时常要更改它的显示格式。

通常要使用formatter,它自己有默认的几个参数 a,b,c,但是默认参数并不是一样的,在不同的情况下回调的参数也不相同,所以如果有些地方不太清楚它的参数情况的话,还要去查找一下相关的内容。

legend 图例自定义

在option的设置里面,legend是设置图例的,并且要与series里面的内容要能互相对应。legend的基本用法就不再赘述了,红框内的data就是标签显示的内容,但是要能和series的数据对应,如果不对应的话就无法正常显示。

在legend里面formatter的参数是固定的,只有一个,它的本身内容其实就是series里面各个例子的name标签。它的调用是依次的,并不是一下子返回全部的name,每次调用的时候只是其中一个的name,所以这里formatter的操作,是对单个进行操作的

如果只是想稍微改一下显示的内容的话,也可以使用formatter: 'some text {value} some text',这里面的{values}的就是name的值,所以其实legend里面的话直接用formatter就可以了。

option = {    xAxis: {        type: 'category',        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']    },    yAxis: {        type: 'value'    },    legend:{      //函数表达      formatter:function (name){        //这个用的模版字符串        return `formatter:${name}`      }       //formatter的string来进行规范的话就这么写      formatter:'formatter string{value}'    },    series: [    {        name:"测试",        data: [820, 932, 901, 934, 1290, 1330, 1320],        type: 'line'    },    {        name:"测试2",        data: [0, 932, 901, 934, 1290, 1330, 1320],        type: 'line'    }]};

上面代码的效果如下

ToolTip 提示悬浮框

toolTip主要是当我们要点击选择横轴(线或者)位置或者类别(饼图)的时候,可以看到所有的series数据,当然很多时候我们需要改变这个悬浮框内的样式,以及展示的内容,就可以用formatter来进行格式化

toolTip里包括两个标签的formatter,一个是tooltip内部的一个formatter,另外一个是axisPointer.lable【就是你选的那个横轴会有一个标记显示在下面】里面的formatter,下方先给出的是tooltip里的第一层的formatter,这里这个主要更改的是鼠标显示位置的.

同样如果不是非常复杂,就是要进行选择自己内容的判定之类的话,用formatter的string形式就可以了。formatter:'text👏{value}',可以看到function里的参数有三个abc,三个的含义分别是series的数组,类目值,是一个函数,这个还不太懂,a这个返回的是当前这个横坐标上所有series的值,b(不是特别清楚,最开始以为是坐标,后来发现又不是,还没查到)

tooltip:{        trigger:'axis',        formatter:function(a,b,c){            //这里的abc可以改名的,它是说有三个参数,第一个是series,第二是类目值,第三个是一个函数,可以改的            console.log("a",a)            console.log("b",b)            console.log("c",c)            let toolTipStr=''            const emoj=["😲","🤖","😹"]            a.forEach((item,index)=>{                toolTipStr=toolTipStr+                    `${emoj[index]}formatter:${item.value}                    <i                     style="                    display: inline-block;                    width: 10px;                    height: 10px;                    background:${item.color};                    margin-right: 5px;                    border-radius: 50%;                    }">                    </i>                    <br/>`            })            return toolTipStr        }    },