echarts中series数据数目少于横轴数据时,tooltip根据鼠标事件显示,横轴对应无数据时不显示tooltip,不高亮

例如:

横轴数据为['周一','周二','周三','周四','周五','周六','周日'],

series数据为[['周一', 1],['周二', 2],['周三',3],['周五',4],['周六',5],['周日',6]]

echarts的option需添加如下设置:

             tooltip : {

                trigger: 'axis',

                triggerOn: 'none',

                formatter: function (params) {

                   // 自定义

                }

            }

获取echarts实例后(chart为echarts实例)

chart.getZr().on('mousemove', function (params) {

            var pointInPixel= [params.offsetX, params.offsetY];

            if (chart.containPixel('grid',pointInPixel)) {

                var pointInGrid = chart.convertFromPixel({seriesIndex:0},pointInPixel);

                //X轴序号

                var xIndex = pointInGrid[0];

                 //获取当前图表的option

                var op = chart.getOption();

                //获得图表中我们想要的数据

                var xAxis = op.xAxis[0].data[xIndex];

                var xArr = [];

                op.series[0].data.forEach(function(item) {

                    xArr.push(item[0]);

                });

                if (xArr.indexOf(xAxis) != -1) {

                    chart.dispatchAction({

                        type: 'showTip',

                        // 屏幕上的 x 坐标

                        x: pointInPixel[0],

                        // 屏幕上的 y 坐标

                        y: pointInPixel[1]

                    })

                } else {

                    chart.dispatchAction({

                        type: 'hideTip'

                    })

                }

            }

        });

发布了8 篇原创文章 · 获赞 0 · 访问量 1340

猜你喜欢

转载自blog.csdn.net/xiaobaige6084/article/details/103782156