对齐堆栈标签

时间:2013-05-14 14:31:46

标签: javascript highcharts

我的堆叠标签出现问题。我让它们旋转了-90度,我将左对齐和垂直对齐到底部。但由于某种原因,标签与每列的底部对齐,但不像我预期的那样。文本标签的中心与底部对齐,而不是标签的第一个字母。有没有办法实现我想要的,而无需手动计算每个堆栈标签的y偏移量?如果没有,我最好怎么做那个无聊的计算呢?

参见随附的小提琴:

$(function () {
    $('#container').highcharts({
        chart: { type: 'column' },
        title: { text: '' },
        xAxis: { categories: [""] },
        yAxis: [{ 
            title: { text: '', style: { color: '#4572A7'} },
            labels: { 
              formatter: function () { return Highcharts.numberFormat(this.value, 0) + " USD" }, 
              style: { color: '#4572A7' } 
            },
            stackLabels: { 
            enabled: true, 
            style: { fontSize: '1.5em', fontWeight: 'bold', color: 'black' }, 
            formatter: function () { return this.stack; }, 
            rotation: -90, x: -5, 
            verticalAlign: 'bottom', 
            align: 'left' 
        }}],
        legend: { borderWidth: 1, shadow: false },
        plotOptions: { 
           column: { stacking: 'normal' },
           series: { shadow: false} 
        },
        series: [{ data: [34, 34, 54, 12, 23], stack: 'Stack 1' }]
    });
});

http://jsfiddle.net/Zprjn/6/

干杯!

修改

这是我实际拥有的简化版本。在我的真实图表中,我有动态内容,因此堆栈标签中有不同的文本,列有各种高度。我之前都不知道这一点,因此我需要以某种方式动态调整堆栈标签到列的底部(和左侧),而不管实际标签中文本的长度。

再次感谢!

2 个答案:

答案 0 :(得分:0)

您可以更改:

verticalAlign: 'middle'

示例:http://jsfiddle.net/Zprjn/7/

或者如果你想在底部,请添加:

y: -40

示例:http://jsfiddle.net/Zprjn/8/

答案 1 :(得分:0)

我刚想通了!我必须指定

textAlign: 'left'

同样也修好了!

请参阅更新的jsFiddle:

http://jsfiddle.net/Zprjn/9/