我做了一个带有 2 个自定义函数的示例。第一个将想要的系列作为折叠添加到主要系列,第二个将其破坏。
显示新系列的功能:
function showTasks(newSeries, point) {
var series = point.series,
chart = series.chart,
newYCat = [...chart.yAxis[0].categories];
// Set points to higher y to make a space for collapsed points
chart.series.forEach(s => {
s.points.forEach(p => {
if (p.y > point.y) {
p.update({
y: p.y + 1
}, false, false)
}
})
})
// Add collapsed series
chart.addSeries(newSeries);
// Set point flag
point.clicked = true;
// Add the series name to the yAxis cat array
newYCat.splice(newSeries.yPos, 0, newSeries.name);
// Update the yAxis
chart.yAxis[0].update({
categories: newYCat,
})
}
我认为这里的一切都得到了澄清——我在评论中留下了正在发生的事情的说明。
使用选项的 API:
https://api.highcharts.com/class-reference/Highcharts.Chart#addSeries
https://api.highcharts.com/class-reference/Highcharts.Axis#update
隐藏功能则相反。
函数在point.events.click回调中触发,此处应定义折叠到该点的系列。
演示:https ://jsfiddle.net/BlackLabel/cftod6q4/
API:https ://api.highcharts.com/highcharts/series.line.events.click