Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python

Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python

Betriebsumgebung

Umgebung

Installieren Sie zunächst Graphviz unter Windows.

https://graphviz.gitlab.io/_pages/Download/Download_windows.html

Dieses Mal habe ich die MSI heruntergeladen. Führen Sie es nach dem Herunterladen aus und installieren Sie es gemäß dem Assistenten. Führen Sie es nach der Installation durch den Pfad.

Als nächstes installieren Sie graphviz mit pip.

pip install graphviz

Eigentlich versuchen

Zuallererst die einfache.

Codebeispiel
from graphviz import Digraph

graph = Digraph(format="png")

#Knoten hinzufügen
graph.node("node1")
graph.node("node2")
graph.node("node3")
graph.node("node4")

#Seite hinzufügen
graph.edge("node1", "node2")
graph.edge("node1", "node3")
graph.edge("node2", "node4")
graph.edge("node3", "node4")

#Bild speichern
#Keine Erweiterung erforderlich
graph.render("image/output")

#Bild anzeigen
graph.view()
Ausgabe

output.png

Codebeschreibung
from graphviz import Digraph

graph = Digraph(format="png")

Importieren Sie Digraph, um ein gerichtetes Diagramm zu erstellen. Neben png können auch pdf und svg ausgegeben werden.

#Knoten hinzufügen
graph.node("node1")
graph.node("node2")
graph.node("node3")
graph.node("node4")

Erstellen Sie einen Knoten. Das angegebene Argument wird im Knoten gezeichnet.

#Seite hinzufügen
graph.edge("node1", "node2")
graph.edge("node1", "node3")
graph.edge("node2", "node4")
graph.edge("node3", "node4")

Erstellen Sie eine Kante. Ein Pfeil ist in Richtung des ersten Arguments → des zweiten Arguments angebracht.

Wie unten gezeigt, wird ein neuer Knoten erstellt, wenn Sie ihn hier angeben, auch wenn Sie keinen Knoten erstellt haben.

#Seite hinzufügen
graph.edge("node1", "node2")
graph.edge("node1", "node3")
graph.edge("node2", "node4")
graph.edge("node3", "node4")
#Geben Sie einen Knoten an, der nicht erstellt wurde
graph.edge("A", "B")

Die Ausgabe ist wie folgt. output.png

Ändern Sie das Erscheinungsbild des Diagramms

Sie können die Form und Farbe des Knotens ändern.

Formänderung

Codebeispiel
from graphviz import Digraph

graph = Digraph(format="png")

#Knoten hinzufügen
graph.attr("node", shape="square") #Machen Sie die Form quadratisch
graph.node("node1")
graph.node("node2")

graph.attr("node", shape="star") #Machen Sie die Form zu einem Stern
graph.node("node3")
graph.node("node4")

graph.node("node5", shape="circle") #Kann individuell eingestellt werden
graph.node("node6")

#Seite hinzufügen
graph.edge("node1", "node2")
graph.edge("node1", "node3")
graph.edge("node2", "node4")
graph.edge("node3", "node4")
graph.edge("node4", "node5")
graph.edge("node4", "node6")

#Bild speichern
#Keine Erweiterung erforderlich
graph.render("image/output2")

#Bild anzeigen
graph.view()
Ausgabe

output2.png

Codebeschreibung
#Knoten hinzufügen
graph.attr("node", shape="square") #Machen Sie die Form quadratisch
graph.node("node1")
graph.node("node2")

graph.attr("node", shape="star") #Machen Sie die Form zu einem Stern
graph.node("node3")
graph.node("node4")

graph.node("node5", shape="circle") #Kann individuell eingestellt werden
graph.node("node6")

Sie können die Einstellungen aller Knoten mit der attr-Methode ändern.

Sie können die Form angeben, indem Sie shape =" (shape) " setzen.

Wenn Sie beim Erstellen eines Knotens die Form angeben, können Sie nur die Einstellungen dieses Knotens ändern.

Farbe ändern

Codebeispiel
from graphviz import Digraph

graph = Digraph(format="png")

#Darstellungseinstellungen
graph.attr("node", style="filled", fillcolor="black", color="red") #Knotenfarbeneinstellungen
graph.attr("edge", color="cyan") #Seitenfarbeinstellung

#Knoten hinzufügen
graph.node("node1", style="filled", fillcolor="palegreen", fontcolor="blue")
graph.node("node2", style="filled", fillcolor="yellow")
graph.node("node3", fontcolor="magenta")
graph.node("node4", style="filled", fillcolor="#808080")
graph.node("node5", fontcolor="white")


#Seite hinzufügen
graph.edge("node1", "node2")
graph.edge("node1", "node3")
graph.edge("node2", "node4")
graph.edge("node3", "node4")
graph.edge("node3", "node5")

#Bild speichern
#Keine Erweiterung erforderlich
graph.render("image/output3")

#Bild anzeigen
graph.view()
Ausgabe

output3.png

Codebeschreibung
#Darstellungseinstellungen
graph.attr("node", style="filled", fillcolor="black", color="red") #Knotenfarbeneinstellungen
graph.attr("edge", color="cyan") #Seitenfarbeinstellung

#Knoten hinzufügen
graph.node("node1", style="filled", fillcolor="palegreen", fontcolor="blue")
graph.node("node2", style="filled", fillcolor="yellow")
graph.node("node3", fontcolor="magenta")
graph.node("node4", style="filled", fillcolor="#808080")
graph.node("node5", fontcolor="white")

Sie können die gesamte Einstellung mithilfe der attr-Methode festlegen, z. B. wenn Sie die Form ändern. Knoten und Kanten können festgelegt werden, indem das erste Argument auf "Knoten" oder "Kante" gesetzt wird.

Verwenden Sie zum Füllen style =" fill ", fill color =" (color) ". Verwenden Sie zum Ändern der Textfarbe font color =" (color) ". Die Farbe kann auch durch den Farbcode angegeben werden.

Sie kann beim Erstellen eines Knotens auch einzeln festgelegt werden.

Referenz

Zeichnen Sie mit Graphviz unter Python ein schönes Diagramm

Recommended Posts

Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Ein Memo beim Erstellen einer Python-Umgebung mit Miniconda
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
[Python] Memo zum Erstellen von Scraping-Tools
Vorsichtsmaßnahmen beim Erstellen eines Python-Generators
Ein Memo, dass ich eine Grundfunktion in Python mit Wiederholung geschrieben habe
Beim Erstellen einer Matrix in einer Liste
Bei Verwendung regulärer Ausdrücke in Python
Beim Schreiben eines Programms in Python
Bei Verwendung von @property in Python wird ein Attribut nicht festgelegt
Scraping von Websites mit JavaScript in Python
Als ich versuchte, mithilfe von Anforderungen in Python zu kratzen, war ich süchtig nach SSLError, also einem Workaround-Memo
[Python-Memo] Seien Sie vorsichtig, wenn Sie ein zweidimensionales Array erstellen (Liste der Listen).
Hinweise zum Einrichten eines Docker-Containers für die Verwendung von JUMAN ++, KNP, Python
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
Erstellen Sie eine GIF-Datei mit Pillow in Python
Ein Memo, das ich schnell in Python geschrieben habe
Erstellen eines Nummerierungsprozesses mit Python im lokalen DynamoDB-Nummerierungsprozess
Erstellen Sie in Python ein Diagramm der Standardnormalverteilung
[Python] Zeichnen Sie mit Dash Cytoscape ein gerichtetes Diagramm
Ein Memo, das ich in Python zusammengeführt habe
Anzeigen von Arzneimittelbewertungen mithilfe von Listen in Python
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Hinweise zum Erstellen einer Python-Umgebung durch Anfänger
NetworkX-Memo (gerichtete Grafik)
Diagrammzeichnung mit Python
Zeichnen Sie ein Diagramm mit Python
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Grundeinstellungen bei Verwendung der foursquare-API mit Python
Bis zum Zeichnen eines 3D-Diagramms mit Python in Windows 10
Ein Memorandum beim Schreiben von experimentellem Code ~ Anmelden in Python
Probleme beim Erstellen eines CSV-JSON-Konvertierungstools mit Python
Beachten Sie beim Initialisieren einer Liste in Python
Was ist in dieser Variablen (wenn das Python-Skript ausgeführt wird)?
Verwenden Sie communic (), wenn Sie eine Ausgabe in einem Python-Unterprozess empfangen
Beenden bei Verwendung von Python in Terminal (Mac)
So führen Sie einen Befehl mit einem Unterprozess in Python aus
Mindestnotizen bei Verwendung von Python auf Mac (pyenv edition)
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
Ssh-Verbindungsnotiz mit ProxyCommand von ssh_config in Python
Ein Hinweis beim Überprüfen, ob der angegebene Schlüssel im definierten Wörterbuch mit Python vorhanden ist
Versuchen Sie, das DeepZoom-Dateiformat .DZI in Python zu erstellen
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird
Ich habe einen schnellen Feed-Reader mit Feedparser in Python erstellt
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
Erstellen Sie ein Lesezeichen in Python
So geben Sie char * in einer Rückruffunktion mit ctypes in Python zurück
Python-Memo mit Perl --join
Achtung bei os.mkdir in Python
Versuchen Sie, ein neuronales Netzwerk in Python aufzubauen, ohne eine Bibliothek zu verwenden
Lösen Sie das japanische Problem, wenn Sie das CSV-Modul in Python verwenden.
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Vorsichtsmaßnahmen bei der Verwendung von Python mit AtCoder