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 } },