是否可以获取/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
当图表在我的应用程序的另一部分呈现时,我希望能够使用打印在 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