我有带有系列数据的 Highchart,我想隐藏()一个数据元素,当我隐藏()第一个元素时可以正常工作,但是当我尝试隐藏()第二个或任何其他元素时,只有数据点被隐藏,并且标签 xAxis 不会消失:( 伙计们,你能向我解释为什么会发生这种情况,以及我如何用 highcharts-axis-labels 隐藏整个元素? 非常感谢!
我的 jsfiddle 代码 here
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
name: 'Xalkori',
data: [{
x: 44,
y: 1435
}, {
x: 44,
y: 689
}]
}, {
name: 'Xofigo',
data: [{
x: 45,
y: 14182
}, {
x: 45,
y: 514
}],
visible: false,
}, {
name: 'Xtandi',
data: [{
x: 46,
y: 9065
}, {
x: 46,
y: 572
}]
}, {
name: 'Yervoy',
data: [{
x: 47,
y: 42646
}, {
x: 47,
y: 1395
}]
}]
});
答案 0 :(得分:0)
请注意,xAxis 标签的数量、它们的可见性等与图表点的可见性无关。
演示:https://jsfiddle.net/BlackLabel/7e90jwdL/
如果您想根据系列可见性隐藏 xAxis 标签,则需要以编程方式进行。
类似于这里:
events: {
render() {
let chart = this;
chart.series.forEach(s => {
if (!s.visible) {
chart.xAxis[0].ticks[s.xData[0]].label.hide()
} else {
chart.xAxis[0].ticks[s.xData[0]].label.show()
}
})
}
}
请注意,这个演示只是一个展示,如果系列点 x 值相同,它就可以正常工作。
演示:https://jsfiddle.net/BlackLabel/qn0tsdeh/
API:https://api.highcharts.com/highcharts/chart.events.render