在谈 formatter 之前,先来说说 grid。在官方文档中,grid 介绍的很详细。
见网址: http://echarts.baidu.com/doc/doc.html#Grid
grid 为直角坐标系内绘图网格,可以设置 x y x2 y2 等值。这在控制图表摆放位置上,起了重要的作用。
如图所示,
x 为直角坐标系内绘图网格左上角横坐标,数值单位px,支持百分比(字符串),如'50%'(显示区域横向中心)
y 为左上纵坐标,x2为右下横坐标,y2为右下纵坐标。
需要设置的话,就按照tooltip 或 legend 的格式设置就行。
接下来就是 formatter 了。为了弥补 echarts 在时间或计量单位上格式的不足,echarts 暂时利用 formatter 来加上需要个格式,对数据呈现方式进行修改。
在设置 formatter 的时候可以用在 tooltip 和 y 轴上。
- {Function},传递参数列表如下:
- <Array> params : 数组内容同模板变量,[[a, b, c, d, e, data], [a1, b1, c1, d1, e1, data1], ...],不同的是当trigger为item时最后一项返回option中的完整data
- <String> ticket : 异步回调标识
- <Function> callback : 异步回调,回调时需要两个参数,第一个为前面提到的ticket,第二个为填充内容html
- *函数回调时this指针指向当前图表实例(myChart)
这里举个例子:
-
tooltip : {
-
trigger: 'axis',
-
formatter: function(params,ticket,callback){
-
var res = params[ 0][ 0] + '<br/>';
-
for ( var i = 0; i < params.length; i++) {
-
if (params[i][ 2]== 1)
-
{ var rank= "B"}
-
else if (params[i][ 2]== 2)
-
{rank= "A"}
-
else if (params[i][ 2]== 3)
-
{rank= "C"};
-
-
res += params[i][ 1] + ": " + rank;
-
};
-
return res;
-
}
-
},
如果用 console 来看到 params 其实是一组模板中的变量,这里都可以加到 variable res 中,然后将某些数字的变量变成我们想要的格式,然后 return 就行了。
-
axisLabel:{
-
formatter : function(v) {
-
if (v == 1) { return 'B'}
-
else if (v == 2 ) { return 'A'}
-
else if (v == 3 ) { return 'C'};
-
}
-
},
还有 y 轴的使用,就更加简单,直接一个 function 搞定。