Tiroir graphique JavaScript / jQuery pur

Suprido

Tiroir graphique JavaScript / jQuery pur


Je recherche une simple bibliothèque JavaScript pure qui n’utilise pas de toile de HTML5 et fournit des graphiques de dessin.

Quelque chose de similaire à Sigma et Cytoscape Web serait parfait.

http://sigmajs.org/ (celui-ci couvre tous mes besoins sauf le JavaScript pur) http://cytoscapeweb.cytoscape.org/

La bibliothèque est censée avoir de telles fonctionnalités:

  1. dessiner des nœuds et des arêtes entre eux (dirigés ou non)
  2. changement de position de chaque nœud par glisser-déposer (pas obligatoire mais avec possibilité d’ajouter un écouteur d’événements à chaque nœud)
  3. d’autres fonctionnalités telles que la mise en évidence des bords et la mise à l’échelle seraient également de grands avantages
MarcoL

Qu’est-ce que vous entendez par does not use canvas from HTML5 ? Et pourquoi sigma n’est pas une pure Javascript bibliothèque pure Javascript ?

Simon Sarris

S’il n’utilise pas de toile, à quoi vous attendez-vous pour effectuer le rendu? Éléments DOM? SVG? Pourquoi pas la toile?

Réponses


 Farid Nouri Neshat

Très probablement d3.js , c’est ce que vous voulez. Il utilise HTML5 / CSS / SVG pour dessiner. Vous souhaiterez probablement utiliser la mise en page forcée . Il prend en charge le glisser-déposer et vous pouvez simplement styler votre graphique avec CSS.


 MK

Comme mentionné , d3.js devrait fonctionner correctement. Il doit utiliser des SVG pour le dessin, donc le dessin des nœuds fonctionne, tout comme le style avec CSS (voir l’exemple). Voici un exemple de http://bl.ocks.org/jose187/4733747 :

graphique de réseau simple

index.html :

 <!DOCTYPE html> <meta charset="utf-8"> <script src="http://d3js.org/d3.v2.min.js?2.9.3"></script> <style> .link { stroke: #aaa; } .node text { stroke:#333; cursos:pointer; } .node circle{ stroke:#fff; stroke-width:3px; fill:#555; } </style> <body> <script> var width = 960, height = 500 var svg = d3.select("body").append("svg") .attr("width", width) .attr("height", height); var force = d3.layout.force() .gravity(.05) .distance(100) .charge(-100) .size([width, height]); d3.json("graphFile.json", function(json) { force .nodes(json.nodes) .links(json.links) .start(); var link = svg.selectAll(".link") .data(json.links) .enter().append("line") .attr("class", "link") .style("stroke-width", function(d) { return Math.sqrt(d.weight); }); var node = svg.selectAll(".node") .data(json.nodes) .enter().append("g") .attr("class", "node") .call(force.drag); node.append("circle") .attr("r","5"); node.append("text") .attr("dx", 12) .attr("dy", ".35em") .text(function(d) { return d.name }); force.on("tick", function() { link.attr("x1", function(d) { return d.source.x; }) .attr("y1", function(d) { return d.source.y; }) .attr("x2", function(d) { return d.target.x; }) .attr("y2", function(d) { return d.target.y; }); node.attr("transform", function(d) { return "translate(" + dx + "," + dy + ")"; }); }); }); </script> 

graphFile.json :

 { "nodes":[ {"name":"node1","group":1}, {"name":"node2","group":2}, {"name":"node3","group":2}, {"name":"node4","group":3} ], "links":[ {"source":2,"target":1,"weight":1}, {"source":0,"target":2,"weight":3} ] } 

 

/, graphique, JavaScript, jQuery, pur, Tiroir

 

elle.fr

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *