Graphviz die beste Option, meiner Meinung nach ist.
Graphviz ist die Premiere 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 verschiedene Constraints setzen kann auf dem Layout, um das Rendern 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 einzigen mittig ausgerichteten Zeile darstellen.
Graphviz ist keine Python-Bibliothek (es ist in C geschrieben); Es sind jedoch qualitativ hochwertige Python-Bindungen verfügbar.
Die Python-Graphviz-Bibliothek, mit der ich am meisten vertraut bin, 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.
Zum Glück alle drei dieser Python-Bibliotheken sind dünne Wrapper über Graphviz, so dass keiner verbergen die leichte, elegante Graphviz Syntax (die Punkt Sprache).
Hier ist der Code ist (in graphviz‘Punkt Sprache) Ich benutzen den kleinen "Flussdiagramm" weiter 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];
}
Das ist auch gut: http://flowchart.js.org –