NetworkX#
Beispiel#
Im folgenden Beispiel erstellen wir eine einfache Benutzeroberfläche zum Erkunden von Zufallsgraphen mit NetworkX.
[1]:
import networkx as nx
Zunächst erstellen wir einige Funktionen zur Erzeugung von Graphen, die alle die gleiche Signatur haben:
[2]:
import matplotlib.pyplot as plt
def random_lobster(n, m, k, p):
return nx.random_lobster(n, p, p / m)
def powerlaw_cluster(n, m, k, p):
return nx.powerlaw_cluster_graph(n, m, p)
def erdos_renyi(n, m, k, p):
return nx.erdos_renyi_graph(n, p)
def newman_watts_strogatz(n, m, k, p):
return nx.newman_watts_strogatz_graph(n, k, p)
def plot_random_graph(n, m, k, p, generator):
g = generator(n, m, k, p)
nx.draw(g)
plt.show()
Nun erstellen wir Schieberegler und ein Aufklappmenü zur Interaktion mit Plot:
[3]:
from ipywidgets import interact
%matplotlib inline
interact(plot_random_graph, n=(2,30), m=(1,10), k=(1,10), p=(0.0, 1.0, 0.001),
generator={
'lobster': random_lobster,
'power law': powerlaw_cluster,
'Newman-Watts-Strogatz': newman_watts_strogatz,
u'Erdős-Rényi': erdos_renyi,
});
Graphviz#
Graphviz kann auf zweierlei Arten verwendet werden:
zusammen mit Matplotlib und pygraphviz, siehe Drawing NetworkX with Matplotlib
zusammen mit Graphviz AGraph, siehe Drawing NetworkX with Graphviz AGraph