Zeichnen Sie mit graphviz eine Baumstruktur in Python 3

Ich glaube, ich habe Graphviz, ein Tool, das Text in Diagramme konvertiert, aus Python3 verwendet, um eine Baumstruktur zu zeichnen.

Was ist Graphviz?

wikipedia

Graphviz ist ein Tool, das Text in ein Diagramm mit einem eindeutigen Format namens .dot konvertiert.

sample.dot


digraph {
    node [shape=circle]
    A [label=A]
    B [label=B]
    C [label=C]
        A -> B
        A -> C
}

Das folgende Diagramm kann aus dem obigen Beispiel gezogen werden.

sample.png

Dieses Mal habe ich dieses Graphviz aus Python3 verwendet, um eine Baumstruktur zu zeichnen.

Betriebsumgebung

Umgebung

Installieren Sie zuerst Graphviz mit Brew

$brew install graphviz
$dot -V
>>> dot - graphviz version 2.38.0 (20140413.2041)

Installieren Sie graphviz mit pip

graphviz ist ein Paket, das Graphviz so umschließt, dass es von Python aus verwendet werden kann.

$pip install graphviz

Als ähnliches Paket gibt es pygraphviz, das mit networkx verknüpft werden kann, dies ist jedoch nicht mit Python3 kompatibel. .. ..

Grundbetrieb

Schreiben wir als Beispiel eine Dichotomie.

binary_tree.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from graphviz import Digraph

#Geben Sie png für das Format an(Andere PDF, PNG,SVG usw. kann angegeben werden)
G = Digraph(format='png')
G.attr('node', shape='circle')

N = 15    #Anzahl der Knoten

#Knoten hinzufügen
for i in range(N):
    G.node(str(i), str(i))
    
#Kante hinzufügen
for i in range(N):
    if (i - 1) // 2 >= 0:
        G.edge(str((i - 1) // 2), str(i))

# print()Dann wird es im Punktformat ausgegeben
print(G)

# binary_tree.Als PNG speichern
G.render('binary_tree')

Ausgabeergebnis

binary_tree.png

Referenz

Offizielles Beispiel

Recommended Posts

Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Zeichne ein Herz in Python
Zeichnen Sie eine Streudiagrammmatrix mit Python
Zeichnen Sie ein CNN-Diagramm in Python
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
Mit Python Teil 2 ein Herz zeichnen (SymPy Edition)
Zeichnen Sie ein Diagramm mit Python
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
Erstellen Sie eine GIF-Datei mit Pillow in Python
Anzeigen von Arzneimittelbewertungen mithilfe von Listen in Python
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Machen Sie einen Screenshot in Python
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Erstellen Sie eine Funktion in Python
Zeichnen Sie MP3-Wellenformen in Python
Erstellen Sie ein Wörterbuch in Python
Zeichnen Sie die Festplatte von Poancare in Python
Zeichnen Sie "Farn programmgesteuert zeichnen" in Python
Erstellen Sie ein Lesezeichen in Python
So führen Sie einen Befehl mit einem Unterprozess in Python aus
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Mit Python erlernte Derivate- (2) Zeichnen Sie eine Zinsstrukturkurve (JPYLibor-Kurve) -
Ich habe einen schnellen Feed-Reader mit Feedparser in Python erstellt
Versuchen Sie, ein neuronales Netzwerk in Python aufzubauen, ohne eine Bibliothek zu verwenden
Ein Memo, dass ich eine Grundfunktion in Python mit Wiederholung geschrieben habe
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Versuchen Sie, eine in Python geschriebene Funktion mit Fn Project auszuführen
Zeichnen Sie Sinuswellen mit Blender Python
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Schreiben Sie eine Dichotomie in Python
GUI-Programmierung in Python mit Appjar
[Python] Verwalten Sie Funktionen in einer Liste
Drücken Sie einen Befehl in Python (Windows)
Ich habe einen Line-Bot mit Python gemacht!
Erstellen Sie mit tkinter eine Python-GUI
Erstellen Sie einen DI-Container mit Python
Zeichnen Sie Knoten interaktiv mit Plotly (Python)
Zeichnen einer Silbersteinkurve mit Python
ABC166 in Python A ~ C Problem
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Versuchen Sie es mit LevelDB mit Python (plyvel)
Erstellen Sie eine Binärdatei in Python
Compiler in Python: PL / 0-Syntaxbaum
Verwendung globaler Variablen in Python-Funktionen
Löse ABC036 A ~ C mit Python
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Mal sehen, wie man Eingaben in Python verwendet
Implementierung eines einfachen Algorithmus in Python 2
Algorithmus (Segmentbaum) in Python (Übung)
Löse ABC037 A ~ C mit Python
Führen Sie einen einfachen Algorithmus in Python aus
Handschriftliche Zeichenerkennung mit KNN in Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Versuchen Sie es mit LeapMotion mit Python