2013-05-24 25 views
7

Birisi bana bu konuda yardımcı olabilirse çok memnunum. Bazı istatistiksel verileri çizmek ve yakınlaştırma işlevi gibi Jqplot kullanıyoruz.Yakınlaştırmadan sonra kanvasdaki veri noktalarını bul jqplot

Özellikle biz

http://www.jqplot.com/deploy/dist/examples/zoom1.html ve

Yapmamız gereken şey

http://www.jqplot.com/deploy/dist/examples/zoomOptions.html

biri örnekleri kullanmak istiyorum biz standart sapma gibi sayfada görüntülemek bazı değerleri yeniden hesaplamak için olabilir ki Yakınlaştırdıktan sonra grafikte görülebilen noktalar için vb. Bunun için, biz yakınlaştırdıktan sonra grafikte (kalan) veri noktalarının listesini almamız gerekiyor. Böylece ideal olarak, 'u döndüren bir yönteme bakıyoruz. Güncel veri Yakınlaştırdıktan sonra grafikte görünür.

API belgelerine baktım, ancak böyle bir yöntem mevcut görünmüyor. Bu yüzden birileri bunun nasıl yapılacağı konusunda yardımcı olursa gerçekten çok memnun olurum.

Teşekkür .... Amit

+0

Başka bir nedenden dolayı aynı verileri elde etmeye çalışıyorum, ancak bunu yapmanın kolay bir yolunu göremiyorum. –

+0

Teşekkür @JavaDrinker bir şey bulursam bir cevap ile güncelleyeceğim. Aynı tekne üzerinde :-) – Amitabh

cevap

6

Ok, bu nedenle kod kazma bir sürü sonra, gerçekten bu verileri almak için herhangi bir basit yolu yoktur, ancak, bir yolu yoktur. Aşağıdaki çözümde

, benim ana jqPLot bir yakınlaştırma-proxy gibi davranan bir zoomChart jqPLot obj var grafiği aradı. Muhtemelen, bir proxy'niz yoksa, doğru nesneye bağlandığınız sürece bu da iyi çalışmalıdır.

Yaptığım şey, yakınlaştırma eylemi tamamlandıktan sonra çağrılan 'jqplotZoom' olayına özel bir işlev bağlanmasıdır.

zoomChart.target.bind('jqplotZoom', function(ev, gridpos, datapos, plot, cursor){ 
     var plotData = plot.series[0].data; 
     for (var i=0; i< plotData.length; i++) { 
      if(plotData[i][0] >= chart.axes.xaxis.min && plotData[i][0] <= chart.axes.xaxis.max) { 
       //this dataset from the original is within the zoomed region 
       //You can save these datapoints in a new array 
       //This new array will contain your zoom dataset 
       //for ex: zoomDataset.push(plotData[i]); 
      } 
     } 
    }); 

Bu mantıklı mı? Esasen, chart.axes.xaxis, yakınlaştırılmış alanın sınırlarını içerir ve plot.series[N].data, grafik biçimindeki tüm orijinal verilerinizdir. Başlangıçta size arsa verdi değişken adı ne olursa olsun

Sen kullanmalıdır var chart = $.jqplot("chartDiv", ... oluşturulan çünkü chart kullanılan

Not. Umarım bu yardımcı olur!

+1

Bir proxy olmadan çalıştığı onaylayabilirim. Grafik [PrimeFaces] 'den üretildiğinde bile (http://stackoverflow.com/questions/32699503/interval-selection-event-in-primefaces-chart/3271775) – Kukeltje

İlgili konular