2

我正在尝试在 Highcharts 的条形图中将标签居中。在我的情况下,您可以在此处看到的倒瀑布图:

http://jsfiddle.net/mUD9a/3/

我正在尝试将每个条形中的数据标签水平居中,这样如果系列中的数据点的低点为 1,y 为 3,则该点将位于 2。我尝试了高图表中建议的解决方法这里的文档:

http://jsfiddle.net/gh/get/jquery/1.7.1/highslide-software/highcharts.com/tree/master/samples/highcharts/plotoptions/series-datalabels-y/

使用最新版本,通过更改格式化程序回调中的选项似乎不会影响渲染。

任何帮助表示赞赏。

4

3 回答 3

4

我知道这是旧的,但我只是需要这个,所以我是这样做的。我确定的解决方案是如何在条形系列和 alba lions 示例的基础上定位数据标签的组合,使用 stackLabels 而不是 dataLabels。

yAxis:{
    stackLabels: {
        style: {
            color: 'white'       // Make the labels white
        },
        enabled: true,           // Enable stack labels
        verticalAlign: 'middle', // Position them vertically in the middle
        align: 'center',            // Align them to the left edge of the bar
        formatter: function() {
            return categories[this.x];
        }
    }
}

jsfiddle

于 2012-12-18T18:05:28.053 回答
2

我快速浏览了文档和您的示例,并在您的系列中使用 dataLabel 提出了蛮力解决方案。显然对齐到中心将集中在 y 上(例如上面的 3)。所以,我只是使用数据标签上的 x 偏移量将其转移。这不是一个真正合适的解决方案,但可能会让您朝着正确的方向思考:

series: [{
    min: 0,
    max: versions.length + 1,
    data: [ { low: 1, y: 3 }, { low: 2, y: 4 }, { low: 3, y: 5 }, { low: 3, y: 5 } ],
    dataLabels: {
        enabled: true,
        color: '#FFFFFF',
        align: 'right',
        x: -130,
        y: 10,
        formatter: function() {
            return  versions[this.y - 1];
        },
        style: {
            fontSize: '13px',
            fontFamily: 'Verdana, sans-serif'
        }
    }                                    
}]

Wayback Machine 存档版本 - 不起作用,但代码在那里

于 2012-04-13T02:42:44.313 回答
0

尝试这个:

plotOptions: {
       series: {
       dataLabels: {                    
            enabled: true,
            color: '#000000',
            useHTML:true,
            style: {
                    fontSize: '13px',
                    fontFamily: 'Verdana, sans-serif'
                    },
            formatter:function(){
               return '<div align="center"><b><span>' + this.point.options.name + '</b><br />'+this.x+' '+this.y+'</span></div>';
 },
于 2013-11-28T21:21:34.780 回答