前言:formatter格式化方法。格式化之所以存在,主要是因為我們想把一些不夠人性化的內容通過處理讓其變成我們想要的樣子,便于用戶更好地理解內容。
首先ECharts官網API提供了一些formatter格式化參數模板:
- 字符串模板
模板變量有 {a}, ,{c},c41mlq6,{e},分別表示系列名,數據名,數據值等。 在 trigger 為'axis' 的時候,會有多個系列的數據,此時可以通過{a0}, {a1}, {a2} 這種后面加索引的方式表示系列的索引。 不同圖表類型下的{a},,{c},0yu4nq4含義不一樣。 其中變量{a}, , {c}, egmj6vr在不同圖表類型下代表數據含義為:
折線(區域)圖、柱狀(條形)圖、K線圖: {a}(系列名稱),(類目值),{c}(數值), 8un6bet(無)
散點圖(氣泡)圖 : {a}(系列名稱),(數據名稱),{c}(數值數組), acqe9g1(無)
地圖 : {a}(系列名稱),(區域名稱),{c}(合并數值), che6bxq(無)
餅圖、儀表盤、漏斗圖: {a}(系列名稱),(數據項名稱),{c}(數值), qir4z4w(百分比)
- 回調函數
回調函數格式:(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) => string
ECharts圖表組件內的格式化常用的地方:
- tooltip
圖表內數據點的懸浮框提示框信息展現的時候我們可以加以數據格式化,以便于更好地觀察數據和分析數據。
比如:在數值后加一個單位字符串
tooltip: {
trigger:'item',
padding:[20,10,20,10],
formatter:'{a} </br>:{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;
}
}
}