echarts tooltip(提示框)的某一项选中高亮状态

在多组数据的Echarts图表中,对比同一x轴不同线上的点并高亮当前选中线。通过自定义tooltip和事件监听实现,通过坐标对比确定点击或悬停的点与数据项的对应关系。
摘要由CSDN通过智能技术生成

效果图
在这里插入图片描述

需求
当有多组数据的时候,常常需要对比同一x轴的不同线上的点的数据,并且当数据组过多的时候,也就是线过多的时候,需要明确知道我们当前选中的线是哪条。
解决方案:
通过设置显示x轴的tooltip可以显示同一x轴点上面的各个线上面的数据,通过自定义tooltip和监听事件可以设置高亮当前鼠标悬停或点击的线对应的数据组。
关键点:
如何知道当前的点击或悬停的点与tooltip里面所有的数据点中需要的数据项对应起来,每个点都有一个坐标,通过对比坐标做判定即可。
代码

<template>
    <div class="index">
        <div ref="chart" class="chart"></div>
    </div>
</template>
<script>
let  echarts = require('echarts');
require("echarts/lib/chart/line");
// 引入提示框和标题组件
require('echarts/lib/component/tooltip');
require("echarts/lib/component/legend");
export default {
    data(){
        r
要想让tooltip提示框前面的图形与legend图形一致,可以使用echarts的formatter属性来自定义tooltip的显示内容。 具体步骤如下: 1.在series中设置好legend的相关配置,包括图例名称、图例图形类型和图例颜色等。 2.在tooltip的formatter属性中使用回调函数,通过参数params获取到对应数据的seriesIndex和dataIndex,然后根据这些信息从series中获取到对应的图例信息,最后将图例信息和数据信息合并成字符串返回。 下面是一段示例代码: ```js option = { legend: { data: ['数据一', '数据二'], // 设置图例图形类型和颜色 icon: 'circle', textStyle: { color: '#333' } }, tooltip: { trigger: 'axis', formatter: function (params) { var seriesIndex = params[0].seriesIndex; var dataIndex = params[0].dataIndex; // 获取对应的图例信息 var legendName = option.legend.data[seriesIndex]; var legendIcon = option.legend.icon; var legendColor = option.color[seriesIndex]; // 获取数据信息 var dataValue = params[0].value; var dataName = params[0].name; // 合并图例信息和数据信息 return legendIcon + ' ' + legendName + ': ' + dataValue + '<br/>' + dataName; } }, color: ['#FFB6C1', '#87CEFA'], xAxis: { data: ['一月', '二月', '三月', '四月', '五月', '六月'] }, yAxis: {}, series: [{ name: '数据一', type: 'line', data: [100, 200, 150, 300, 250, 180] }, { name: '数据二', type: 'line', data: [80, 150, 200, 120, 300, 220] }] }; ``` 在上面的代码中,我们通过legend和color配置了图例的相关信息,然后在tooltip的formatter回调函数中获取到对应的图例信息和数据信息,并将它们合并成字符串返回,最终得到的tooltip提示框前面的图形就与legend图形一致了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值