example - Graph Rendering in Python(Flussdiagramm Visualisierung)




python plot numpy array (2)

Wie Doug würde ich Graphviz vorschlagen.

Ich möchte auch erwähnen, dass Sie auch Diagramme in der sehr einfachen Punktsprache direkt schreiben können (sie können dann mit Graphviz oder anderen Werkzeugen geplottet werden); Dies ist eine leichtere Alternative zur Verwendung von Pydot, ohne dass der Code von einem Modul abhängig ist.

https://code.i-harness.com

um eine Sequenz von Knoten zu visualisieren, die durch in Python kodierte Kanten verbunden sind.

Suche nach einer Python-Bibliothek, um solche Graph-Daten zu visualisieren.

entweder eine Bibliothek in Python oder Python Bindings geschrieben, ist in Ordnung

(ich kenne Visustin, suche aber nach Alternativen)


Graphviz ist meiner Meinung nach die beste Option.

Graphviz ist die erste Graph Rendering / Layout Bibliothek; Es ist ausgereift, stabil, Open Source und kostenlos. Es ist kein dediziertes Flussdiagramm oder Diagrammpaket, aber sein Kernanwendungsfall - dh effizientes und ästhetisches Rendern von Objekten, die aus Knoten und Kanten bestehen, subsumiert offensichtlich die Fließdiagrammzeichnung - insbesondere weil seine API es dem Benutzer erlaubt, verschiedene Beschränkungen für die Layout, um das Rendering in den verschiedenen Formaten zu unterstützen - z. B. können Sie alle Knoten der gleichen Ebene (die gleiche Anzahl von Eltern aus dem Stamm) in einer einzelnen zentrierten Zeile darstellen.

Graphviz ist keine Python-Bibliothek (sie ist in C geschrieben); Es sind jedoch qualitativ hochwertige Python-Bindungen verfügbar.

Die Python-Graphviz-Bibliothek, mit der ich am meisten vertraut pygraphviz , ist pygraphviz , was ausgezeichnet ist.

Die anderen beiden sind pydot und yapgvb . Ich habe beide mindestens ein paar Mal verwendet. Jeder ist kleiner als pygraphviz (was je nach Anwendungsfall von Vorteil sein kann); Darüber hinaus ist weder dokumentiert als auch pygraphviz.

Glücklicherweise sind alle drei dieser Python-Bibliotheken dünne Wrapper über Graphviz , so dass keine die leichte, elegante Graphviz-Syntax (die Punktsprache ) verdeckt.

Hier ist der Code (in graphviz 'Punktsprache), den ich verwendet habe, um das kleine "Flussdiagramm" unten zu erstellen:

digraph {

  node [    fill=cornflowerblue,
            fontcolor=white,
            shape=diamond,
            style=filled];

  Step1 [   color=darkgoldenrod2,
            fontcolor=navy,
            label=start,
            shape=box];

  Step2;

  Step3a [  style=filled,
            fillcolor=grey80,
            color=grey80,
            shape=circle,
            fontcolor=navy];

  Step1  -> Step2;
  Step1  -> Step2a;
  Step2a -> Step3a;
  Step3;
  Step3a -> Step3;
  Step3a -> Step2b;
  Step2  -> Step2b;
  Step2b -> Step3;
  End [ shape=rectangle,
        color=darkgoldenrod2,
        fontcolor=navy];
  Step3  -> End [label=193];
}




graphviz