将dataLabel定位在特定列Highcharts之上

时间:2014-09-26 12:13:25

标签: jquery highcharts

我有一个堆叠的背图,其中我在最高条的高度添加了一个不可见的条形图。所以当一个列包含时 如果值很小,此列仍可以单击。在这种情况下,如果没有不可见的堆栈,则值为1的列将难以点击。

但是,我在每列上方对齐标签时遇到问题。我知道我可以使用像:

 dataLabels: {
    enabled: true,
    color: blue,
    y: -100,
}

但是这并没有像你在图片中看到的那样真正起作用。最后一个条形的值显示在条形图中,这使其不可见。

enter image description here

如果我能从某个系列中的一个栏中获得顶部,(在我的情况下是第二个)并且将dataLabel置于其上方位置,那将是最好的。类似stackLabels的东西。

我试过这样的事情,但没有成功:

$.each(chart.series[1], function (pointIndex, point) {
            if (point !== undefined) {
                var elem = point.graphic.element.getBBox();
                point.dataLabel.attr({ y: elem + 20 });
            }
        });

1 个答案:

答案 0 :(得分:0)

解决方案比我想象的容易得多,我最终做了以下事情:

var chart = $('#target').highcharts();
var points = chart.series[1].points;


$.each(points, function (pointIndex, point) {
            text = chart.renderer.text(
                'Put whatever you like here',
                point.plotX + chart.plotLeft - 10,
                point.plotY + chart.plotTop - 20
            ).attr({
                zIndex: 5
            }).add();
        });

使用了来自this example的代码。