第一次发文章,主要是今天同事提个需求,说一个比较复杂的折线图(大概有10几条线)的线图,tooltip显示的太多,没有办法找到当前要看的线条的数据。我查了echarts的文档只是说把trigger设置为’item‘后才可以自定义单个的显示。而折线图明线是序列线,我用的’axis‘后发现是没有办法自定义单个显示。
在CSDN上找了一下,有博主给了个文档:https://blog.csdn.net/weixin_33778544/article/details/88928801
他在堆叠图中单个显示,但他用的是axisPointer 设置为across时捕捉堆叠值,我试了一下在折线图上是无效的。
无果之下,想到只能捕捉鼠标事件来处理,后来试了一下,果然可行。
最后解决方案如下:
//当 鼠标移到线条上时触发
mycharts.on('mousemove',function(params){
window.selectSeries= params.seriesName;
});
//当 鼠标移出线条时触发 ,如果不处理这个,鼠标移到空白上还有tooltip显示。
mychartts.on('mouseout', function (params) {
window.selectSeries = '';
});
//tooltip部分
tooltip: {
trigger: 'axis',
formatter:function(params){
var res = "";
for (var i =0;i<params.length;i++){
var series = params[i];
if (series.seriesName == window.selectSeries){
res = series.axisValue +"<br/>" + series.marker + series.seriesName + ":" +series.data +"<br/>";
break;
}
}
return res;
}
}
考虑到图表数据为公司内部系统数据,就不上图了,要有什么问题回复一下,我会尽量解答。