如何防止标签重叠?如何在相对于plotLines的点处写文本?

时间:2014-10-29 07:43:09

标签: javascript charts highcharts label

我的龙卷风图表看起来像这样。enter image description here

标签的重叠是因为它们在系列中具有相同的值。我希望第一个标签右对齐,第二个标签左对齐,以便两个标签都可见。

除此之外,我还有一个垂直折线图,其标签需要与线条保持对齐,并且在栏栏外清晰可见。

问题的JSFiddle链接:http://jsfiddle.net/z2jyz7Ln/

图表的阈值为29.5,系列如下:

series: [
        {type:'line',color:'black',zIndex:505,
         data:[[-0.25,29.5],[3.25,29.5]],
         marker:{
             enabled: false
         }
        },
        {
        threshold: 29.5,
        name: 'Low',
        grouping: false,
        type: 'bar',
        data: [{
            x: 0,
            y: 12.15,
        }, {
            x: 1,
            y: 15.45,
        }, {
            x: 2,
            y: 29.5,
        }, {
            x: 3,
            y: 12.15,
        }],
        labels: [10, 5, 1, 2]
    }, {
        threshold: 29.5,
        name: 'High',
        grouping: false,
        type: 'bar',
        data: [{
            x: 0,
            y: 46.86,
        }, {
            x: 1,
            y: 42.28,
        }, {
            x: 2,
            y: 29.5,
        }, {
            x: 3,
            y: 46.86,
        }],
        labels: [30, 10, 3, 4]
    }]

我需要在图片中指出更改。基本上,我需要在同一系列中使用不同的dataLabel对齐。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用point.dataLabel.x / y值控制每个dataLabels的位置:http://jsfiddle.net/z2jyz7Ln/1/

代码:

    data: [
        [-0.25, 29.5], 
        {
            x:3.25, 
            y:29.5,
            dataLabels: {
                y: 20,
                x: -20
            }
        }
    ],

不幸的是,您需要自己检测dataLabels碰撞,Highcharts不提供此类方法。