Master-DataScience-Notes/1year/2trimester/Coding for Data Science - Python language/Python/Examples/HackCovid19.ipynb

98 lines
31 KiB
Plaintext
Raw Normal View History

2020-03-13 12:21:47 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"from scipy.integrate import odeint\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Total population, N.\n",
"N = 160000\n",
"# Initial number of infected and recovered individuals, I0 and R0.\n",
"I0, R0 = 1, 0\n",
"# Everyone else, S0, is susceptible to infection initially.\n",
"S0 = N - I0 - R0\n",
"# Contact rate, beta, and mean recovery rate, gamma, (in 1/days).\n",
"beta, gamma = 0.5, 1./10\n",
"# A grid of time points (in days)\n",
"t = np.linspace(0, 160, 160)\n",
"\n",
"# The SIR model differential equations.\n",
"def deriv(y, t, N, beta, gamma):\n",
" S, I, R = y\n",
" dSdt = -beta * S * I / N\n",
" dIdt = beta * S * I / N - gamma * I\n",
" dRdt = gamma * I\n",
" return dSdt, dIdt, dRdt\n",
"\n",
"# Initial conditions vector\n",
"y0 = S0, I0, R0\n",
"# Integrate the SIR equations over the time grid, t.\n",
"ret = odeint(deriv, y0, t, args=(N, beta, gamma))\n",
"S, I, R = ret.T\n",
"\n",
"# Plot the data on three separate curves for S(t), I(t) and R(t)\n",
"fig = plt.figure(facecolor='w')\n",
"ax = fig.add_subplot(111, axisbelow=True)\n",
"ax.plot(t, S, 'b', alpha=0.5, lw=2, label='Susceptible')\n",
"ax.plot(t, I, 'r', alpha=0.5, lw=2, label='Infected')\n",
"ax.plot(t, R, 'g', alpha=0.5, lw=2, label='Recovered with immunity')\n",
"ax.set_xlabel('Time /days')\n",
"ax.set_ylabel('Number (1000s)')\n",
"#ax.set_ylim(0,1.2)\n",
"ax.yaxis.set_tick_params(length=0)\n",
"ax.xaxis.set_tick_params(length=0)\n",
"ax.grid(b=True, which='major', c='w', lw=2, ls='-')\n",
"legend = ax.legend()\n",
"legend.get_frame().set_alpha(0.5)\n",
"for spine in ('top', 'right', 'bottom', 'left'):\n",
" ax.spines[spine].set_visible(False)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}