2013-08-07 19 views
7

Chcę dostosować etykietkę ostatniego punktu w określonej serii, pozostawiając inne punkty w tej serii i inne serie, z domyślnym formatem podpowiedzi. Zasadniczo szukam czegoś podobnego do tej konfiguracji. Z góry dziękuje za twoją pomoc!Highcharts Dostosuj etykietę dla pojedynczego punktu

series: [{ 
      tooltip: { // ?? tooltip does not work inside series 
       formatter: function() { 
        if (lastPoint in the series) { // ?? how to determine if lastPoint 
         return '<b>Final result is </b> ' + this.y; 
        } 
        // ?? return default format if it is not the last point in the series 
       } 
      },    
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6]   
     }, { 
      data: [194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2]   
     }] 

Odpowiedz

13

Funkcja formatyzatora wydaje się nie działać, gdy jest zdefiniowana dla serii. Możesz sprawdzić, w której serii jesteś, korzystając z this.series.name, a następnie możesz sprawdzić, czy jesteś na ostatnim miejscu, korzystając z this.series.xData.length - 1 == this.point.x. Ale łatwiej byłoby nazwać punkt, na który chcesz celować i sprawdzić w funkcji formatyzatora. http://jsfiddle.net/Swsbb/. Aby zobaczyć wszystkie dane formatyzatora, zobacz tutaj http://api.highcharts.com/highcharts#tooltip.formatter.

$('#container').highcharts({ 
    xAxis: { 
     categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'] 
    }, 
    tooltip : { 
     formatter: function() { 
      var tooltip; 
      if (this.key == 'last') { 
       tooltip = '<b>Final result is </b> ' + this.y; 
      } 
      else { 
       tooltip = '<span style="color:' + this.series.color + '">' + this.series.name + '</span>: <b>' + this.y + '</b><br/>'; 
      } 
      return tooltip; 
     } 
    }, 
    series: [{ 
       data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, {y:135.6, name: 'last'}] 

    }, 
    { 
     data: [194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2] 
    }] 

}); 
Powiązane problemy