Highchart 使用 xAxis

时间:2021-02-06 19:38:41

标签: javascript highcharts

我有带有系列数据的 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
    }]
  }]
});

1 个答案:

答案 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

相关问题