[PYTHON] Utiliser des graphiques directionnels avec networkx

NetworkX est un package Python permettant de travailler avec des graphiques.

J'ai récemment appris comment obtenir d'autres nœuds liés à un nœud particulier dans le graphe directionnel NetworkX DiGraph, je vais donc l'écrire pour plus tard.

Le graphe supposé valide ressemble à ceci. chartfornetwrkx (3).png

En se concentrant sur le nœud C, B est le parent de C et D est l'enfant de C. De plus, A et B sont des ancêtres de C, et D et E sont des descendants de C.

Tout d'abord, importons NetworkX et créons un graphe directionnel vide.

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

Ensuite, créez le graphique dans la figure ci-dessus avec ʻadd_path`. Lorsque vous créez un chemin, il semble que vous puissiez créer un nœud sans l'ajouter explicitement.

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

Maintenant, pour obtenir le parent et l'enfant de C, utilisez les méthodes «prédécesseurs» et «successeurs» du graphe g. Le résultat est renvoyé sous forme de «liste», car il peut y avoir plusieurs parents et enfants chacun.

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

D'autre part, pour obtenir les ancêtres et les descendants de C, utilisez les fonctions descendants et ʻansstors`. Le résultat est renvoyé avec «set».

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

Notez que pour les parents et les enfants, la méthode renvoie le résultat sous forme de «liste», pour les ancêtres et les descendants, la fonction est utilisée et le résultat est renvoyé sous la forme «set».

Recommended Posts

Utiliser des graphiques directionnels avec networkx
Utilisez mecab-ipadic-neologd avec igo-python
Utilisez RTX 3090 avec PyTorch
Utiliser ansible avec cygwin
Utiliser pipdeptree avec virtualenv
[Python] Utiliser JSON avec Python
Utilisez Mock avec pytest
Utiliser l'indicateur avec pd.merge
Utiliser Gentelella avec Django
Utiliser mecab avec Python 3
Utiliser tensorboard avec Chainer
Utiliser DynamoDB avec Python
Utiliser pip avec MSYS2
Graphique étiqueté dans NetworkX
Utilisez Python 3.8 avec Anaconda
Utiliser les droits d'auteur avec Spacemacs
Utiliser python avec docker
Utiliser TypeScript avec django-compresseur
Utilisez LESS avec Django
Utiliser MySQL avec Django
Superposer des graphiques avec sympy
Utiliser Enum avec SQLAlchemy
Utiliser tensorboard avec NNabla
Utiliser le GPS avec Edison
Utilisez nim avec Jupyter
Notes de site pour vous aider à utiliser NetworkX avec Python
Utiliser l'API Trello avec python
Utiliser des balises personnalisées avec PyYAML
Utiliser TensorFlow avec Intellij IDEA
Dessinez un graphique avec NetworkX
Utiliser l'API Twitter avec Python
Utiliser pip avec Jupyter Notebook
Utiliser DATE_FORMAT avec le filtre SQLAlchemy
Utiliser TUN / TAP avec Python
Utilisez sqlite3 avec NAO (Pepper)
Utilisez les load_extensions de sqlite avec Pyramid
Utiliser les polices Windows 10 avec WSL
Utilisation du chainer avec Jetson TK1
Utiliser SSL avec Celery + Redis
Utiliser Cython avec Jupyter Notebook
Utilisez Maxout + CNN avec Pylearn2
Utilisez WDC-433SU2M2 avec Manjaro Linux
Utilisez OpenBLAS avec numpy, scipy
Utiliser l'API subsonique avec python3
Utilisation de Sonicwall NetExtener avec Systemd
Dessinez un graphique avec networkx
Animer plusieurs graphiques avec matplotlib
Utilisez prefetch_related commodément avec Django
Utiliser l'interpréteur AWS avec Pycharm
Utilisation de Bokeh avec IPython Notebook
Utiliser une plage de type Python avec Rust
Utilisez networkx, une bibliothèque qui gère les graphiques en python (Partie 2: Tutoriel)
Visualisez des graphiques avec des arêtes étiquetées en japonais sur NetworkX et PyGraphviz / Gephi
Utiliser pyright avec CentOS7, emacs lsp-mode
Python: comment utiliser async avec
Utilisation de la base de données SQL d'Azure avec SQL Alchemy
Utiliser la caméra Point Grey avec Python (PyCapture2)
Utilisez vl53l0x avec RaspberryPi (python)
Publiez de jolis graphiques en ligne avec plotly
Utilisez PX-S1UD / PX-Q1UD avec Jetson nano