#!/usr/bin/env python # coding: utf-8 # ## Explore Random Graphs Using NetworkX # In this example, we build a simple UI for exploring random graphs with [NetworkX](http://networkx.github.io/). # In[1]: from ipywidgets import interact # In[2]: get_ipython().run_line_magic('matplotlib', 'inline') import matplotlib.pyplot as plt # In[3]: import networkx as nx # In[4]: # 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() # In[5]: 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, });