2009-05-24 9 views
2

Si je lie une fonction à l'événement "plotselected" de flot, existe-t-il un moyen d'obtenir les index de la série principale des points de début et de fin de la zone sélectionnée?Trouver la somme de selected in flot

J'ai vu qu'avec "plothover" vous pouvez utiliser la variable "item", mais il n'est pas clair si cela fonctionne pour les sélections. De plus, je ne veux pas avoir à parcourir toute la série chaque fois que la fonction est appelée. Mon but est d'obtenir quelque chose comme:

$("#placeholder").bind("plotselected", function (itemx1, itemx2) { 
      var x1 = itemx1.plot.pos //The index for this plot point in series"; 
      var x2 = itemx2.plot.pos //The index for this plot point in series"; 
      var sum = 0; 
      for (var i = x1; i < x2; i++) { 
       sum += d[i][0]; 
       } 
      $("#total_selected").text(sum); 
      }); 

Si je pouvais, je pourrais aussi la sortie (avec mes données) quelque chose comme:

  "You earned X points over Y days, Z hours, F minutes. Good Job!" 

On dirait que cela devrait être simple, mais Flot est vraiment me lancer pour une boucle.

Merci!

+0

Vouliez-vous dire écrire: var x2 = // itemx2.plot.pos L'indice pour ce point de complot en série ", – dplante

+0

Oui bon oeil que je l'ai fixé, je veux la somme!.. Je voudrais que le flot ait une action de base de type Riemann sum où je pourrais obtenir une somme plus précise à deux points, ce qui ne devrait pas être difficile puisque mes lignes ne courbent pas, mais c'est ce que j'ai à l'algèbre 2. – Anthony

Répondre

5

Depuis la flot api documentation: la fonction événementielle "plotsélectionnés" prend deux parémètres "événement" et "plages". L'objet ranges contient les coordonnées x et y de la sélection.

$('#placeholder').bind('plotselected', function (event, ranges) { 
    var x1 = ranges.xaxis.from; 
    var x2 = ranges.xaxis.to; 
    var y1 = ranges.yaxis.from; 
    var y2 = ranges.yaxis.to;  
    var sum = 0; 

    /* The values returned by the coordinates are floats. 
    You may need to tweak this to get the correct results.*/ 
    for (var i = x1; i < x2; i++) { 
     sum += d[i][0]; 
    } 
    $("#total_selected").text(sum); 
}); 
+1

Sauf que la documentation que vous avez liée à ne mentionne pas du tout "plotselected". – Draemon

Questions connexes