Dessinez une structure arborescente en Python 3 à l'aide de graphviz

Je pense avoir utilisé Graphviz, un outil qui convertit du texte en graphiques, à partir de Python3 pour dessiner une arborescence.

Qu'est-ce que Graphviz

wikipedia

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.

sample.png

Cette fois, je pense avoir utilisé ce Graphviz de Python3 pour dessiner une arborescence.

Environnement d'exploitation

Environnement

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. .. ..

opération de base

É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

binary_tree.png

référence

Exemple officiel

Recommended Posts

Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Dessinez un cœur en Python
Dessinez une matrice de diagramme de dispersion avec python
Dessinez un diagramme CNN en Python
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
Dessiner un cœur avec Python Partie 2 (SymPy Edition)
Dessiner un graphique avec python
Dessiner un graphique d'une fonction quadratique en Python
Créer un fichier GIF en utilisant Pillow en Python
Afficher les avis sur les médicaments à l'aide de listes en Python
[Python] Comment dessiner un histogramme avec Matplotlib
Créez un fichier MIDI en Python en utilisant pretty_midi
Prendre une capture d'écran en Python
Créer un bot de collecte de données en Python à l'aide de Selenium
Créer une fonction en Python
Dessiner une forme d'onde mp3 en Python
Créer un dictionnaire en Python
Dessinez le disque de Poancare en Python
Dessiner "Dessiner une fougère par programme" en Python
Créer un bookmarklet en Python
Comment exécuter une commande à l'aide d'un sous-processus en Python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Dérivés appris en utilisant Python - (2) Draw Yield Curve (JPYLibor Curve) -
J'ai créé un lecteur de flux rapide en utilisant feedparser en Python
Essayez de créer un réseau de neurones en Python sans utiliser de bibliothèque
Un mémo que j'ai écrit une fonction de base en Python en utilisant la récurrence
J'ai fait un chronomètre en utilisant tkinter avec python
Essayez d'exécuter une fonction écrite en Python à l'aide de Fn Project
Dessinez des ondes sinusoïdales avec Blender Python
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
Programmation GUI en Python avec Appjar
[python] Gérer les fonctions dans une liste
Appuyez sur une commande en Python (Windows)
J'ai fait un Line-bot avec Python!
Créer une interface graphique python à l'aide de tkinter
Créer un conteneur DI avec Python
Dessinez des nœuds de manière interactive avec Plotly (Python)
Dessiner une courbe Silverstone en utilisant Python
ABC166 en Python A ~ C problème
Ecrire des algorithmes A * (A-star) en Python
Essayez d'utiliser LevelDB avec Python (plyvel)
Créer un fichier binaire en Python
Compilateur en Python: arborescence de syntaxe PL / 0
Utilisation de variables globales dans les fonctions python
Résoudre ABC036 A ~ C avec Python
Ecrire un graphique à secteurs en Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
Voyons voir l'utilisation de l'entrée en python
Implémentation d'un algorithme simple en Python 2
Algorithme (arborescence de segments) en Python (s'entraîner)
Résoudre ABC037 A ~ C avec Python
Exécutez un algorithme simple en Python
Reconnaissance de caractères manuscrits à l'aide de KNN en Python
Créer une chaîne aléatoire en Python
Essayez d'utiliser LeapMotion avec Python