web-dev-qa-db-fra.com

Tracer le Digraph avec graphviz en python à partir d'un fichier DOT

C’est la référence API pour graphviz. Je n'ai trouvé aucune méthode générant un graphe dirigé à partir d'un fichier source dot existant. Des méthodes telles que render et view sont enregistrées dans un nouveau fichier. 

Comment puis-je afficher un graphique à partir d'un code dot existant?

6
Riken Shah

J'ai été capable de le résoudre en utilisant Source class.

from graphviz import Source
temp = """
digraph G{
Edge [dir=forward]
node [shape=plaintext]

0 [label="0 (None)"]
0 -> 5 [label="root"]
1 [label="1 (Hello)"]
2 [label="2 (how)"]
2 -> 1 [label="advmod"]
3 [label="3 (are)"]
4 [label="4 (you)"]
5 [label="5 (doing)"]
5 -> 3 [label="aux"]
5 -> 2 [label="advmod"]
5 -> 4 [label="nsubj"]
}
"""
s = Source(temp, filename="test.gv", format="png")
s.view()

 Output

La sortie sera dans le même dossier, et le format peut être modifié.

PS- Pour installer graphviz sur Ubuntu. Commencez par installer en utilisant Sudo apt install graphviz puis Sudo pip install graphviz, sinon cela ne fonctionnera pas.

8
Riken Shah

Vous pouvez utiliser la fonction Source.from_file('/path/to/dot_file') telle que définie dans API .

Ainsi le code sera:

from graphviz import Source
path = '/path/to/dot_file'
s = Source.from_file(path)
s.view()
2
Jack Stevens