echarts自定义legend图例和tooltip默认提示文字

1.legend图例

先看效果图:

lengend中有一个属性formatter,是图例的形式,用来格式化图例文本。

formatter有两种形式: 
- 模板 
- 回调函数

示例:

// 使用字符串模板,模板变量为图例名称 {name}
formatter: 'Legend {name}'
// 使用回调函数
formatter: function (name) {
    return 'Legend ' + name;
}

实现最开始的效果图代码:

var data1=[
                {value:335, name:'直接访问'},
                {value:310, name:'邮件营销'},
                {value:234, name:'联盟广告'},
                {value:135, name:'视频广告'},
                {value:1548, name:'搜索引擎'}
            ]
var option = {
    tooltip: {
        trigger: 'item',
        formatter: "{a} <br/>{b}: {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        x: 'left',
        formatter:  function(name){
                        var res = "";
                        for(var i=0;i<data1.length;i++) {
                           if (data1[i].name == name) {  
                            res=data1[i].value;
                           }
                        }
                        return name+'  '+res;
                    }
    },
    series: [
        {
            name:'访问来源',
            type:'pie',
            radius: ['50%', '70%'],
            avoidLabelOverlap: false,
            label: {
                normal: {
                    show: false,
                    position: 'center'
                },
                emphasis: {
                    show: true,
                    textStyle: {
                        fontSize: '30',
                        fontWeight: 'bold'
                    }
                }
            },
            labelLine: {
                normal: {
                    show: false
                }
            },
            data:data1
        }
    ]
};

2. tooltip

效果图:

tooltip.formatter提示框浮层内容格式器,支持字符串模板和回调函数两种形式。

(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}(百分比)

示例:

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

(2) 回调函数

回调函数格式:

(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) => string

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

示例:

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

效果图实现代码:

 tooltip: {
            trigger: 'item',
            formatter: function (params) {
                console.log(params);
                var res = "";
                var percentage = "";
                if (params.data.name == params.name) {
                    res = params.data.ranking;
                    percentage = params.data.percentage * 100;
                }
                return params.name + '<br>' + percentage + '%<br>' + '排名:' + res;
            }
        },

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要在Echarts自定义图形增加tooltip,可以使用自定义tooltip的方法。在自定义tooltip中,你可以通过定义tooltip的formatter属性来控制tooltip的显示内容。 首先,你需要创建一个自定义tooltip的方法,比如toolTipFormatter。在这个方法中,你可以传入params参数和定义的单位数组,根据自己的需求进行格式化。例如,你可以通过params来获取数据的值,然后再添加上单位,最后返回格式化后的结果。这样就可以实现自定义tooltip的显示内容了。 另外,你可以参考Echarts官方文档中的tooltip属性相关内容,具体可以查看官方参考链接:https://echarts.apache.org/zh/option.html#tooltip.formatter 在饼图中,还可以使用series中的avoidLabelOverlap属性来避免标签重叠。默认情况下,该属性是开启的,可以通过设置为false来关闭标签重叠策略。例如,在tooltip中可以设置trigger为"item",并且通过formatter来设置tooltip的显示格式,比如"{a} {b} : {c} ({d}%)"。 通过以上方法,你就可以实现echarts自定义图形增加tooltip的效果了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Echarts自定义tooltip提示框及图例](https://blog.csdn.net/HITZXL/article/details/127447214)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [echarts自定义tooltip提示框内容](https://blog.csdn.net/weixin_43025071/article/details/120058025)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [解决echarts中饼图标签重叠的问题](https://download.csdn.net/download/weixin_38554186/13711299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值