Ist Graphviz das beste Werkzeug für diese Art von Graphen?

7

Ich möchte ein Diagramm wie das unten gezeigte erstellen ... aber viel zu komplex. Ich möchte separate Bilder für jeden der quadratischen Knoten und das gleiche Bild für jeden der Kreisknoten verwenden.

Ich möchte wissen, ob die Verwendung von GraphViz die beste Option ist oder gibt es andere Optionen?

Außerdem würde ich gerne wissen, ob ich einen Template-Knoten in GraphViz für den Kreis eins erstellen und wiederverwenden kann? Ich möchte die Attribute wie Bild, Form usw. nicht immer wieder angeben.

    
Rishabh 24.09.2011, 06:56
quelle

2 Antworten

8

Graphviz ist definitiv geeignet für das, was Sie fragen. Die Hauptseite von graphviz.org scheint für den Moment nicht verfügbar zu sein, aber jemand hat die Galerie-Beispiele (mit Quelle) freundlicherweise auf Flickr gespiegelt.

Ссылка

Soweit mir bekannt ist, können Sie keine "Vorlagen" erstellen, aber Sie können so etwas für die Kreise tun:

%Vor%

Dies definiert einen Knoten (man denke an einen "Zustand", wenn die Datei Zeile für Zeile ausgewertet wird) und dann können Sie Ihre Kreisknoten in diesem "Zustand" definieren, bevor Sie zu Ihren Rechtecken wechseln.

Abhängig von Ihrer Plattform können Sie möglicherweise auch Ihre .dot-Datei importieren und für die Veröffentlichung anpassen. Es gibt auch eine große Anzahl von Generatoren und Konvertern für das Format.

Wenn Sie unter Mac OS X 10.7 "Lion" arbeiten, ist es mir bisher nicht gelungen, eine funktionierende Version von Graphviz zu finden oder zu erstellen. In diesem Fall würde ich sagen, dass es noch nicht für Ihre Bedürfnisse geeignet ist.

    
Art Taylor 24.09.2011, 07:20
quelle
12

Sicher, hier ist der Code, um den Graphen in Ihrer Frage zu zeichnen (und der unten durch Punkt dargestellt wird).

%Vor%


  1. Die erste Zeile digraph ist für gerichteter Graph (für Graphen in welche die Kanten haben eine Richtung).

  2. Die vierte und fünfte Lüge über setzen Standardattribute für Kanten und Knoten jeweils. Mit anderen Worten, sobald Sie dies getan haben, nur Sie müssen (Knoten + Werte) Knoten (oder Kanten) stylen, die Sie möchten anders als die Standardwerte formatieren. Du kannst haben mehr als ein Knoten "Vorlage" durch Erstellen von Untergraphen oder diskret gruppiert Knoten (siehe Punkt Handbuch).

  3. rank = same ermöglicht es Ihnen, eine Gruppe von Knoten mit denselben Namen anzugeben vertikale Position (vorausgesetzt, rankdir ist auf TB gesetzt, was bedeutet "von oben nach unten").

  4. Standardmäßig wird der Knotenname (z. B. a, b, c in meinem Diagramm) als verwendet Knotenbezeichnung. Wenn dies nicht im gerenderten Diagramm angezeigt werden soll, Setze einfach label=""

    
doug 24.09.2011 07:21
quelle