echarts 图表配置tooltip 的formatter

echarts 的图表配置非常的灵活自由,但是不熟悉的时候容易不知道怎么配置。
最近遇到一处需要自定义tooltip的内容,小小的踩了个坑,特此记录一下解决过程。

tooltip是什么

有的同学可能不清楚tooltip是什么,它实际上就是鼠标移到图表上后展示的类似数据点详情的一个说明,就是我图片上框出来的那个
在这里插入图片描述
在options配置项处于第一级目录,与series,xAxis,yAxis同级

formatter 怎么配置?

formatter有两种配置方式:①字符串模板 ②回调函数
个人觉得字符串模板自由度比较低,需要根据他给定的几个模板变量例如 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等去做拼接来展示
所以我会着重讲自由度更高的回调函数方式

options = {
    tooltip: {
        formatter: function() {
        	console.log(arguments)
        }
    }
}
首先我们把回调函数的参数打印出来看看

在这里插入图片描述

$vars: (3) ["seriesName", "name", "value"]
axisDim: "x"
axisId: "series00"
axisIndex: 0
axisType: "xAxis.category"
axisValue: "九月11号"
axisValueLabel: "九月11号"
color: "#3b85ff"
componentIndex: 0
componentSubType: "line"
componentType: "series"
data: 12
dataIndex: 0
dataType: undefined
marker: "<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#3b85ff;"></span>"
name: "9月11号"
seriesId: "降雨量0"
seriesIndex: 0
seriesName: "降雨量"
seriesType: "line"
value: 12

可以看到我们主要需要的属性是在第一个参数内,我们可以给他命名params。
params是一个数组,长度和数据项条数一致,所以如果我们有多个条目需要展示的时候需要针对这个params做个循环。
params里每一项都是一个对象,对象中的属性说明可以参考文档,其实这个内容和字符串模板的模板变量是类似的,但是可读性更高。
我们用的比较多的可能是:

params[i].data: 数据值
params[i].seriesName: 条目名
params[i].marker: 颜色点

options = {
    tooltip: {
        formatter: function(params) {
        	let str = '';
        	params.forEach((item, idx) => {
        		str += `${item.marker}${item.seriesName}: ${item.data}`
        		switch (idx){
        		    case 0:
        		        str += '个';
        		        break;
        		    case 1:
        		        str += '条';
        		        break;
        		    case 2:
        		        str += '次';
        		        break;
        		    default:
        		        str += 'w(゚Д゚)w'
        		}
        		str += idx === params.length -1? '': '<br/>'
        	})
        	return str
        }
    }
}

在这里插入图片描述
这就是最终的结果了。

说到底,无论是哪种方式,最终formatter 的值都是字符串,所以我们需要做的就是字符串的拼接,回调函数的方式的优势在于处理字符串更加灵活,调用属性的方式获取想要的值,可读性更高。
  • 13
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
ECharts是一个强大的JavaScript数据可视化库,它提供了丰富的图表类型和交互功能,其中 tooltip(提示框)是图表中一个关键元素,用于在鼠标悬停在图表上特定数据点时显示详细信息。EChartstooltip支持自定义样式、内容格式以及显示行为。 以下是ECharts tooltip的基本介绍: 1. **基础使用**:默认情况下,当你将鼠标悬停在图表上的数据点时,tooltip会显示相应的值。你可以通过配置`tooltip`选项来启用或关闭这个功能。 ```js option = { tooltip: { trigger: 'item' // 或者 'axis' 或者 'none' }, series: [...] }; ``` 2. **样式定制**:可以通过`formatter`属性自定义提示框的内容格式,使用模板字符串或函数返回值。还可以设置`positioner`来改变提示框的位置策略。 ```js tooltip: { formatter: function (params) { return params.name + '<br>' + params.value; }, positioner: function (point, size, rect) { return [point, rect.height - point - size.height]; // 上移提示框 } } ``` 3. **事件控制**:可以监听`onShow`、`onHide`等事件,以实现更复杂的交互逻辑。 4. **系列间联动**:如果图表有多个系列,可以通过`cross轴联动`或者`同名系列联动`,使得鼠标悬停在某一数据点时,所有相关的图表都会显示相应提示。 相关问题: 1. EChartstooltip有哪些触发方式? 2. 如何在ECharts中添加自定义提示框样式? 3. 如何在ECharts中实现图表间的联动提示?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值