Course of Sébastien Martineau
First, some python initializations.
%matplotlib inline
from matplotlib import rcParams
from matplotlib import pyplot as plt
from ipywidgets import interact, FloatSlider, RadioButtons
rcParams['figure.figsize'] = (8., 6.) # Enlarge figure
sliderd = dict(min=0., max=1., step=0.1, value=0.5, continuous_update=False)
from percolation import PercolationRect, PercolationHex, percolation_vs_p, PercolationRectDual
percorect = PercolationRect(20, 10)
interact(percorect.plot, p=FloatSlider(**sliderd));
percohex = PercolationHex(5, 5)
percohex.compute_clusters(0.2)
percohex.plot_clusters(add_cluster_id=True)
percohex15 = PercolationHex(30, 30)
interact(percohex15.plot, p=FloatSlider(**sliderd));
Based on 300 simulations on a $25 \times 25$ lattice.
percolation_vs_p(25, 25, nsim=300)
perco = PercolationRectDual(5)
interact(perco.plot_graph, p=FloatSlider(**sliderd),
graph_type=RadioButtons(options=['initial', 'dual', 'both']));
graphs: networkx