Figure 5.3 ---------- .. image:: fig5p3.png :download:`Downloadable Source Code ` :: import EoN import networkx as nx import matplotlib.pyplot as plt import scipy def sim_and_plot(G, tau, gamma, rho, tmax, tcount, ax): t, S, I = EoN.fast_SIS(G, tau, gamma, rho=rho, tmax = tmax) report_times = scipy.linspace(0, tmax, tcount) I = EoN.subsample(report_times, t, I) ax.plot(report_times, I/N, color='grey', linewidth=5, alpha=0.3) t, S, I, = EoN.SIS_heterogeneous_meanfield_from_graph(G, tau, gamma, rho=rho, tmax=tmax, tcount=tcount) ax.plot(t, I/N, '--') t, S, I = EoN.SIS_compact_pairwise_from_graph(G, tau, gamma, rho=rho, tmax=tmax, tcount=tcount) ax.plot(t, I/N) t, S, I = EoN.SIS_homogeneous_pairwise_from_graph(G, tau, gamma, rho=rho, tmax=tmax, tcount=tcount) ax.plot(t, I/N, '-.') tcount = 1001 tmax = 10. gamma = 1. N=10000 rho = 0.05 fig = plt.figure(1) main = plt.axes() target_kave = 50. G = nx.fast_gnp_random_graph(N, target_kave/(N-1.)) kave = sum(G.degree(node) for node in G.nodes()) ksqave =sum(G.degree(node)**2 for node in G.nodes()) tau_c = gamma*kave/ksqave tau = 2*tau_c sim_and_plot(G, tau, gamma, rho, tmax, tcount, main) inset = plt.axes([0.45,0.175,0.45,0.45]) target_kave = 10. G = nx.fast_gnp_random_graph(N, target_kave/(N-1.)) kave = sum(G.degree(node) for node in G.nodes()) ksqave =sum(G.degree(node)**2 for node in G.nodes()) tau_c = gamma*kave/ksqave tau = 2*tau_c sim_and_plot(G, tau, gamma, rho, tmax, tcount, inset) main.set_xlabel('$t$') main.set_ylabel('Prevalence') plt.savefig('fig5p3.png')