Je pense avoir utilisé Graphviz, un outil qui convertit du texte en graphiques, à partir de Python3 pour dessiner une arborescence.
Graphviz est un outil qui convertit du texte en un graphique en utilisant un format unique appelé .dot.
sample.dot
digraph {
node [shape=circle]
A [label=A]
B [label=B]
C [label=C]
A -> B
A -> C
}
Le graphique suivant peut être dessiné à partir de l'exemple ci-dessus.
Cette fois, je pense avoir utilisé ce Graphviz de Python3 pour dessiner une arborescence.
Tout d'abord, installez Graphviz à l'aide de brew
$brew install graphviz
$dot -V
>>> dot - graphviz version 2.38.0 (20140413.2041)
Installez graphviz avec pip
graphviz est un package qui enveloppe Graphviz afin qu'il puisse être utilisé à partir de Python.
$pip install graphviz
En tant que package similaire, il existe pygraphviz qui peut être lié avec networkx, mais ce n'est pas compatible avec Python3. .. ..
Écrivons une dichotomie à titre d'exemple.
binary_tree.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from graphviz import Digraph
#Spécifiez png pour le format(Autre PDF, PNG,SVG etc. peut être spécifié)
G = Digraph(format='png')
G.attr('node', shape='circle')
N = 15 #Nombre de nœuds
#Ajouter un nœud
for i in range(N):
G.node(str(i), str(i))
#Ajouter un bord
for i in range(N):
if (i - 1) // 2 >= 0:
G.edge(str((i - 1) // 2), str(i))
# print()Ensuite, il sera sorti au format point
print(G)
# binary_tree.Enregistrer au format png
G.render('binary_tree')
Résultat de sortie
Recommended Posts