2013-05-24 2 views
7

누군가가이 문제를 해결할 수 있다면 정말 감사하겠습니다. 우리는 Jqplot을 사용하여 통계 데이터를 플롯하고 확대/축소 기능을 사용하고 있습니다.확대/축소 후 캔버스에서 데이터 포인트 목록 가져 오기 jqplot

는 특히 우리가

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

우리가해야 할 일은

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

하나의 예제를 사용하려면 우리가 표준 편차와 같은 페이지에 표시 일부 값을 다시 계산하는 것입니다 의미 확대 후 그래프에 표시되는 점에 대한 등등. 확대 된 후 그래프에있는 데이터 점의 목록을 가져와야합니다. 따라서 이상적으로는 을 반환하는 메소드가 있습니다. 현재의 데이터 확대 한 후에 그래프에 표시되도록 설정하십시오.

API 설명서를 찾았지만 이러한 방법은 사용할 수없는 것으로 보입니다. 누군가가 어떻게 도와 주는지 정말 고마워요. 이걸 진행해야합니다.

감사합니다 .... 아 미트

+0

또 다른 이유로 같은 데이터를 얻으려고하고 있지만 쉽게 할 수있는 방법이 없습니다. 나는 무엇이든을 찾아내는 경우에 응답으로 새롭게 할 것이다 –

+0

감사합니다 @ JavaDrinker. 같은 배에 :-) – Amitabh

답변

6

좋아, 그래서 코드를 통해 파고를 많이 후, 정말이 데이터를 얻을 수있는 간단한 방법이 아니라, 방법이있다. 아래의 솔루션에서

, 나는 내 주요 jqPLot을 줌 - 프록시 역할을하는 zoomChart jqPLot의 OBJ를 차트을했다. 아마도 프록시가 없다면 올바른 개체에 바인딩하는 한 올바르게 작동합니다.

내가하고있는 일은 확대/축소 작업이 완료된 후 호출되는 'jqplotZoom'이벤트에 사용자 지정 함수를 바인딩하는 것입니다.

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]); 
      } 
     } 
    }); 

의미가 있습니까? 기본적으로 chart.axes.xaxis에는 확대 된 영역의 경계가 포함되어 있으며 plot.series[N].data은 차트 형식의 모든 원본 데이터입니다. 내가 원래 당신이 당신의 플롯을 준 변수에 어떤 이름

당신은 사용해야 var chart = $.jqplot("chartDiv", ...을 생성하기 때문에 내가 chart을 사용

참고. 희망이 도움이됩니다!

+1

프록시없이 작동하는지 확인할 수 있습니다. 차트가 [PrimeFaces] (http://stackoverflow.com/questions/32699503/interval-selection-event-in-primefaces-chart/3271775)에서 생성 된 경우에도 – Kukeltje