是否可以获取/return Highcharts 轴值?

Is it possible to get / return Highcharts Axis values?

当图表在我的应用程序的另一部分呈现时,我希望能够使用打印在 Highcharts x 和 y 轴上的值,例如从 0 到 n 的数字数组。

我正在使用 highcharts-react-official - 我找不到任何关于 return 值在屏幕上准确打印的方法的文档。

这可能吗?

更新

使用此代码,我可以 return 代表 y 轴上刻度值的数字数组:

const options: Highcharts.Options = {
yAxis: {
  labels: {
    formatter(): string {
      console.log('YAXIS', Object.keys(this.axis.ticks)
      }
    }
  }
}

虽然数组包含一个我在图表轴本身中看不到的负数。

同样的技巧不适用于 x 轴。

是否有更简洁的方法来获得正确的结果?

更新 2

按照下面的解决方案,我终于得到了我要找的东西: 这并不像您预期​​的那样有效:

const res = this.yAxis
  .map((axis) => axis.ticks)
  .map((axisTicks) => Highcharts.objectEach(axisTicks, (tick) => tick.label.textStr));
console.log(res); // undefined;

但是这样做:

const yAxisVals: string[][] = [];
const axisTicks = this.yAxis.map((axis) => axis.ticks);
axisTicks.forEach((item, idx) => {
  yAxisVals[idx] = [];
  Highcharts.objectEach(item, (tick) => yAxisVals[idx].push(tick.label.textStr));
});
console.log(yAxisVals);

您可以使用 render 事件并通过 Axis.tickPositions 属性:

获取值
chart: {
  events: {
    render: function() {
      var xAxisTickPositions = this.xAxis[0].tickPositions,
        yAxisTickPositions = this.yAxis[0].tickPositions;

      console.log(xAxisTickPositions, yAxisTickPositions);
    }
  }
}

现场演示: http://jsfiddle.net/BlackLabel/6m4e8x0y/4960/

API参考:

https://api.highcharts.com/highmaps/chart.events.render

https://api.highcharts.com/class-reference/Highcharts.Axis#tickPositions