2012-10-03 5 views
5

Highcharts kullanarak, kimliğini kullanarak nasıl bir nokta seçebilirim? Aşağıdaki kodu kullanarak bir grafik oluşturmak Örneğin,:Highcharts kullanarak bir nokta seçme

chart1 = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'container', 
      type: 'scatter' 
     }, 
     title: { 
      text: 'Fruit Consumption' 
     }, 
     xAxis: { 
      categories: ['Apples', 'Bananas', 'Oranges'] 
     }, 
     yAxis: { 
      title: { 
       text: 'Fruit eaten' 
      } 
     }, 
     series: [{ 
      name: 'Jane', 
      data: [{ 
       name: 'Point1', 
       x: 1, 
       y: 2 
      }, { 
       name: 'Point2', 
       x: 2, 
       y: 5 
      }] 
     }, { 
      name: 'John', 
      data: [5, 7, 3] 
     }] 
     }); 
    }); 

ipucu Ben bir noktaya üzerine geldiğinizde, kimliği ne söylüyor. Ancak, bu noktayı tanımlamak için sözdizimini anlayamıyorum. Biliyorum chart1.series[0].nameJane. Also, chart1.series [0] .data [0] .name returns point1 'Sadece noktayı seçip yalnızca' point1 'bilen rengi değiştirmenin kolay bir yolu var mı?

Her seferinde tüm noktalardan geçmenin dışında daha verimli bir yol olup olmadığını merak ediyorum.

+0

.. hep görevleri yerine öğrenmek için en iyi yoldur ve alternatif ve öğrenme/eğitim verimli kaynağıdır. :) http://api.highcharts.com/highcharts –

+2

Bu soruyu neredeyse iki yıl önce sordum. Bu noktada dokümantasyonda tartışılmadı. – djq

cevap

9

Almak istediğiniz her nokta için bir id ayarlayabilirsiniz.

series: [{ 
    name: 'Jane', 
    data: [{ 
     'name': 'Point1', 
     'id': 'point1', 
     'x': 1, 
     'y': 2 
    }, { 
     'name': 'Point2', 
     'id': 'point2', 
     'x': 2, 
     'y': 5 
    }] 
}, { 
    name: 'John', 
    data: [5, 7, 3] 
}] 

Sonra aşağıdaki kodu ile nokta alabilirsiniz.

// assuming that chart is your chart var 
chart.get('point1'); 

demo

Yoksa karşılaştırmak points thrue bir id yapabilirsiniz basit döngü ayarlamak istemiyorsanız name sen point name ile bulmak istiyorum.

Referans: API belgelerine okuma

+0

temiz, basit ve verimli. –

+0

Bunun dışında verimli değil. Temiz ve basit kalır, ancak sahnelerin ardında HighChart'ın "chart.get()" yöntemi, her dizide ve bu dizideki her bir noktanın eşleşmesi için yinelenir. Zaten x değerine göre sıralanmış veri kümeleridir. Bu yüzden, uygulama geliştiricisinin yüksek şarllar kullanarak gerçekleştirdiği ikili bir arama, en azından O (log N) 'yi kendiniz aradığınızda elde edebileceğinizden daha iyi bir verimlilik sunacaktır. – Sensei