2015-03-03 3 views
4

Я хочу показать «N/A» в таблице столбцов, когда данные равны нулю. Это то, что я в настоящее время пытается сделать: http://jsfiddle.net/90amxpc1/1/Показывать N/A в datalabels, когда значение равно null - Highcharts

dataLabels: { 
       formatter: function() { 
        if (this.y == null) { 
         return "N/A"; 
        } 
        else { 
         return this.y; 
        } 
       } 
} 

Но ее не работает. То, что я хочу достичь аналогично принятого ответ на этот вопрос: Highcharts: Returning N/A value instead of 0% in data label или это скрипка: http://jsfiddle.net/v5vJR/3/

Я попытался изменить его на диаграмму колонки, но он не работает.

ответ

2

Существует только другая логика для бара (перевернутый график) и гистограмме, например, для колонки:

  formatter: function() { 
       if (this.y == null) { 
        var chart = this.series.chart, 
         categoryWidth = chart.plotWidth/chart.xAxis[0].categories.length, 
         offset = (this.point.x) * categoryWidth + categoryWidth/2, 
         text = chart.renderer.text('N/A', -999, -999).add(); 

        text.attr({ 
         x: chart.plotLeft + offset - text.getBBox().width/2, //center label 
         y: chart.plotTop + chart.plotHeight - 8 // padding 
        }); 

       } else { 
        return this.y; 
       } 
      }, 

Живая демонстрация: http://jsfiddle.net/90amxpc1/4/

Примечание:
Вы можете хранить text переменная, чтобы удалить этот текст при скрытии серии или масштабировании диаграммы.

+1

спасибо. Прекрасно работает! :) –

+0

этот код дублирует тексты, если размер экрана изменяется. любое средство правовой защиты? –

+0

См. Мою переменную 'note' - store с метками, например простой массив. Затем перед рендерингом новых меток удалите старые. Или обновите старые с новой позицией. –