使用 NetworkX 探索随机图#
在这个例子中,构建了简单的用户界面,用于使用 NetworkX 探索随机图。
# Imports for JupyterLite
%pip install -q ipywidgets matplotlib networkx
Note: you may need to restart the kernel to use updated packages.
%matplotlib inline
import matplotlib.pyplot as plt
import networkx as nx
# wrap a few graph generation functions so they have the same signature
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()
interact(plot_random_graph, n=(2,30), m=(1,10), k=(1,10), p=(0.0, 0.99, 0.001),
generator=[
('lobster', random_lobster),
('power law', powerlaw_cluster),
('Newman-Watts-Strogatz', newman_watts_strogatz),
(u'Erdős-Rényi', erdos_renyi),
]);