2011-10-21 7 views
9

highchart ha un'opzione che consente di impostare un indicatore su un determinato valore.imposta un indicatore di simbolo con diagramma alto

highchart doc:

... 
    data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, { 
     y: 26.5, 
     marker: { 
      symbol: 'url(/demo/gfx/sun.png)' 
     } 
    }, 23.3, 18.3, 13.9, 9.6] 
... 

Come si può vedere, la posizione 26.5 guadagni un'immagine PNG come il suo marcatore.

La mia domanda è: come posso impostarlo su un determinato valore dal mio array?

$.getJSON('ajax/lineChart.ajax.php', function(data) {   
    $.each(data, function(key, value) { 
     var series = { 
      data: [ { 
       y: 0, 
       marker: { 
        symbol: 'url(img/fail.png)' 
       } 
      }], //data array for new series 
      name: key, 
      marker: { 
        symbol: 'square' 
       } 
     }; 
     series.data = value; 
     options.series.push(series); // <-------- pushing series object 
    }); 
    var chart = new Highcharts.Chart(options); 
}); 

ho provato questo, ma non è apparso nulla. Il grafico funzionava senza l'indicatore.

risposta

2

La linea:

series.data = value; 

sovrascrittura tutto quello che hai scritto nel

var series = { 
     data: [ { 

Non sono sicuro di quello che hai nella variabile "dati", ma presumo la sua è come [tasto: [val1 , val2, ...], ...], prova a sostituire "serie.data = valore" con il seguente:

var list= new Array(); 
foreach(var v as value){ 
    if (v==0){ //or what ever condition you need to use a different mark 
     var m={ 
      y: v, 
      marker: { 
       symbol: 'url(img/fail.png)' 
      }}; 
     list.push(m);  
    } 
    else{ 
     list.push(v); 
    } 
} 
series.data = list; 
Problemi correlati