在日常需求中,echarts饼图一般都带有单位,如官网所示图例:
此时的单位为%,配置方法很简单,如下series的label配置所示:
series: [
{
name: '半径模式',
type: 'pie',
radius: [20, 110],
center: ['25%', '50%'],
roseType: 'radius',
label: {
show: true,
formatter:'{b} : {c} ({d}%)'
},
data:[
{value: 10, name: 'rose1'},
{value: 5, name: 'rose2'},
{value: 15, name: 'rose3'},
{value: 25, name: 'rose4'},
{value: 20, name: 'rose5'},
{value: 35, name: 'rose6'},
{value: 30, name: 'rose7'},
{value: 40, name: 'rose8'}
]
}
]
1, 字符串模板
模板变量有 {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}(百分比)
更多其它图表模板变量的含义可以见相应的Echarts官网图表的 label.formatter 配置项。
但是有时根据我们的项目需求,单位不同时应该怎么配置呢?如下图所示,我们需要的单位有MB和KB,此时上述统一配置方法就不能生效了。
这时我们需采用单独配置方法,将每项数据的单位分别写在data数组中,如下series的label配置所示:
series: [
{
name: '半径模式',
type: 'pie',
radius: [20, 110],
center: ['25%', '50%'],
roseType: 'radius',
label: {
formatter: function(a) {
let name = a.data.name;
let value = a.data.value;
let unit = a.data.unit;
return name + ' : '+value + unit
}
},
emphasis: {
label: {
show: true
}
},
data: [
{value: 10, name: 'rose1',unit: 'KB'},
{value: 5, name: 'rose2', unit: 'MB'},
{value: 15, name: 'rose3', unit: 'MB'},
{value: 25, name: 'rose4', unit: 'MB'},
{value: 20, name: 'rose5',unit: 'KB'},
{value: 35, name: 'rose6',unit: 'KB'},
{value: 30, name: 'rose7',unit: 'KB'},
{value: 40, name: 'rose8',unit: 'KB'}
]
}
]