Highcharts数据标签重叠列

时间:2013-10-16 07:30:26

标签: javascript highcharts

我的数据标签与我的图表中的列重叠有问题。

$('#container').highcharts({
        chart: {
            type: 'column'
        },

        xAxis: {
            type: 'datetime'
        },
        series: [{
            data: [[Date.UTC(2013, 3, 1, 0, 0, 0), 169], 
                  [Date.UTC(2013, 4, 1, 0, 0, 0), 176], 
                  [Date.UTC(2013, 5, 1, 0, 0, 0), 470], 
                  [Date.UTC(2013, 6, 1, 0, 0, 0), 346], 
                  [Date.UTC(2013, 7, 1, 0, 0, 0), 252], 
                  [Date.UTC(2013, 8, 1, 0, 0, 0), 138]],
            dataLabels: {
                enabled: true
            }
        }]
    });
});

你可以在这里看到一个例子:http://jsfiddle.net/J6WvR/1/

我的图表应该有固定的高度,我不明白为什么无法计算最大列高以适合其数据标签。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:14)

根据官方API文档:overflow property

  

要在绘图区域外显示数据标签,请将裁剪设置为 false 并溢出为“”。

            dataLabels: {
                enabled: true,
                crop: false,
                overflow: 'none'
            }

答案 1 :(得分:0)

一种选择是移动标签的位置。例如这将把它们移到栏内:

plotOptions: {
        column: {
            dataLabels: {
                y: 20,
                color:'white'
            }
        }
    },

http://jsfiddle.net/TBfLS/

另一种方法是手动设置max y值以为标签腾出空间:

  yAxis: {
        max: 600,
        endOnTick: false
    },

http://jsfiddle.net/2AhVT/

希望其中一个选项会有所帮助。

Ivan Chau发布了第三个(可能更好)选项。

答案 2 :(得分:0)

你可以尝试yAxis的最大值,

从你的数据计算最大值并添加一些缓冲说100,并将其设置为yAxis的最大值

yAxis:{
                max: 600,
            },

http://jsfiddle.net/J6WvR/3/

为yAxis更新你的小提琴

希望这对您有用

答案 3 :(得分:0)

启用 dataSorting highchart 后,堆积柱形图中没有正确显示数据标签

reference image