Highcharts具有一个非常不错的过滤功能,图表可以呈现,显示图例,您可以单击图例中的每个项目将其从图表中删除。我正在处理一个较大的数据集,并且想要进行相反的操作(即,不删除在图例中单击的项目,而是保留所有其他项目,我只想显示该项目,删除所有其他项目)
尽管有些Highcharts Series - want to show/hide all EXCEPT selected series (reversal of default logic)这样的StackOverflow条目看起来很完美(并且可以在jsfiddle中运行),但我正在使用散点图。查看文档,看起来它应该仍然可以使用,因为散点图使用系列,事件和legendItemClick,但是该答案中的示例无效。
甚至简单到...
plotOptions: {
scatter: {
marker: {
radius: c.data.radius,
states: {
hover: {
enabled: true,
lineColor: 'rgb(100,100,100)'
}
}
},
series: {
events: {
legendItemClick: function(event) {
console.log('legend clicked')
return false;
}
}
}
}
}
...不起作用(尽管图表显示正确)。控制台中没有消息,并且return false不会停止默认行为。似乎散点图无法识别legendItemClick。
有人有什么想法吗?
答案 0 :(得分:0)
这是一个简单的示例,说明如何在Highcharts scatter
图表中实现所需的行为:
legendItemClick: function(event) {
var series = this.chart.series,
index = this.index;
if (this.visible) {
return false
} else {
Highcharts.each(series, function(s) {
if (s.index !== index) {
s.hide();
} else {
return true
}
});
}
}
答案 1 :(得分:-1)