前言:formatter格式化方法。格式化之所以存在,主要是因为我们想把一些不够人性化的内容通过处理让其变成我们想要的样子,便于用户更好地理解内容。
首先ECharts官网API提供了一些formatter格式化参数模板:
- 字符串模板
模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。 在 trigger 为'axis' 的时候,会有多个系列的数据,此时可以通过{a0}, {a1}, {a2} 这种后面加索引的方式表示系列的索引。 不同图表类型下的{a},{b},{c},{d}含义不一样。 其中变量{a}, {b}, {c}, {d}在不同图表类型下代表数据含义为:
折线(区域)图、柱状(条形)图、K线图: {a}(系列名称),{b}(类目值),{c}(数值), {d}(无)
散点图(气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无)
地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无)
饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
- 回调函数
回调函数格式:(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) => string
ECharts图表组件内的格式化常用的地方:
- tooltip
图表内数据点的悬浮框提示框信息展现的时候我们可以加以数据格式化,以便于更好地观察数据和分析数据。
比如:在数值后加一个单位字符串
tooltip: {
trigger:'item',
padding:[20,10,20,10],
formatter:'{a} </br>{b}:{c}%'
},
- axisLabel
坐标轴刻度上面的刻度格式化,比如Y表示长度,我们往往需要在每一个刻度值后面带上“m”的单位,Y轴意义不同,加不同的单位。
格式化Y轴刻度的示例代码如下:
yAxis: [
{
type: 'value',
axisLabel: {
show:true,
formatter:'{value} m'
},
boundaryGap: ['0','20%']
}
],
- series内的label
series: [
{
name:'常驻城市人数比例',
type:'bar',
barWidth:'45',
data:[10,15,20,25,30],
// data:citiesRate,
itemStyle: {
normal: {
color:new echarts.graphic.LinearGradient(
0,0,0,1,
[
{offset:0,color:'#7EDBFD'},
{offset:1,color:'#3169c7'}
]
),
label: {
show:true,
position:'top',
formatter:'{c}%'
}
},
emphasis: {
barBorderWidth:1,
shadowBlur:10,
shadowOffsetX:0,
shadowOffsetY:0,
shadowColor:'rgba(0,0,0,0.7)'
}
}
}
]
注意点:formatter格式化不但可以用echarts提供的模板,还可使用function。例如:
label:{
normal:{
formatter:function(v){
vartext=v.name;
returntext.length>10?text.substr(0,10)+"...":text;
}
}
}