[PYTHON] Verwenden Sie Richtungsdiagramme mit networkx

NetworkX ist ein Python-Paket für die Arbeit mit Grafiken.

Ich habe kürzlich gelernt, wie man andere Knoten, die sich auf einen bestimmten Knoten beziehen, im NetworkX-Richtungsgraphen "DiGraph" abruft, also schreibe ich ihn für später.

Das angenommene gültige Diagramm sieht folgendermaßen aus. chartfornetwrkx (3).png

B konzentriert sich auf Knoten C, B ist das Elternteil von C und D ist das Kind von C. Auch A und B sind Vorfahren von C und D und E sind Nachkommen von C.

Importieren wir zunächst NetworkX und erstellen ein leeres Richtungsdiagramm.

>>> import networkx as nx
>>> g = nx.DiGraph()

Als nächstes erstellen Sie das Diagramm in der obigen Abbildung mit "add_path". Wenn Sie einen Pfad erstellen, können Sie anscheinend einen Knoten erstellen, ohne ihn explizit hinzuzufügen.

>>> g.add_path(["A","B","C","D","E"])
>>> g.nodes()
['E', 'C', 'D', 'A', 'B']

Um nun das Elternteil und das Kind von C zu erhalten, verwenden Sie die Methoden "Vorgänger" und "Nachfolger" von Graph g. Das Ergebnis wird als "Liste" zurückgegeben, da es jeweils mehrere Eltern und Kinder geben kann.

>>> g.predecessors("C")
['B']
>>> g.successors("C")
['D']

Verwenden Sie andererseits die Funktionen "Nachkommen" und "Vorfahren", um die Vorfahren und Nachkommen von C zu erhalten. Das Ergebnis wird mit set zurückgegeben.

>>> nx.descendants(g, "C")
{'D', 'E'}
>>> nx.ancestors(g, "C")
{'A', 'B'}

Beachten Sie, dass die Methode für Eltern und Kinder das Ergebnis als "Liste" zurückgibt, für Vorfahren und Nachkommen die Funktion verwendet wird und das Ergebnis als "Menge" zurückgegeben wird.

Recommended Posts

Verwenden Sie Richtungsdiagramme mit networkx
Verwenden Sie mecab-ipadic-neologd mit igo-python
Verwenden Sie RTX 3090 mit PyTorch
Verwenden Sie ansible mit cygwin
Verwenden Sie pipdeptree mit virtualenv
[Python] Verwenden Sie JSON mit Python
Verwenden Sie Mock mit Pytest
Verwenden Sie den Indikator mit pd.merge
Verwenden Sie Gentelella mit Django
Verwenden Sie Mecab mit Python 3
Verwenden Sie Tensorboard mit Chainer
Verwenden Sie DynamoDB mit Python
Verwenden Sie pip mit MSYS2
Beschriftetes Diagramm in NetworkX
Verwenden Sie Python 3.8 mit Anaconda
Verwenden Sie Copyright mit Spacemacs
Verwenden Sie Python mit Docker
Verwenden Sie TypeScript mit Django-Kompressor
Verwenden Sie WENIGER mit Django
Verwenden Sie MySQL mit Django
Überlagern Sie Diagramme mit Sympy
Verwenden Sie Enum mit SQLAlchemy
Verwenden Sie Tensorboard mit NNabla
Verwenden Sie GPS mit Edison
Verwenden Sie nim mit Jupyter
Site-Hinweise zur Verwendung von NetworkX mit Python
Verwenden Sie die Trello-API mit Python
Verwenden Sie benutzerdefinierte Tags mit PyYAML
Verwenden Sie TensorFlow mit Intellij IDEA
Zeichnen Sie mit NetworkX ein Diagramm
Verwenden Sie die Twitter-API mit Python
Verwenden Sie pip mit Jupyter Notebook
Verwenden Sie DATE_FORMAT mit dem SQLAlchemy-Filter
Verwenden Sie TUN / TAP mit Python
Verwenden Sie sqlite3 mit NAO (Pepper)
Verwenden Sie die load_extensions von sqlite mit Pyramid
Verwenden Sie Windows 10-Schriftarten mit WSL
Verwendung von Chainer mit Jetson TK1
Verwenden Sie SSL mit Sellerie + Redis
Verwenden Sie Cython mit Jupyter Notebook
Verwenden Sie Maxout + CNN mit Pylearn2
Verwenden Sie WDC-433SU2M2 mit Manjaro Linux
Verwenden Sie OpenBLAS mit numpy, scipy
Verwenden Sie die Unterschall-API mit Python3
Verwenden von Sonicwall NetExtener mit Systemd
Zeichnen Sie mit networkx ein Diagramm
Animieren Sie mehrere Diagramme mit matplotlib
Verwenden Sie prefetch_related bequem mit Django
Verwenden Sie einen AWS-Interpreter mit Pycharm
Verwenden von Bokeh mit IPython Notebook
Verwenden Sie Python-ähnliche Bereiche mit Rust
Verwenden Sie networkx, eine Bibliothek, die Diagramme in Python verarbeitet (Teil 2: Lernprogramm).
Visualisieren Sie Diagramme mit japanisch beschrifteten Kanten in NetworkX und PyGraphviz / Gephi
Verwenden Sie pyright mit CentOS7, emacs lsp-mode
Python: So verwenden Sie Async mit
Verwenden der SQL-Datenbank von Azure mit SQL Alchemy
Verwenden Sie eine Point Grey-Kamera mit Python (PyCapture2).
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Veröffentlichen Sie schöne Grafiken online mit plotly
Verwenden Sie PX-S1UD / PX-Q1UD mit Jetson Nano