2013-05-09 10 views
7

Mam wykres liniowy z kilkoma seriami. Kiedy oglądam wszystko na raz, wykres jest mylący, dlatego chciałbym, aby pewne serie były początkowo ukryte.Wyłączanie serii poprzez konfigurację w highcharts

Wiem, że mogę programowo wyłączyć szereg, ale czy istnieje sposób, aby to zrobić podczas inicjowania wykresu?

Odpowiedz

27

Uwierz, że istnieje opcja konfiguracji dla tego.

ciągu Series, ustaw "Visible = false"

Legenda nadal notować serię ale wyszarzone. A sama seria zostanie ukryta na wykresie po pierwszym wyświetleniu.

Przykład Konfiguracja:

series: [{ 
      name: 'HiddenByDefault', 
      legendIndex: 1, 
      visible: false, 
      color: '#4572A7', 
      type: 'spline', 
      data: [a, b, c], 
      tooltip: { 
       valueSuffix: ' ¥' 
      } 

     } 
6

Możesz to osiągnąć, ukrywając wszystkie serie, których nie chcesz widzieć zaraz po zakończeniu ładowania wykresu.

Fiddle: http://jsfiddle.net/bHDLX/

Kod:

$(function() { 
// create the chart 
$('#container').highcharts({ 
    chart: { 
     events: { 
      load: function(event) { 
       alert ('Chart loaded'); 
       this.series.forEach(function(d,i){if(d.options.id==1)d.hide()}) 
      } 
     }   
    }, 
    xAxis: { 
    }, 

    series: [{ 
     animation: false, 
     id : 1, 
     data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]  
    }, 
      { 
     animation: false, 
     id : 2, 
     data: [29.9, 144.0, 176.0, 71.5, 106.4, 129.2, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]  
    },{ 
     animation: false, 
     id : 3, 
     data: [ 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4]  
    }] 
}); 

});

+0

ja nadzieję osiągnąć poprzez odpowiednią konfigurację, lecz nie może być sposobem. Zdarzenie load będzie działać, ponieważ wydaje się, że zostanie wywołane przed narysowaniem serii. Dzięki! – cfs

+0

Tak, nie można tego zrobić poprzez obiekt konfiguracyjny - wystarczy sprawdzić dokumentację Highcharts. –

Powiązane problemy