如何获取 highcharts 列的当前宽度

For*_*mad 3 javascript highcharts

我试图在 highcharts 柱形图上放置一个标签,但我希望它位于两个系列图表的柱形上方和柱形之间。

我不想更改列的宽度,只想检索它的当前宽度。

我有代码将标签放置在具有最高值的列上方,工作正常,但我不知道如何找到列的宽度,以便我可以将标签正确地放置在列的中心他们。

搜索让我得到了这段代码来设置宽度:

 chart.series[0].data[0].graphic.attr({
        width:50
    });
Run Code Online (Sandbox Code Playgroud)

这应该返回值:

chart.series[0].data[0].graphic.width
Run Code Online (Sandbox Code Playgroud)

尽管我需要的代码将位于plotOptions格式化程序内,并且可能看起来更接近于此:

this.series.chart.series[0].yData[this.point.index].graphic.width
Run Code Online (Sandbox Code Playgroud)

如果有任何帮助的话,上面代码的上下文是:

var thisVal = this.point.y;
var i = this.point.x % trendCategories2.length;
var prevVal = this.series.chart.series[0].yData[this.point.index];
var nextVal = this.series.chart.series[1].yData[this.point.index];
var highVal;
var output;
console.log(this.series.chart.series[0].yData[this.point.index].graphic.width);
Run Code Online (Sandbox Code Playgroud)

console.log 是我遇到问题的地方。我已经尝试了它的各种排列来获得宽度,但它们都返回未定义,我很确定我错过了一些愚蠢的东西。

有人可以帮忙吗?

For*_*mad 5

因此,我已经弄清楚如何获取列的宽度,语法很差,我最终不得不遍历系列对象来查看可用的指标。

var colWidth = this.series.columnMetrics.width;
Run Code Online (Sandbox Code Playgroud)

上面返回列的宽度,该语法在

plotOptions -> dataLabels -> formatter function
Run Code Online (Sandbox Code Playgroud)

希望它能在某个时候对其他人有所帮助。