2017-05-19 5 views
0

ich einen Web-App am Gebäude, in dem der Benutzer eine Art zweiteiligen Graphen wie diese erstellen:Summarize viele Knoten in Cytoscape.js

A 6 x 7 x 12 graph

Manchmal ist der Benutzer ein aufbauen möchte riesige Grafik, zum Beispiel ein Diagramm, in dem die oberste Schicht 784 Knoten hat, wie im nächsten Bild. Meine Anwendung kann die Berechnung handhaben, aber das Ergebnis ist hässlich und bedeutungslos:

A 6 x 7 x 784 graph

Haben Sie eine Idee haben eine riesige Schicht für die Darstellung ohne nur zeichnen alle Knoten, sondern stattdessen zusammenfasst sie mit einem anderen , schönere Darstellung?

Bis jetzt habe ich darüber nachgedacht, alle Knoten einer "riesigen" Ebene in einen leeren zusammengesetzten Knoten zu setzen, aber natürlich ist es dann nicht möglich, einige Kanten zu zeichnen (so würde die riesige Ebene scheinbar getrennt) der Graph). Eine andere Lösung wäre, alle Layer mit mehr als 100 Knoten genau 100 Knoten zu haben und sie in einen zusammengesetzten Knoten mit einem größeren Z-Index als dem Z-Index jedes Knotens zu setzen. aber ich habe das noch nicht ausprobiert.

Wenn Sie weitere Ideen haben oder wenn Cytoscape.js eine Möglichkeit bietet, große Grafiken zusammenzufassen, lassen Sie es mich wissen.

Vielen Dank.

Antwort

1

Sie könnten Knoten gruppieren, wenn die Menge in einer Schicht eine bestimmte Anzahl überschreitet (zB wenn Sie 100 Knoten haben, kombinieren Sie sie zu Gruppen von 25) Ich würde dies durch Iterieren über die Knoten in der Schicht machen einen neuen Knoten N für jede Untergruppe (Einfügen aller relevanten benötigten Informationen), und dann Ersetzen aller Erwähnung der ersetzten Knoten durch N in allen relevanten Kanten (finding connected edges).

Wie ich persönlich Layouts/Knoten in Python erzeugen, bevor sie zu Cytoscape für die Visualisierung zu senden, ich :) ein potenziell effizient ist/falsch javascript/Cytoscape Beispiel verzichten würde

zu veröffentlichen
Verwandte Themen