2016-06-28 8 views
0

Ich experimentierte mit ein paar JS-Graph-Bibliotheken, und ich bin auf ein Problem mit Etiketten gestoßen. Ich habe viele Kanten, die von verschiedenen Knoten kommen (Erstellen eines Link-Analyse-Graphen) und ich muss in der Lage sein, Beschriftungen an den Kanten anzuzeigen. Ohne dass sie nur bei MouseOver angezeigt werden, gibt es eine Option, um Etikettenkollisionen an Kanten in einer dieser Bibliotheken zu vermeiden. Sehen Sie ein Beispiel dafür, was ich meine hier: http://imgur.com/a/cBIKVVis JS/Cytoscape JS Etikett Kollision

Das erste ist ein Beispiel dafür, was akzeptabel wäre, keines der Etiketten miteinander überlappen. Das zweite ist, was ich jetzt bekomme. Ich wäre in Ordnung mit einer Bibliothek, die diese Funktionalität hat. Vielen Dank im Voraus! -Yash

Antwort

0

Wenn Sie kein streng planares Diagramm haben, haben Sie eine Kantenüberlappung, unabhängig davon, welche Bibliothek Sie verwenden. Das ist eine Eigenschaft der Graphentheorie im Allgemeinen.

Wenn Sie überlappende Kanten haben, haben Sie wahrscheinlich auch überlappende Beschriftungen.

Sie können versuchen, die Wahrscheinlichkeit von Etikettenüberschneidungen bei der Auswahl von Layout und Styling zu reduzieren. Zum Beispiel wird autorotated edge labels oft die Überlappung reduzieren.

+0

Danke für die Antwort, fügte ich die Änderungen, die Sie erwähnt haben. Ich frage mich nur, gibt es eine Möglichkeit, das Etikett an einer Kante zu versetzen, wenn es sich an der gleichen Stelle wie ein anderes Etikett befindet? Eine andere Möglichkeit, diese Frage zu stellen, gibt es eine Möglichkeit, die Koordinaten eines bestimmten Etiketts zu finden? –

+0

http://js.cytoscape.org/#eles.boundingBox – maxkfranz