Highcharts格式化数据标签

时间:2015-01-02 06:32:16

标签: highcharts

我已经使用highcharts编辑了一个图表,现​​在我想在最后一个数据标签上显示一些具有实际值的文本。

这是jsfiddle编辑

http://jsfiddle.net/3h7x9jst/2/

代码:

$(function () {
$('#container').highcharts({
    chart: {
        type: 'line'
    },
    title: {
        text: ''
    },
    credits:{
        enabled:false
    },
    subtitle: {
        text: ''
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
    },
    yAxis: {
        min:0,
        max:100,
        title: {
            text: 'Score ( % )'
        },
        labels:{
            enabled:false
        }
    },
    legend:{
        enabled:false
    },
    plotOptions: 
    {
        line: 
        {
            lineWidth:2,
            dataLabels: 
            {
                enabled: true,
                formatter:function() 
                {
                    var pcnt = (this.y);
                    return Highcharts.numberFormat(pcnt,0) + '%';
                }
            },
            enableMouseTracking: true
        }
    },
    series: [{
        name: 'Tokyo',
        data: [7.0, 6.9, 9.5, 30, 7.4, 21.5, 6]
    }]
});
 });

在此图表中,最后一个数据标签为6%。我想显示abc 6%而不改变休息。

什么是可能的解决方案?任何帮助

1 个答案:

答案 0 :(得分:2)

您可以尝试一种解决方法,这取决于您的整个代码使用情况。

我已经更新了你的小提琴:http://jsfiddle.net/3h7x9jst/3/

逻辑:

  • 你要得到数组的数量&将其存储在

  • 中的变量中
  • jquery(cnt)。将指针变量(pntr)初始化为0值递增

  • pntr始终在格式化程序功能中检查pntr是否等于

  • 数组计数,即要绘制的最后一个值,因此请更改标签。

代码:

$(function () {
var cnt = 7; // Count of the array should be here
var pntr = 0;
$('#container').highcharts({
    chart: {
        type: 'line'
    },
    title: {
        text: ''
    },
    credits:{
        enabled:false
    },
    subtitle: {
        text: ''
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']
    },
    yAxis: {
        min:0,
        max:100,
        title: {
            text: 'Score ( % )'
        },
        labels:{
            enabled:false
        }
    },
    legend:{
        enabled:false
    },
    plotOptions: 
    {
        line: 
        {
            lineWidth:2,
            dataLabels: 
            {
                enabled: true,
                formatter:function() 
                {
                    pntr++;
                    var pcnt = (this.y);
                    if(pntr == cnt)
                    {
                        return 'Your Text Here' + Highcharts.numberFormat(pcnt,0) + '%';
                    }else{
                        return Highcharts.numberFormat(pcnt,0) + '%';
                    }
                }
            },
            enableMouseTracking: true
        }
    },
    series: [{
        name: 'Tokyo',
        data: [7.0, 6.9, 9.5, 30, 7.4, 21.5, 6]
    }]
});
});