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:
-
È facile far funzionare l'aggiornamento dinamico con Angular (utilizzando
ParticleSystem.merge
). Tuttavia, Arbor non sembra supportare il comportamento zoomabile e non sembra essere ben supportato. Ad esempio, il bug del nodo singolo è ancora irrisolto. -
È presente una demo del layout forzato zoomabile e vari luoghi contengono informazioni sull'utilizzo di d3 con Angular. D3 è ben supportato, ma sembra di livello inferiore rispetto alle opzioni seguenti. Ad esempio, la creazione di un grafico di rete con belle etichette di nodi rettangolari non sembra banale.
-
VisJS supporta grafici di rete zoomabili e c'è una libreria angolare in lavorazione, ma non so quanto siano affidabili sia VisJS che la sua libreria angolare.
-
SigmaJS supporta anche i grafici di rete zoomabili, ma non so se funziona bene con Angular.
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.)