是否可以获取/返回Highcharts轴值?

问题描述 投票:1回答:1

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

我正在使用highcharts-react-official-我找不到关于返回值的方法的任何文档,因为这些值正好打印在屏幕上。

这可能吗?

更新

使用此代码,我可以返回一个数字数组,这些数字表示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);
reactjs highcharts react-highcharts
1个回答
0
投票

您可以使用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

© www.soinside.com 2019 - 2024. All rights reserved.