[PYTHON] Liste des générateurs de graphiques NetworkX

Une liste de graphiques pouvant être créés avec NetworkX.

Information précédente

La version de NetworkX est la 2.4. Il s'agit d'une traduction japonaise de Document officiel. Tous ne sont pas couverts. Veuillez nous faire savoir si la traduction est incorrecte.

Veuillez importer networkx et matplotlib.pyplot à l'avance pour exécuter le code ci-dessous.

import networkx as nx
import matplotlib.pyplot as plt

Classique (graphe classique)

arbre équilibré

balanced_tree(r, h, create_using=None)

Renvoie une branche r parfaitement équilibrée avec une hauteur de h.

Paramètres Moule La description
r int Le nombre de branches de l'arbre. Chaque nœud a r nœuds enfants.
h int Hauteur de l'arbre
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple

#balanced_tree
G=nx.balanced_tree(3,2)
plt.cla()
nx.draw_networkx(G)
plt.show()

balanced_tree.png

Graphique Barbell

barbell_graph(m1, m2, create_using=None)

Renvoie un graphique à barres (un graphique dans lequel deux graphiques complets constitués de nœuds «m1» sont connectés par un seul chemin composé de nœuds «m2»).

Paramètres Moule La description
m1 int Graphique complet gauche et droit(bell)Nombre de. m1>1
m2 int Le nombre de nœuds sur l'itinéraire reliant les graphiques complets gauche et droit. m2>=0
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Comment numéroter les nœuds Graphique complet à gauche: 0,1, ..., m1-1 Parcours: m1, m1 + 1, ..., m1 + m2-1 Graphique complet à droite: m1 + m2, m1 + m2 + 1, ..., 2 * m1 + m2-1

Exemple 1

#barbell_graph
G=nx.barbell_graph(5,2)
plt.cla()
nx.draw_networkx(G)
plt.show()

barbell_graph1.png

Exemple 2 (lorsque m2 = 0)

G=nx.barbell_graph(5,0)
plt.cla()
nx.draw_networkx(G)
plt.show()

barbell_graph2.png

binomial_tree

binomial_tree(n)

Renvoie un arbre binaire de degré n. Le nombre de nœuds est $ 2 ^ n $ et le nombre d'arêtes est $ 2 ^ n-1 $.

Paramètres Moule La description
n int Ordre des arbres

Exemple

G=nx.binomial_tree(3)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

complete_graph

complete_graph(n, create_using=None)

Renvoie un graphique dans lequel un nœud est lié à tous les autres nœuds.

Paramètres Moule La description
n int ou conteneur itérable de nœuds Lorsque n est un type entier, le nœud est range(n)Il est créé à partir de. Lorsque n est un conteneur itérable pour les nœuds, les graphiques sont créés avec ces nœuds
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple 1 (lorsque n est un type entier)

G=nx.complete_graph(6)
plt.cla()
nx.draw_networkx(G)
plt.show()

complete_graph1.png

Exemple 2 (lorsque n est un conteneur de nœuds)

G=nx.complete_graph(range(12,18))
plt.cla()
nx.draw_networkx(G)
plt.show()

complete_graph2.png

complete_multipartite_graph

complete_multipartite_graph(*subset_sizes)

Paramètres Moule La description
subset_sizes taple d'entiers ou tuple de nœuds itérables Lorsque n est de type entier, chaque sous-ensemble du graphe en plusieurs parties a n sommets. Lorsque n est itérable, des graphiques avec ces nœuds sont créés
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple Créez un graphique en plusieurs parties complet composé de trois sous-ensembles, chacun avec quelques nœuds.

G=nx.complete_multipartite_graph(2,3,3)
plt.cla()
nx.draw_networkx(G)
plt.show()

complete_multi_graph.png

circulaire_ladder_graph

circular_ladder_graph(n, create_using=None) Renvoie un graphique en échelle circulaire de longueur n.

Paramètres Moule La description
n int Longueur d'un tour
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple

G=nx.circular_ladder_graph(10)
plt.cla()
nx.draw_networkx(G)
plt.show()

circular_ladder_graph.png

circulant_graph

circulant_graph(n, offsets, create_using=None)

Renvoie un graphe circulaire composé de «n» nœuds. À quel autre nœud un nœud se connecte est spécifié par ʻoffsets`.

Paramètres Moule La description
n int Nombre de nœuds
offsets lists of integers Liste des décalages de nœuds
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple

G=nx.circulant_graph(10,[1,2])
plt.cla()
nx.draw_networkx(G)
plt.show()

Puisque ʻoffsets = [1,2] `, le sommet i est connecté au sommet i + 1, i + 2, respectivement. Vertex 0 est connecté à Vertex 1,2, Vertex 1 est connecté à Vertex 2,3, ..., Vertex 9 est connecté à Vertex 0,1.

circulant_graph.png

cycle_graph

cycle_graph(n, create_using=None)

Paramètres Moule La description
n conteneur int ou iterble de nœuds Lorsque n est un type entier, le nœud est range(n)Il est créé à partir de. Lorsque n est un conteneur itérable pour les nœuds, les graphiques sont créés avec ces nœuds
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple

G=nx.cycle_graph(10)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

dorogovtsev_goltsev_mendes_graph (graphique Dorogovstev-Goltsev-Mendes)

dorogovtsev_goltsev_mendes_graph(n, create_using=None)

Renvoie le graphique créé par l'algorithme Dorogovstev-Goltsev-Mendes.

Papier original https://arxiv.org/abs/cond-mat/0112143

Paramètres Moule La description
n int Nombre de générations
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer
G=nx.dorogovtsev_goltsev_mendes_graph(3)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

empty_graph (graphe vide avec des nœuds)

empty_graph(n=0, create_using=None, default=<class 'networkx.classes.graph.Graph'>)

Renvoie un graphique de «n» nœuds sans arêtes.

Paramètres Moule La description
n int Nombre de nœuds
create_using Graph Instance, Constructor or None Le type de graphique que vous souhaitez créer. Quand Aucun est spécifiédefaultUtilisez le constructeur.
default Graph constructor (optional, default = nx.Graph) create_using=NoneConstructeur utilisé quand.

Exemple

G=nx.empty_graph(10)
plt.cla()
nx.draw_networkx(G,pos)
plt.show()

image.png

Comment utiliser create_using

La variable create_using doit être un constructeur de Graph ou un objet de type «graph».

Il existe trois utilisations principales de create_using.

  1. Spécifiez la nature du graphique vide.
  2. Faire d'un graphique existant un graphique vide
  3. Lors de la création de votre propre fonction de création de graphe, permettez-vous de passer votre constructeur de graphe préféré à create_using.
Exemple de 1

Créez un graphe orienté vide (DiGraph).

n = 10
G = nx.empty_graph(n, create_using=nx.DiGraph)
2 exemples

Créez un graphe vide G2 avec des arêtes supprimées du graphe complet G1.

n=5
G1=nx.complete_graph(n)
G1.number_of_edges() #10
G2=nx.empty_graph(n,create_using=G1)
G2.number_of_edges() #0
3 exemples

Pour votre propre fonction de création de graphe mygraph, définissez pour utiliser le constructeur par défaut nx.MultiGraph si create_using n'est pas spécifié, et pour utiliser le constructeur spécifié dans le cas contraire.

def mygraph(n, create_using=None):
    G = nx.empty_graph(n, create_using, default=nx.MultiGraph)
    G.add_edges_from([(0, 1), (0, 1)])
    return G
G = mygraph(3)
G.is_multigraph() #True

G = mygraph(3, nx.Graph)
G.is_multigraph() #False

full_rary_tree (toutes les branches r)

full_rary_tree(r, n, create_using=None)

Crée toutes les branches «r» constituées de «n» nœuds. Chaque nœud est une feuille ou a des nœuds enfants «r».

Paramètres Moule La description
r int Nombre de branches de l'arbre
n int Nombre de nœuds
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple

G=nx.full_rary_tree(3,16)
pos=nx.spring_layout(G,iterations=1000)
plt.cla()
nx.draw_networkx(G,pos)
plt.show()

image.png

ladder_graph

ladder_graph(n, create_using=None)

Renvoie un graphique en échelle.

Paramètres Moule La description
n int Longueur de l'échelle
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple

G=nx.ladder_graph(7)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

lollipop_graph

lollipop_graph(m, n, create_using=None)

Renvoie un graphique en forme de sucette (un graphique complet de «m» nœuds et un chemin de «n» nœuds qui y sont connectés).

Paramètres Moule La description
m int or iterable container of nodes (default = 0) Nombre de nœuds qui composent un graphique complet
n int or iterable container of nodes (default = 0)) Nombre de nœuds qui composent l'itinéraire
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple

G=nx.lollipop_graph(6,3)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

null_graph

null_graph(create_using=None)

Renvoie un graphique sans nœuds ni arêtes. Voir ʻempty_graph pour savoir comment utiliser create_using`.

Paramètres Moule La description
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Exemple

G=nx.null_graph()
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

path_graph

path_graph(n, create_using=None)

Renvoie un graphique de «n» nœuds qui ne passe pas deux fois par le même nœud.

Paramètres Moule La description
n int or iterable Nombre de nœuds
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer
G=nx.path_graph(5)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

star_graph

star_graph(n, create_using=None)

Renvoie un graphique avec «n» nœuds périphériques externes concaténés pour un nœud central.

Paramètres Moule La description
n int or iterable Nombre de nœuds périphériques externes
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer
G=nx.star_graph(5)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

trivial_graph

trivial_graph(create_using=None)

Renvoie le graphique le plus simple constitué d'un seul nœud.

Paramètres Moule La description
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer
G=nx.trivial_graph()
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

turan_graph

turan_graph(n, r)

Renvoie un graphe en plusieurs parties complet avec n nœuds divisés en r parties non connectées. Le nombre d'arêtes est le nombre arrondi à la fraction de «n ** 2 * (r-1) / (2 * r)».

Paramètres Moule La description
n int Nombre de nœuds.
r int Nombre de pièces non connectées. 1<=r<=Doit être n.
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer
G=nx.turan_graph(6,3)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

Le nœud est divisé en trois parties (0,1), (2,3), (4,5). Les nœuds appartenant à la même pièce ne sont pas concaténés.

Le graphique donné dans l'exemple dit: "Trois couples sont allés à un cocktail. Sur place, tout le monde a serré la main de tous les participants sauf eux-mêmes et leur conjoint. La relation à ce moment-là a été un signe de la tête aux participants. , Quel genre de graphique obtiendriez-vous si vous exprimiez votre poignée de main comme un bord? »Est la réponse à la question. Par conséquent, il s'appelle "Cocktail Party Graph".

wheel_graph

wheel_graph(n, create_using=None)

Renvoie un graphique avec n-1 nœuds externes concaténés pour un nœud hub.

Paramètres Moule La description
n int or iterable Nombre de nœuds.
create_using NetworkX graph constructor, optional (default=nx.Graph) Le type de graphique que vous souhaitez créer

Example

G=nx.wheel_graph(10)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

Graphique d'expansion

C'est un graphe clairsemé avec un composant fortement connecté.

margulis_gabber_galil_graph (graphe de Margulis-Gabber-Galil)

margulis_gabber_galil_graph(n, create_using=None)

Renvoie un graphe Margulis-Gabber-Galil. Il s'agit d'un graphe multiplex non orienté avec un ordre de nœuds de 8. La deuxième plus grande valeur propre dans la matrice adjacente de ce graphique est $ 5 \ sqrt {2} $. Une erreur est renvoyée si le graphique n'est pas orienté ou plusieurs graphiques.

Paramètres Moule La description
n int or iterable Définit le nombre de nœuds. Le nombre de nœudsn^2est.
create_using NetworkX graph constructor, optional (default MultiGraph) Le type de graphique que vous souhaitez créer
G=nx.margulis_gabber_galil_graph(3)
pos=nx.circular_layout(G)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

chordal_cycle_graph (graphe en circuit fermé avec des chaînes)

chordal_cycle_graph(p, create_using=None)

Renvoie un graphe fermé avec des accords (arêtes qui ne font pas partie du fermé mais se connectent entre deux nœuds sur le graphe fermé). Le nœud x a une chaîne pour le nœud y qui satisfait x * y = 1 (mod p). Une erreur est renvoyée si le graphique n'est pas orienté ou plusieurs graphiques.

Paramètres Moule La description
p prime number Définit le nombre de nœuds. Doit être un nombre premier.
create_using NetworkX graph constructor, optional (default MultiGraph) Le type de graphique que vous souhaitez créer
G=nx.chordal_cycle_graph(7)
pos=nx.circular_layout(G)
plt.cla()
nx.draw_networkx(G,pos)
plt.show()

image.png

Social Networks

C'est un graphe de réseau social célèbre.

karate_club_graph (club de karaté de Zachary)

karate_club_graph()

Un réseau de membres du Karate Club interrogé par le psychologue social américain Zachary. Vous pouvez voir qu'il est divisé en deux factions centrées sur le nœud 0 et les nœuds 32 et 33.

Zachary, Wayne W. “An Information Flow Model for Conflict and Fission in Small Groups.” Journal of Anthropological Research, 33, 452–473, (1977).

G=nx.karate_club_graph()
plt.figure(figsize=(8,6))
nx.draw_networkx(G)
plt.show()

image.png

davis_southern_women_graph (Davis et al. Southern Women's Graph)

davis_southern_women_graph()

Un réseau de 18 femmes dans le sud des États-Unis interrogé par Davis et al.Dans les années 1930. Il s'agit d'un graphique en deux parties composé de nœuds représentant 18 femmes et 14 événements participants.

A. Davis, Gardner, B. B., Gardner, M. R., 1941. Deep South. University of Chicago Press, Chicago, IL.

image.png

florentine_families_graph (Famille à Florence)

florentine_families_graph()

Relation de mariage de familles influentes telles que la famille Médicis à Florence Renaissance.

Ronald L. Breiger and Philippa E. Pattison Cumulated social roles: The duality of persons and their algebras,1 Social Networks, Volume 8, Issue 3, September 1986, Pages 215-256

image.png

les_miserables_graph()

les_miserables_graph()

C'est un graphique des personnages du roman "Les Misérables".

D. E. Knuth, 1993. The Stanford GraphBase: a platform for combinatorial computing, pp. 74-87. New York: AcM Press.

image.png

référence

Recommended Posts

Liste des générateurs de graphiques NetworkX
Mémo NetworkX (graphique dirigé)
Dessinez un graphique avec networkx
Générateur
Graphique de sortie networkX avec graphviz (PyGraphviz)
Générateur
Notation inclusive de Python (à propos de l'expression de liste et de générateur) [supplémentaire]
Derrière l'algorithme de dessin graphique et Networkx