2016-09-16 6 views
0

enter image description hereКак IF значения в Highchart этикетке

Я использую Highstock как this
и хочу показать этикетку класса после {point.y} как "KPAX: 3.10, B" (пожалуйста, смотрите на изображении).
Значит, у меня есть оценка в базе данных или можно использовать IF для получения оценки?

это мой код:

http://jsfiddle.net/3v9wzp90/

$(function() { 
 
    var seriesOptions = [], 
 
    seriesCounter = 0, 
 
    names = ['KPAX']; 
 

 
    /** 
 
    * Create the chart when all data is loaded 
 
    * @returns {undefined} 
 
    */ 
 
    function createChart() { 
 
    $('#container').highcharts('StockChart', { 
 
     legend: { 
 
     enabled: true 
 
     }, 
 
     rangeSelector: { 
 
     selected: 4 
 
     }, 
 
     yAxis: [{ 
 
     labels: { 
 
      formatter: function() { 
 
      return this.value; 
 
      } 
 
     }, 
 
     plotLines: [{ 
 
      value: 0, 
 
      width: 2, 
 
      color: 'silver' 
 
     }] 
 
     }, { 
 
     opposite: true 
 
     }, { 
 
     opposite: true 
 
     }, { 
 
     opposite: true 
 
     }], 
 

 
     plotOptions: { 
 
     series: { 
 
      compare: 'normal' 
 
     } 
 
     }, 
 
     tooltip: { 
 
     pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>', 
 
     valueDecimals: 2 
 
     }, 
 
     series: seriesOptions 
 
    }); 
 
    } 
 

 
    $.each(names, function(i, name) { 
 
    var url = "asset/data/testdata.php?id=<?=$id?>&callback=?"; 
 
    $.getJSON(url, function(data) { 
 
     seriesOptions[i] = { 
 
     name: name, 
 
     data: data, 
 
     dataGrouping: { 
 
      approximation: "average", 
 
      enabled: true, 
 
      forced: true, 
 
      units: [ 
 
      ['month', [1]] 
 
      ], 
 
     }, 
 
     }; 
 

 
     // As we're loading the data asynchronously, we don't know what order it will arrive. So 
 
     // we keep a counter and create the chart when all the data is loaded. 
 
     seriesCounter += 1; 
 

 
     if (seriesCounter === names.length) { 
 
     createChart(); 
 
     } 
 
    }); 
 
    }); 
 
});

+0

Привет Yothin, Можете ли вы поделиться кодом и дайте нам то, что вы испробовали так далеко? –

+0

спасибо, я отредактировал. –

ответ

0

Вы можете использовать функцию pointFormatter вместо pointFormat. В этой функции вы можете добавить код, отвечающий за вычисление класса:

tooltip: { 
    pointFormatter: function() { 
     var grades = ['F', 'D', 'C', 'B', 'A'], 
     index = Math.floor(this.y), 
     grade = grades[index - 1]; 

     var text = '<span style="color:' + this.series.color + '">' + this.series.name + '</span>: <b>' + this.y + '</b>, ' + grade + '<br/>'; 
     return text; 
    }, 
    }, 

Здесь вы можете увидеть простой пример того, как это может работать: http://jsfiddle.net/3v9wzp90/4/

Смежные вопросы