专注app软件定制开发Echarts图表中formatter的用法

1. 模板

1.1 x轴y轴

//专注app软件定制开发适应字符串模板,专注app软件定制开发模板变量为刻度默认标签{value}

:"{valur} %"

1.2

(1){a}:系列名,series.name。

(2){b}:数据名,series.data.name。

(3){c}:数据值,series.data.value。

(4){d}:百分比。

(5){@xxx}:专注app软件定制开发数据中名为'xxx'专注app软件定制开发的维度的值,如{@product}表示名为'product'` 的维度的值。

(6){@[n]}:数据中维度n的值,如{@[3]}` 表示维度 3 的值,从 0 开始计数。
示例

  1. formatter:"{b}:{c}({d}%)"
  2. //数据名 数据值 百分比

 1.3,柱状图

(1){a}:系列名,series.name。

(2){b}:数据名,xAxis.data。

(3){c}:数据值,yAxis.data。

(5){@xxx}:数据中名为'xxx'的维度的值,如{@product}表示名为'product'` 的维度的值。

(6){@[n]}:数据中维度n的值,如{@[3]}` 表示维度 3 的值,从 0 开始计数。
示例

  1. formatter:"{a}<br/>{b}{c}"
  2. //系列名 数据名 数值值

1.4多个属性

formatter:"{b0}:{c0}<br/>{b1}:{c1}"

2 函数模板

2.1 x轴,y轴

示例

// 使用函数模板,函数参数分别为刻度数值(类目),刻度的索引

formatter:function (value, index) {

return value;

}

2.2提示框(tooptip)

第二个参数 ticket 是异步标识,配合第三个参数 callback 使用。 第三个参数 callback 是异步回调,在提示框浮层内容是异步获取的时候,可以通过 callback 传入上述的 ticket 和 html 更新提示框浮层内容。

  1. formatter: function (params, ticket, callback) {
  2. $.get('detail?name=' + params.name, function (content) {
  3. callback(ticket, toHTML(content));
  4. });
  5. return 'Loading';
  6. }

 3 回调函数

语法:(params:Object | Array)=>string

参数 params:

  1. {
  2. componentType: 'series',
  3. // 系列类型
  4. seriesType: string,
  5. // 系列在传入的 option.series 中的 index
  6. seriesIndex: number,
  7. // 系列名称
  8. seriesName: string,//series.name
  9. // 数据名,类目名
  10. name: string,
  11. // 数据在传入的 data 数组中的 index
  12. dataIndex: number,
  13. // 传入的原始数据项
  14. data: Object,
  15. // 传入的数据值。在多数系列下它和 data 相同。在一些系列下是 data 中的分量(如 map、radar 中)
  16. value: number|Array|Object,//series.data
  17. // 坐标轴 encode 映射信息,
  18. // key 为坐标轴(如 'x' 'y' 'radius' 'angle' 等)
  19. // value 必然为数组,不会为 null/undefied,表示 dimension index 。
  20. // 其内容如:
  21. // {
  22. // x: [2] // dimension index 为 2 的数据映射到 x 轴
  23. // y: [0] // dimension index 为 0 的数据映射到 y 轴
  24. // }
  25. encode: Object,
  26. // 维度名列表
  27. dimensionNames: Array<String>,
  28. // 数据的维度 index,如 0 或 1 或 2 ...
  29. // 仅在雷达图中使用。
  30. dimensionIndex: number,
  31. // 数据图形的颜色
  32. color: string,
  33. // 百分比
  34. percent: number,
  35. }

模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。 在 trigger 为'' 的时候,会有多个系列的数据,此时可以通过{a0}, {a1}, {a2} 这种后面加索引的方式表示系列的索引。 不同图表类型下的{a},{b},{c},{d}含义不一样。 其中变量{a}, {b}, {c}, {d}在不同图表类型下代表数据含义为:

u 折线(区域)图、柱状(条形)图、K线图: {a}(系列名称),{b}(类目值),{c}(数值), {d}(无)

u (气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无)

u 地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无)

u 饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)

2. 回调函数

回调函数格式:(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) => string

ECharts图表组件内的格式化常用的地方:

1. tooltip

图表内数据点的悬浮框提示框信息展现的时候我们可以加以数据格式化,以便于更好地观察数据和分析数据。

比如:在数值后加一个单位字符串

  1.   tooltip: {
  2.             trigger:'item',
  3.             padding:[20,10,20,10],
  4.             formatter:'{a} </br>{b}:{c}%'
  5.         },

2. axisLabel

坐标轴刻度上面的刻度格式化,比如Y表示长度,我们往往需要在每一个刻度值后面带上“m”的单位,Y轴意义不同,加不同的单位。

格式化Y轴刻度的示例代码如下:

  1.  yAxis: [
  2.             {
  3.                 type: 'value',
  4.                 axisLabel: {
  5.                     show:true,
  6.                     formatter:'{value} m'
  7.                 },
  8.                 boundaryGap: ['0','20%']
  9.             }
  10.         ],

3. 内的label

  1.  series: [
  2.             {
  3.                 name:'常驻城市人数比例',
  4.                 type:'bar',
  5.                 barWidth:'45',
  6.                data:[10,15,20,25,30],
  7. //                data:citiesRate,
  8.                 itemStyle: {
  9.                     normal: {
  10.                         color:new echarts.graphic.LinearGradient(
  11.                             0,0,0,1,
  12.                             [
  13.                                 {offset:0,color:'#7EDBFD'},
  14.                                 {offset:1,color:'#3169c7'}
  15.                             ]
  16.                         ),
  17.                         label: {
  18.                             show:true,
  19.                             position:'top',
  20.                             formatter:'{c}%'
  21.                         }
  22.                     },
  23.                     emphasis: {
  24.                         barBorderWidth:1,
  25.                         shadowBlur:10,
  26.                         shadowOffsetX:0,
  27.                         shadowOffsetY:0,
  28.                         shadowColor:'rgba(0,0,0,0.7)'
  29.                     }
  30.                 }
  31.             }
  32.         ]

注意点:formatter格式化不但可以用echarts提供的模板,还可使用function。例如:

  1. label:{
  2.    normal:{
  3.       formatter:function(v){
  4.          vartext=v.name;
  5.          returntext.length>10?text.substr(0,10)+"...":text;
  6.       }
  7.    }
  8. }

参考文章   

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发