我在柱形图中每个系列都有一条绘图线。当前,该系列仅在图表可见时显示,但是我想添加以下功能:单击图例项可显示该项目及其情节线,但隐藏所有其他系列/情节线。这是当前代码的小提琴:https://jsfiddle.net/nhrmc/5d46bL2f/
提琴可以在这里找到:https://jsfiddle.net/nhrmc/5d46bL2f/
var chart = Highcharts.chart('container', {
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
},
yAxis: {
plotLines: [{
value: 50,
color: 'red',
width: 2,
id: 'plot-line-1'
}]
},
series: [{
events: {
show: function() {
chart.yAxis[0].addPlotLine({
value: 7,
color: 'red',
width: 2,
id: 'plot-line-1'
});
},
hide: function() {
chart.yAxis[0].removePlotLine('plot-line-1')
}
},
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
type: 'column',
}, {
events: {
show: function() {
chart.yAxis[0].addPlotLine({
value: 75,
color: 'blue',
width: 2,
id: 'plot-line-2'
});
},
hide: function() {
chart.yAxis[0].removePlotLine('plot-line-2')
}
},
data: [20, 70, 100, 125, 140, 176.0, 132, 145, 21.4, 191, 96, 54],
type: 'column',
visible: false
}
]
});
我希望单击图例中的“系列2”,并将其与关联的绘图线一起显示,并隐藏系列1及其关联的绘图线。因此,只能显示一个系列/绘图线组合。
答案 0 :(得分:0)
在legendItemClick
回调函数中,您可以隐藏所有其他系列和绘图线:
plotOptions: {
series: {
events: {
legendItemClick: function() {
this.chart.series.forEach(function(s) {
if (s !== this && s.visible) {
s.hide();
}
});
return !this.visible ? true : false
}
}
}
}
实时演示: https://jsfiddle.net/BlackLabel/os86px7v/
API参考: https://api.highcharts.com/highcharts/plotOptions.series.events.legendItemClick