文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ECharts formatter属性设置的3种方法(字符串模板,函数模板,回调函数)

2023-02-14 15:00

关注

1 字符串模板

1.1 x坐标轴、y坐标轴

示例:

// 使用字符串模板,模板变量为刻度默认标签 {value}
formatter: '{value} kg'

1.2 饼图

模板变量:

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

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

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

(4){d}:百分比。

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

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

示例:

formatter:"{b}:{c}({d}%)"

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 开始计数。

示例:

formatter:"{a}<br/>{b}:{c}"

1.4 多个系列

示例:

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

2 函数模板

2.1 x坐标轴、y坐标轴

示例:

// 使用函数模板,函数参数分别为刻度数值(类目),刻度的索引
formatter:function (value, index) {
    return value;
}

2.2 提示框(tooltip) 

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

示例:

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

3 回调函数

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

参数 params:

{
    componentType: 'series',
    // 系列类型
    seriesType: string,
    // 系列在传入的 option.series 中的 index
    seriesIndex: number,
    // 系列名称
    seriesName: string,//series.name
    // 数据名,类目名
    name: string,
    // 数据在传入的 data 数组中的 index
    dataIndex: number,
    // 传入的原始数据项
    data: Object,
    // 传入的数据值。在多数系列下它和 data 相同。在一些系列下是 data 中的分量(如 map、radar 中)
    value: number|Array|Object,//series.data
    // 坐标轴 encode 映射信息,
    // key 为坐标轴(如 'x' 'y' 'radius' 'angle' 等)
    // value 必然为数组,不会为 null/undefied,表示 dimension index 。
    // 其内容如:
    // {
    //     x: [2] // dimension index 为 2 的数据映射到 x 轴
    //     y: [0] // dimension index 为 0 的数据映射到 y 轴
    // }
    encode: Object,
    // 维度名列表
    dimensionNames: Array<String>,
    // 数据的维度 index,如 0 或 1 或 2 ...
    // 仅在雷达图中使用。
    dimensionIndex: number,
    // 数据图形的颜色
    color: string,
 
    // 百分比
    percent: number,
 
}

附:Echarts中数据显示实现formatter

对于第一种横纵坐标数据显示的格式问题,如:对于一个纵坐标用来展示占比率0.5要将这个值展示位50%,对于坐标轴的x,y轴的设置分别对应着xAxis和yAxis这两这个属性,我们要将纵轴的值变换成50%,只需要在原始数值的基础上乘以100然后拼接上%就可以了,具体的实现代码如下:

yAxis : [
    {
        type : 'value',
        name : 'y轴名称',
        axisLabel : {
            formatter : function(val){
                return val*100+"%";
            }
        }
    }
]

对于第二个问题坐标轴中柱状图或者折线图的数据,这个主要是用来满足需求:要在坐标轴的每个点上将各自对应的数据显示下来,这块主要用到的是series中的label属性,主要实现的代码如下:

series : [
    {
        name : '和legend的某一项对应',
        type : 'bar',
        label : {
            normal : {
                show : true,
                position : 'top'
            }
        }
        data : data
    }
]

series中的name对应的值要是legend中的某一项,type就是你的这个图形是什么类型,可以是bar或者line等,label中的show是用来设置是否显示,position用来设置数据显示在图形的位置,data就是要显示的数据。

对于第三种问题,鼠标滑到指定区域时的数据展示问题,这块用来的属性主要是tooltip,具体的代码实现如下:

tooltip : {
    trigger : 'axis',
    axisPointer : {            // 坐标轴指示器,坐标轴触发有效
        type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
    },
    formatter : '{a0}:{c0}<br />{a1}:{c1}'
}

当trigger为’item’时只会显示该点的数据,为’axis’时显示该列下所有坐标轴所对应的数据,重要的就是这个formatter属性,这个属性是具体用来操作显示的数据格式的,对于官方文档给的这个格式我最初是有点懵逼的,后来我再认真的看了一下关于这个属性的说明才发现这种写法是真的好用,模板变量有 {a}, {b},{c},{d},分别表示系列名,数据名,数据值等。 在 trigger 为 ‘axis’ 的时候,会有多个系列的数据,此时可以通过 {a0}, {a1}, {a2} 这种后面加索引的方式表示系列的索引。 不同图表类型下的 {a},{b},{c},{d} 含义不一样。 其中变量{a}, {b}, {c}, {d}在不同图表类型下代表数据含义为:

总的来说这块的abcd分别对应着不同的名称,如果不是很理解在显示的时候可以自己多去尝试几次就发现规律了,当然刚开始不理解的我是用如下方法实现的:

formatter(params){
    console.log(params);
}

通过这个写法来输出它的所有属性,然后可以在里面找到所需要的几个属性,可以说这是一种很笨的方法,不推荐去使用这个方式,最好就是采用上面那种{a0}的那种方法来实现,最后加上官网配置项地址,所有的属性都可以在这里找到说明和使用方法。

总结

到此这篇关于ECharts formatter属性设置的3种方法的文章就介绍到这了,更多相关ECharts formatter属性设置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯