Highchart中条形图内外的数据标签颜色可以不同

Ade*_*han 5 javascript highcharts

我想知道如果文本不适合条形长度,条形图内的文本颜色(plotOptions.bar.dataLabels.color)可能会有所不同.例如: 在此输入图像描述

代码在这里:

$(function () {
$('#container').highcharts({
    chart: {
        type: 'bar',
        height: 700
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },
    plotOptions: {
        bar: {
            stacking: 'normal',
            pointPadding: 0,
            groupPadding: 0.2,
            dataLabels: {
                enabled: true,
                color: 'black',
                align: "right",
                format: '{y} M',
                inside: false,
                style: {
                    fontWeight: 'bold'
                },
                verticalAlign: "middle"
            },
        }
    },

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 2.33]
    }]
});
Run Code Online (Sandbox Code Playgroud)

});

提前致谢

Paw*_*Fus 5

可能的解决方案是使用格式化程序.确定值是否低于某个级别,然后更改dataLabel颜色.例如:http://jsfiddle.net/Yrygy/176/

                formatter: function() {
                    var max = this.series.yAxis.max,
                        color =  this.y / max < 0.05 ? 'black' : 'white'; // 5% width
                    return '<span style="color: ' + color + '">' + this.y + ' M</span>';   
                },
Run Code Online (Sandbox Code Playgroud)

您还可以将点的宽度与y值字符串的长度进行比较.