Domanda:
Grafico di rete ingrandibile in AngularJS
Andreas
2014-06-27 20:34:46 UTC
view on stackexchange narkive permalink

Vorrei visualizzare un grafico di rete in un'applicazione AngularJS. I nodi e i bordi vengono memorizzati come oggetto JSON e i nodi verranno aggiunti e modificati in seguito (ad esempio una volta ogni 30 secondi). Voglio utilizzare il data binding angolare per aggiornare automaticamente il grafico quando l'oggetto JSON cambia. Il grafico avrà 10-1000 nodi. I nodi saranno nodi di testo rettangolari contenenti circa una frase ciascuno. Vorrei che il grafico fosse ingrandibile e visualizzabile.

Finora conosco le seguenti opzioni:

Ci sono altre biblioteche rilevanti? Qual è la migliore libreria da utilizzare per questo progetto e come posso implementare un grafico di rete dinamico così ingrandibile data la libreria?

(Originariamente pubblicato su StackOverflow.)

Quattro risposte:
MarcoL
2014-08-26 15:16:50 UTC
view on stackexchange narkive permalink

Sulla base di una risposta precedente che ho fornito su StackOverflow, aggiungerei alla tua lista quanto segue:

  • VivaGraph è uno strumento gratuito e open source per lo strumento di visualizzazione di grafici, ma ha una comunità più piccola rispetto a SigmaJS. Ha la funzione di zoom. Non so nulla dell'integrazione angolare.

  • Keylines è uno strumento di visualizzazione di grafici commerciali, con stili, analisi e layout avanzati e forniscono copia / incolla demo se stai usando Neo4J o Titan. Non è gratuito, ma supporta anche i browser più vecchi, da IE7 in poi ... Ha la funzione "zoom" e c'è un semplice wrapper angolare (beta).

Dichiarazione di non responsabilità: faccio parte del team di KeyLines.

Sebastian
2014-11-18 19:49:45 UTC
view on stackexchange narkive permalink

yFiles per HTML, una libreria di disegni grafici commerciali per Javascript / HTML5 offre le funzionalità che stai cercando:

Puoi importare nodi e bordi da strutture JSON e aggiornare dinamicamente il grafico più avanti. Questa funzione è mostrata in queste demo. La visualizzazione supporta lo zoom e la panoramica praticamente infinita. Lo zoom e la panoramica, nonché altre interazioni con i grafici (modifica) possono essere eseguite tramite mouse, penna, tastiera e input tattile. Esempi più avanzati sono disponibili qui. Poiché l'aggiunta di nodi e bordi in modo dinamico richiede posizionamenti intelligenti dei nuovi elementi, yFiles fornisce le implementazioni di layout automatico più avanzate disponibili per JavaScript e TypeScript fino ad oggi.

Ci sono alcune demo di AngularJS e Angular2 + che mostrano come eventualmente integrare la libreria con AngularJS e Angular (2+). La demo mostra tutte le possibili funzionalità di integrazione:

  • Puoi fare in modo che il controllo stesso venga implementato come una direttiva angolare
  • Puoi usare Angular per modellare e associare a dati gli snippet SVG per il visualizzazione dei nodi e delle etichette
  • Puoi utilizzare le funzionalità di associazione dei dati di Angular per guidare la struttura del grafico: l'aggiunta di elementi a un elenco li aggiungerà automaticamente al grafico e puoi anche utilizzare il meccanismo di filtraggio di Angular per filtrare il grafico, ad es.

Disclaimer : lavoro per l'azienda che crea quella libreria (ecco perché conosco quella demo), ma su SE non lo faccio rappresenta il mio datore di lavoro.

Seb
2015-03-11 14:02:17 UTC
view on stackexchange narkive permalink

Linkurious.js funziona bene con Angular ed è gratuito per i progetti open source. Con loro ho creato un'app Web complessa per la visualizzazione di grafici (alcune migliaia di nodi).

Tuttavia consiglio vivamente di NON utilizzare il data binding angolare a due vie per controllare le modifiche negli oggetti perché Angular deve eseguire l'hash l'oggetto ad ogni ciclo $ digest, ed è un'operazione costosa. Un'architettura pub-sub tradizionale eviterebbe un calo delle prestazioni.

Dichiarazione di non responsabilità: lavoro presso Linkurious SAS.

Sto creando una guida per integrare Linkurious.js in Angular, vedere https://github.com/Linkurious/linkurious.js/wiki/How-to-integrate-with-Angular.js
È "zoom e pan-in grado"? Poiché è il punto principale della domanda, una GIF animata che mostra che renderebbe questa un'ottima risposta :-)
Simon Sarris
2015-07-07 00:09:35 UTC
view on stackexchange narkive permalink

GoJS è una libreria di diagrammi JavaScript generica

Ci sono un sacco di interattività incorporata che rendono facile per gli utenti creare e modificare i propri diagrammi. Guarda un esempio di diagramma di flusso qui o molti altri tipi di diagramma qui.

  • Integrato, gli utenti possono trascinare e rilasciare i nodi dalle tavolozze, disegnare nuovi collegamenti, ridisporre / ridimensionare i nodi, rimodellare i collegamenti.
  • I modelli per nodi, collegamenti e gruppi possono essere arbitrariamente complessi e includere forme / geometrie personalizzate
  • Supporto per collegamenti creati dall'utente con convalida dei collegamenti arbitraria
  • Con collegamenti, instradamento dei collegamenti ortogonali e Bezier con opzioni "Evita nodi" e "Salta sopra"
  • Associazione dati con dati JSON
  • Intuitiva funzionalità Drag-and-Drop & Copia-Incolla
  • Annulla e ripristina estensibile illimitata
  • Supporto per mouse e tocco con personalizzabile strumenti
  • Layout automatico dei grafici
  • Tavolozze e panoramiche

Dichiarazione di non responsabilità: sono uno degli sviluppatori principali di GoJS

Quanto bene gioca con AngularJs? Mi aspetto di aggiornare "$ scope" nel mio controller e di aggiornare automaticamente la vista (diagramma). In caso contrario, non è angolare. Forse c'è un involucro?
vedere: http://gojs.net/latest/samples/angular.html
È "zoom e pan-in grado"? Poiché è il punto principale della domanda, una GIF animata che mostra che renderebbe questa un'ottima risposta :-)


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...