问题描述
我希望能够单击图例标签,然后关闭所有其他标签并突出显示选定的一个系列数据。当前行为隐藏选定的图例系列。我怎样才能扭转它?
解决方法
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);
});