[PYTHON] NetzwerkX-Diagramm mit graphviz ausgeben (PyGraphviz)

Installation

Ich wollte vom Zeichnen mit matplotlib.pyplot zu grahviz wechseln, also habe ich verschiedene Dinge ausprobiert.

Ich habe eine nützliche Sache namens PyGraphviz gefunden. Installieren Sie unter Bezugnahme auf den offiziellen (http://pygraphviz.github.io/documentation/pygraphviz-1.3rc1/install.html#quick-install).

Ich habe also einen Pip

% pip install pygraphviz

Es endet mit.

ich schrieb es

pgvSample.py


import pygraphviz as pgv
import networkx as nx

#Erstellen Sie normal networkx-Diagramme
h = nx.newman_watts_strogatz_graph(10,3,0.4)

#Konvertiere dies in eine Agraph-Klasse (PyGraphviz)
g = nx.to_agraph(h)

#file.Ausgabe mit dem Namen pdf, verwenden Sie circo für das Layout
g.draw('file.pdf',prog='circo')

(Ergänzung) Die Konvertierungsmethode wurde von Networkx 1.11 auf ein anderes Modul geändert. http://networkx.readthedocs.io/en/networkx-1.11/reference/drawing.html

g = nx.nx_agraph.to_agraph(h)

Lauf

Wenn diese 5 Zeilen ausgeführt werden, wird die Datei.pdf erstellt.

% python pgvSample.py % ls file.pdf pgvSample.py % open file.pdf

Wenn ich es öffne, sieht es so aus.

Screen Shot 2014-10-05 at 12.31.37 AM.png

Layout

Für das Layout des Diagramms gibt es verschiedene Optionen, wenn Sie sich die Dokumentation ansehen.

prog=[’neato’|’dot’|’twopi’|’circo’|’fdp’|’nop’]

Was jeder von ihnen ist, ist auf dieser Website zusammengefasst (http://melborne.github.io/2013/04/02/graphviz-layouts/).

Erstellen Sie eine Punktdatei

Fügen Sie einfach diese eine Zeile zum obigen Programm hinzu und Sie können sie als Punktdatei speichern.

pgvSample.py


g.write("file.dot")

So was.

% cat file.dot strict graph "newman_watts_strogatz_graph(10,3,0.4)" { 0 -- 1; 0 -- 6; 0 -- 9; 1 -- 2; 1 -- 5; 2 -- 3; 2 -- 5; 2 -- 8; 3 -- 4; 3 -- 9; 4 -- 5; 4 -- 8; 5 -- 6; 6 -- 7; 7 -- 8; 8 -- 9; }

Die AGraph-Klasse kann auch eine .dot-Datei lesen und ein Diagramm erstellen. Daher kann es praktisch sein, wenn Sie dasselbe Diagramm bei einer anderen Gelegenheit verwenden möchten. (Referenz: ** Tutorial ** http://networkx.lanl.gov/pygraphviz/tutorial.html)

andere Referenzen

Es scheint, dass verschiedene Kooperationen mit networkX durchgeführt werden können.

** Graphviz AGraph (Punkt) ** Element http://networkx.lanl.gov/reference/drawing.html

Recommended Posts

NetzwerkX-Diagramm mit graphviz ausgeben (PyGraphviz)
Zeichnen Sie mit networkx ein Diagramm
Anrufdiagramm mit PyCallGraph ausgeben
PDF mit Django ausgeben
NetworkX-Memo (gerichtete Grafik)
Markdown-Ausgabe mit Django
PDF mit WeasyPrint ausgeben
Banddiagramm mit Matplotlib
Einfach mit nur Python! Geben Sie Graphviz-Zahlen im draw.io-Format aus!
Zeichnen Sie Excel-Daten mit matplotlib (1)
Verwenden Sie Richtungsdiagramme mit networkx
Verwenden von Graphviz mit Jupyter Notebook
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Testen Sie die Standardausgabe mit Pytest
Plotly Erstellen Sie ein Diagramm mit einer Schaltfläche
Diagrammzeichnungsmethode mit matplotlib
Zeichnen Sie Excel-Daten mit matplotlib (2)
Diagrammzeichnung mit IPython Notebook
Visualisieren Sie Diagramme mit japanisch beschrifteten Kanten in NetworkX und PyGraphviz / Gephi