HighCharts:如何将xAxis类别文本放在图表中

时间:2013-09-12 18:25:56

标签: javascript highcharts

我正在与Highcharts合作,但我无法完成任何事情。这就是我想要的:

enter image description here

如您所见,每个栏的文字都在栏的顶部

这是我一直在努力的版本:

$(function () {
        $('#container').highcharts({
            chart: {
                type: 'bar'
            },
            title: {
                text: 'APPROVED SPEND TO DATE FOR FISCAL YEAR 2013: $17,360,612'
            },
            xAxis: {
                categories: ['Intellectual Property', 'Antitrust/Competition'],
                title: {
                    text: null
                }
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'Approved spend',
                    align: 'high'
                },
                labels: {
                    overflow: 'justify'
                }
            },
            tooltip: {
                valueSuffix: ' dollars'
            },
            plotOptions: {
                bar: {
                    dataLabels: {
                        enabled: false
                    }
                }
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -40,
                y: 100,
                floating: true,
                borderWidth: 1,
                backgroundColor: '#FFFFFF',
                shadow: true
            },
            credits: {
                enabled: false
            },
            series: [{
                name: 'Year 2013',
                data: [6000123, 3743653]
            }]
        });
    });

JSFiddle http://jsfiddle.net/WcKvz/1/

正如你所看到的,我只是在栏的左侧有文字,我无法正确使用。

有什么想法吗?谢谢

1 个答案:

答案 0 :(得分:2)

我见过这项工作的唯一方法是使用stackedLabels。即使您没有使用堆叠条,也可以使用它们,因为您只有一个系列。

        ...
        plotOptions: {
            bar: {
                stacking: 'normal'
            }
        },
        yAxis: {
            stackLabels: {
                formatter: function() {
                    return this.axis.chart.xAxis[0].categories[this.x] + ': $' + this.total;
                },
                enabled: true,           
                verticalAlign: 'top',     
                align: 'left',
                y: -5
            }, 
         ...

http://jsfiddle.net/NVypa/