[PYTHON] NetworkX-Grafikgeneratorliste

Eine Liste von Diagrammen, die mit NetworkX erstellt werden können.

Vorherige Informationen

Die Version von NetworkX ist 2.4. Dies ist eine japanische Übersetzung von Official Document. Nicht alle sind abgedeckt. Bitte lassen Sie uns wissen, wenn die Übersetzung falsch ist.

Bitte importieren Sie networkx und matplotlib.pyplot im Voraus, um den folgenden Code auszuführen.

import networkx as nx
import matplotlib.pyplot as plt

Klassisch (klassischer Graph)

ausgeglichener Baum

balanced_tree(r, h, create_using=None)

Gibt einen perfekt ausbalancierten "r" -Zweig mit einer Höhe von "h" zurück.

Parameter Schimmel Erläuterung
r int Die Anzahl der Äste des Baumes. Jeder Knoten hat r untergeordnete Knoten.
h int Baumhöhe
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel

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

balanced_tree.png

Langhanteldiagramm

barbell_graph(m1, m2, create_using=None)

Gibt ein Langhanteldiagramm zurück (ein Diagramm, in dem zwei vollständige Diagramme, die aus "m1" -Knoten bestehen, durch einen einzelnen Pfad verbunden sind, der aus "m2" -Knoten besteht).

Parameter Schimmel Erläuterung
m1 int Links und rechts vollständige Grafik(bell)Anzahl der. m1>1
m2 int Die Anzahl der Knoten auf der Route, die die linken und rechten vollständigen Diagramme verbinden. m2>=0
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Wie man Knoten nummeriert Komplette Grafik links: 0,1, ..., m1-1 Route: m1, m1 + 1, ..., m1 + m2-1 Vollständige Grafik rechts: m1 + m2, m1 + m2 + 1, ..., 2 * m1 + m2-1

Beispiel 1

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

barbell_graph1.png

Beispiel 2 (wenn m2 = 0)

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

barbell_graph2.png

binomial_tree

binomial_tree(n)

Gibt einen binären Baum vom Grad n zurück. Die Anzahl der Knoten beträgt $ 2 ^ n $ und die Anzahl der Kanten beträgt $ 2 ^ n-1 $.

Parameter Schimmel Erläuterung
n int Baumreihenfolge

Beispiel

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

image.png

complete_graph

complete_graph(n, create_using=None)

Gibt ein Diagramm zurück, in dem ein Knoten an alle anderen Knoten gebunden ist.

Parameter Schimmel Erläuterung
n int oder iterierbarer Container von Knoten Wenn n ein ganzzahliger Typ ist, ist der Knoten Bereich(n)Es wird erstellt aus. Wenn n ein iterierbarer Container für Knoten ist, werden mit diesen Knoten Diagramme erstellt
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel 1 (wenn n ein ganzzahliger Typ ist)

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

complete_graph1.png

Beispiel 2 (wenn n ein Knotencontainer ist)

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)

Parameter Schimmel Erläuterung
subset_sizes Taple von ganzen Zahlen oder Tupel von Knoteniterablen Wenn n vom Typ Integer ist, hat jede Teilmenge des mehrteiligen Graphen n Eckpunkte. Wenn n iterierbar ist, werden Diagramme mit diesen Knoten erstellt
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel Erstellen Sie ein vollständiges mehrteiliges Diagramm, das aus drei Teilmengen mit jeweils wenigen Knoten besteht.

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

complete_multi_graph.png

Circular_Lader_Graph

circular_ladder_graph(n, create_using=None) Gibt einen kreisförmigen Kontaktplan der Länge n zurück.

Parameter Schimmel Erläuterung
n int Länge einer Runde
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel

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)

Gibt einen kreisförmigen Graphen zurück, der aus n Knoten besteht. Mit welchem Knoten ein Knoten verbunden ist, wird durch "Offsets" angegeben.

Parameter Schimmel Erläuterung
n int Anzahl der Knoten
offsets lists of integers Liste der Knotenversätze
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel

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

Da "Offsets = [1,2]" sind, sind die Eckpunkte i mit den Eckpunkten i + 1 bzw. i + 2 verbunden. Der Scheitelpunkt 0 ist mit den Scheitelpunkten 1 und 2 verbunden, der Scheitelpunkt 1 ist mit den Scheitelpunkten 2 und 3 verbunden, ... und der Scheitelpunkt 9 ist mit den Scheitelpunkten 0 und 1 verbunden.

circulant_graph.png

cycle_graph

cycle_graph(n, create_using=None)

Parameter Schimmel Erläuterung
n int oder iterble Container von Knoten Wenn n ein ganzzahliger Typ ist, ist der Knoten Bereich(n)Es wird erstellt aus. Wenn n ein iterierbarer Container für Knoten ist, werden mit diesen Knoten Diagramme erstellt
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel

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

image.png

dorogovtsev_goltsev_mendes_graph (Dorogovstev-Goltsev-Mendes-Diagramm)

dorogovtsev_goltsev_mendes_graph(n, create_using=None)

Gibt das vom Dorogovstev-Goltsev-Mendes-Algorithmus erstellte Diagramm zurück.

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

Parameter Schimmel Erläuterung
n int Anzahl der Generationen
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten
G=nx.dorogovtsev_goltsev_mendes_graph(3)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

empty_graph (leeres Diagramm mit Knoten)

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

Gibt einen Graphen von n Knoten ohne Kanten zurück.

Parameter Schimmel Erläuterung
n int Anzahl der Knoten
create_using Graph Instance, Constructor or None Die Art des Diagramms, das Sie erstellen möchten. Wenn Keine angegeben istdefaultVerwenden Sie den Konstruktor.
default Graph constructor (optional, default = nx.Graph) create_using=NoneKonstruktor verwendet, wenn.

Beispiel

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

image.png

Verwendung von create_using

Die Variable create_using muss ein Graphkonstruktor oder ein "graph" -ähnliches Objekt sein.

Es gibt drei Hauptverwendungen für create_using.

  1. Geben Sie die Art des leeren Diagramms an.
  2. Machen Sie aus einem vorhandenen Diagramm ein leeres Diagramm
  3. Wenn Sie Ihre eigene Diagrammerstellungsfunktion erstellen, können Sie Ihren bevorzugten Diagrammkonstruktor an create_using übergeben.
Beispiel von 1

Erstellen Sie ein leeres gerichtetes Diagramm (DiGraph).

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

Erstellen Sie ein leeres Diagramm G2 mit Kanten, die aus dem vollständigen Diagramm G1 entfernt wurden.

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 Beispiele

Stellen Sie für Ihre eigene Diagrammerstellungsfunktion "mygraph" den Standardkonstruktor "nx.MultiGraph" ein, wenn "create_using" nicht angegeben ist, und verwenden Sie den angegebenen Konstruktor anderweitig.

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 (alle r Zweige)

full_rary_tree(r, n, create_using=None)

Erstellt alle "r" -Zweige, die aus "n" Knoten bestehen. Jeder Knoten ist ein Blatt oder hat "r" untergeordnete Knoten.

Parameter Schimmel Erläuterung
r int Anzahl der Äste des Baumes
n int Anzahl der Knoten
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel

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)

Gibt ein Kontaktplandiagramm zurück.

Parameter Schimmel Erläuterung
n int Leiterlänge
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel

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

image.png

lollipop_graph

lollipop_graph(m, n, create_using=None)

Gibt einen Lollipop-Graphen zurück (einen vollständigen Graphen von m Knoten und einen Pfad von n Knoten, der dorthin führt).

Parameter Schimmel Erläuterung
m int or iterable container of nodes (default = 0) Anzahl der Knoten, aus denen ein vollständiges Diagramm besteht
n int or iterable container of nodes (default = 0)) Anzahl der Knoten, aus denen die Route besteht
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel

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

image.png

null_graph

null_graph(create_using=None)

Gibt ein Diagramm ohne Knoten oder Kanten zurück. Siehe empty_graph für die Verwendung von create_using.

Parameter Schimmel Erläuterung
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Beispiel

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

image.png

path_graph

path_graph(n, create_using=None)

Gibt ein Diagramm von n Knoten zurück, das denselben Knoten nicht zweimal durchläuft.

Parameter Schimmel Erläuterung
n int or iterable Anzahl der Knoten
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten
G=nx.path_graph(5)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

star_graph

star_graph(n, create_using=None)

Gibt ein Diagramm mit n äußeren peripheren Knoten zurück, die für einen zentralen Knoten verkettet sind.

Parameter Schimmel Erläuterung
n int or iterable Anzahl der äußeren peripheren Knoten
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten
G=nx.star_graph(5)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

trivial_graph

trivial_graph(create_using=None)

Gibt das einfachste Diagramm zurück, das nur aus einem Knoten besteht.

Parameter Schimmel Erläuterung
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten
G=nx.trivial_graph()
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

turan_graph

turan_graph(n, r)

Gibt einen vollständigen mehrteiligen Graphen mit n Knoten zurück, die in nicht verbundene Teile unterteilt sind. Die Anzahl der Kanten ist die auf den Bruchteil von "n ** 2 * (r-1) / (2 * r)" abgerundete Zahl.

Parameter Schimmel Erläuterung
n int Anzahl der Knoten.
r int Anzahl der nicht verbundenen Teile. 1<=r<=Muss n sein.
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten
G=nx.turan_graph(6,3)
plt.cla()
nx.draw_networkx(G)
plt.show()

image.png

Der Knoten ist in drei Teile (0,1), (2,3), (4,5) unterteilt. Knoten, die zum selben Teil gehören, werden nicht verkettet.

In der Grafik im Beispiel heißt es: "Drei Paare gingen zu einer Cocktailparty. Am Veranstaltungsort gaben alle Teilnehmern außer sich selbst und ihrem Ehepartner die Hand. Die damalige Beziehung wurde den Teilnehmern genickt. , Welche Art von Grafik würden Sie erhalten, wenn Sie Ihren Handschlag als Kante ausdrücken? ”Ist die Antwort auf die Frage. Daher heißt es "Cocktail Party Graph".

Wheel_Graph

wheel_graph(n, create_using=None)

Gibt ein Diagramm mit n-1 äußeren Knoten zurück, die für einen Hub-Knoten verkettet sind.

Parameter Schimmel Erläuterung
n int or iterable Anzahl der Knoten.
create_using NetworkX graph constructor, optional (default=nx.Graph) Die Art des Diagramms, das Sie erstellen möchten

Example

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

image.png

Expander-Diagramm

Es ist ein spärlicher Graph mit einer stark verbundenen Komponente.

margulis_gabber_galil_graph (Margulis-Gabber-Galil-Diagramm)

margulis_gabber_galil_graph(n, create_using=None)

Gibt ein Margulis-Gabber-Galil-Diagramm zurück. Es ist ein ungerichteter Multiplex-Graph mit einer Knotenreihenfolge von 8. Der zweitgrößte Eigenwert in der benachbarten Matrix dieses Graphen ist $ 5 \ sqrt {2} $. Ein Fehler wird zurückgegeben, wenn das Diagramm nicht gerichtet ist oder mehrere Diagramme.

Parameter Schimmel Erläuterung
n int or iterable Definiert die Anzahl der Knoten. Die Anzahl der Knotenn^2ist.
create_using NetworkX graph constructor, optional (default MultiGraph) Die Art des Diagramms, das Sie erstellen möchten
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 (Closed-Circuit-Graph mit Strings)

chordal_cycle_graph(p, create_using=None)

Gibt ein geschlossenes Diagramm mit Akkorden zurück (Kanten, die nicht Teil des geschlossenen Diagramms sind, aber zwischen zwei Knoten im geschlossenen Diagramm verbunden sind). Knoten x hat eine Zeichenfolge für Knoten y, die x * y = 1 (mod p) erfüllt. Ein Fehler wird zurückgegeben, wenn das Diagramm nicht gerichtet ist oder mehrere Diagramme.

Parameter Schimmel Erläuterung
p prime number Definiert die Anzahl der Knoten. Muss eine Primzahl sein.
create_using NetworkX graph constructor, optional (default MultiGraph) Die Art des Diagramms, das Sie erstellen möchten
G=nx.chordal_cycle_graph(7)
pos=nx.circular_layout(G)
plt.cla()
nx.draw_networkx(G,pos)
plt.show()

image.png

Social Networks

Es ist ein berühmter Graph für soziale Netzwerke.

karate_club_graph (Zacharys Karate Club)

karate_club_graph()

Ein Netzwerk von Mitgliedern des Karate Clubs, das vom amerikanischen Sozialpsychologen Zachary befragt wurde. Sie können sehen, dass es in zwei Fraktionen unterteilt ist, die auf Knoten 0 und Knoten 32 und 33 zentriert sind.

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()

Ein Netzwerk von 18 Frauen im Süden der USA, das von Davis et al. In den 1930er Jahren befragt wurde. Dies ist ein zweiteiliges Diagramm, das aus Knoten besteht, die 18 Frauen und 14 teilnehmende Ereignisse darstellen.

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

image.png

florentine_families_graph (Familie in Florenz)

florentine_families_graph()

Ehebeziehung einflussreicher Familien wie der Medici-Familie in der Renaissance Florenz.

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()

Es ist eine Grafik der Charaktere im Roman "Les Miserables".

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

image.png

Referenz

Recommended Posts

NetworkX-Grafikgeneratorliste
NetworkX-Memo (gerichtete Grafik)
Zeichnen Sie mit networkx ein Diagramm
Generator
NetzwerkX-Diagramm mit graphviz ausgeben (PyGraphviz)
Generator
Inklusive Notation von Python (über Liste und Generatorausdruck) [zusätzlich]
Hinter dem Graph Drawing Algorithmus und Networkx