官方实例里面legend样式很简单,项目中遇到一个要显示数值和百分比的,并且数据是动态的,自己查了一下才发现legend里的formatter 设置有点特别
在此记录一下免得以后再次遇到
segmentfault里看到的文章的解决方式
formatter: function(name) {
var index = 0;
data.dataTwo.forEach(function(value,i){
if(value == name){
index = i;
}
});
return name + " " + data.dataThree[index] + "个";
}
自己修改后的,可能写的有点复杂
formatter:
function
(
e
) {
var
total
=
0
for
(
var
i
=
0
;
i
<
option
.
series
[
0
].
data
.
length
;
i
++
) {
total
+=
option
.
series
[
0
].
data
[
i
].
value
}
for
(
i
=
0
;
i
<
option
.
series
[
0
].
data
.
length
;
i
++
) {
var
ePercent
=
(
option
.
series
[
0
].
data
[
i
].
value
/
total
*
100
).
toFixed
(
2
)
+
'%'
if
(
option
.
series
[
0
].
data
[
i
].
name
===
e
) {
return
e
+
' '
+
option
.
series
[
0
].
data
[
i
].
value
+
' '
+
ePercent
}
}
}
},