Echart:折线图反向图例切换行为

问题描述

我希望能够单击图例标签,然后关闭所有其他标签并突出显示选定的一个系列数据。当前行为隐藏选定的图例系列。我怎样才能扭转它?

解决方法

Echarts 具有带有 events and action 的 API。这是good tutorial快速入门。简而言之:您需要听 legendselectchanged 并使用 setOption({series:{...}}) 更改样式或系列数。像这样https://stackoverflow.com/a/64329993/1597964

,

根据上面的回答,使用 'legendSelect' 事件可以实现

    function legendSelection(chart,params) {
        const obj = params.selected;
        const selectAll = Object.values(obj).filter(f=>f).length;
        chart.setOption({ animation: true });

        if (selectAll == 0) {
            // select all on second click
            for (var key in obj) {
                chart.dispatchAction({
                    type: 'legendSelect',name: key
                });
            }
        } else {
            // Re-select what the user unselected
            chart.dispatchAction({
                type: 'legendSelect',name: params.name
            });

            // Deselect everything else 
            for (var key in obj) {
                if (obj.hasOwnProperty(key) && key != params.name) {
                    var val = obj[key];
                    chart.dispatchAction({
                        type: 'legendUnSelect',name: key
                    });
                }
            }
        }
    }

像这样在你的代码中使用上面的函数

    myChart.on('legendselectchanged',function (params) {
        legendSelection(myChart,params);
    });

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...