Highcharts:在数据标签中返回N / A值而不是0%

时间:2014-02-21 15:38:52

标签: highcharts formatter

我想让y轴数据标签为空值返回'N / A'。目前没有显示任何内容我尝试使用y-formatter函数来说明y值是否等于null,返回N / A但由于某种原因没有运气?我对Highcharts不太感兴趣,所以请原谅问题的基本性质。

formatter: function() {
                    if (this.y !== null)
                        return 'test';

                    var chart = this.series.chart;

                    chart.renderer.text('n/a', this.point.plotX - 10, chart.plotHeight - 10).add(this.series.group)
                },

以下是JSFiddle的链接:http://jsfiddle.net/v5vJR/

2 个答案:

答案 0 :(得分:1)

从dataLabels选项中删除format。然后你需要正确计算放置标签的位置。 plotY将是未定义的,因为没有值,对吗?

            formatter: function () {
                var str;
                if (this.y !== null) {
                    return this.y + '%';
                } else {
                    var chart = this.series.chart,
                        categoryWidth = chart.plotHeight / chart.xAxis[0].categories.length,
                        offset = (this.point.x + 1) * categoryWidth - this.point.pointWidth + 3; // 

                    chart.renderer.text('n/a', chart.plotLeft, chart.plotTop + offset).add();
                }

                return false;
            },

演示:http://jsfiddle.net/v5vJR/3/

答案 1 :(得分:0)

解决方案
文档:http://api.highcharts.com/highcharts#Renderer

小提琴:http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/renderer-text/

             chart.renderer.text('<span style="color: #a2a5a1">N/A</span>', chart.plotLeft, chart.plotTop + offset)
                    .css({
                    color: '#a2a5a1',
                    fontSize: '11px'
                    })
                    .add();