{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# NYC measles cases by age (2018 - 2019)\n", "\n", "* This Jupyter/Python notebook creates a bar chart of the 2018-2019 NYC measles outbreak cases by age group.\n", "* This notebook is part of the [Visualizing the 2019 Measles Outbreak](https://carlos-afonso.github.io/measles/) open-source GitHub project.\n", "* [Carlos Afonso](https://www.linkedin.com/in/carlos-afonso-w/), November 6, 2019." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import libraries" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from datetime import datetime\n", "import matplotlib.pyplot as plt\n", "import os\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read and show the data\n", "\n", "The data was manually collected from the [NYC Health Measles webpage](https://www1.nyc.gov/site/doh/health/health-topics/measles.page) and saved as a CSV file. This manual approach was used because the data is small." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Start DateEnd DateUnder 1 year1 to 4 years5 to 17 years18 years and overTotal
02018-09-012019-08-19102277146124649
\n", "
" ], "text/plain": [ " Start Date End Date Under 1 year 1 to 4 years 5 to 17 years \\\n", "0 2018-09-01 2019-08-19 102 277 146 \n", "\n", " 18 years and over Total \n", "0 124 649 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Set (relative) path to the CSV data file\n", "data_file = os.path.join('..', 'data', 'nyc-health', 'final', 'nyc-measles-cases-by-age.csv')\n", "\n", "# Import data from the CSV file as a pandas dataframe\n", "df = pd.read_csv(data_file)\n", "\n", "# Show the data\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract context information" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to show the start and end dates in the plot, to provide context. We use just the month information for consistency across the other data visualizations, especially the \"NYC new case by month\"." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Sep 2018', 'Aug 2019']" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Notes about the lambda function below:\n", "# - 1. strptime transforms the raw date string to a datetime object\n", "# - 2. strftime transforms the datetime object to a nicelly formatted date string\n", "[start_month, end_month] = map(\n", " lambda x: datetime.strptime(x, '%Y-%m-%d').strftime('%b %Y'),\n", " df.iloc[0, :2]\n", ")\n", "\n", "# Show the nicelly formated date strings\n", "[start_month, end_month]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also want to show the total number of cases in the plot, to provide context." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "649" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get the number of total cases\n", "total_cases = df.iloc[0, -1]\n", "\n", "# Check if there is a problem with the data where the reported total\n", "# does not match the sum of the number of cases for each age group\n", "if total_cases != df.iloc[0, 2:-1].sum():\n", " print('WARNING: cases for each age group do NOT add up to the reported total!')\n", "\n", "# Show the total cases\n", "total_cases" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract the data to plot" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Under 1 year 102\n", "1 to 4 years 277\n", "5 to 17 years 146\n", "18 years and over 124\n", "Name: 0, dtype: object" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extract the data to plot\n", "data_to_plot = df.iloc[-1, 2:-1]\n", "\n", "# Show the data to plot\n", "data_to_plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create default bar chart" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "default_fig = plt.figure()\n", "ax = data_to_plot.plot.bar()\n", "plt.title('NYC measles cases by age group')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Save default bar chart" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Set image file path/name (without file extension)\n", "img_file = os.path.join('..', 'images', 'nyc-measles-cases-by-age-bar-chart-default')\n", "\n", "# Save as PNG image\n", "default_fig.savefig(img_file + '.png', bbox_inches='tight', dpi=200)\n", "\n", "# Save as SVG image\n", "default_fig.savefig(img_file + '.svg', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create improved bar chart\n", "\n", "We want the bar chart to be clear and to contain the necessary context.\n", "\n", "To contextualize the bar chart we:\n", "* use a title that explictly says what the bar chart represents;\n", "* add text annotations that provides information about:\n", " * the start and end dates, \n", " * the total number of cases during that period, and\n", " * the data and image sources.\n", "\n", "To make the bar chart as clear as possible we:\n", "* use an horizontal bar chart because it is easier to read than a vertical one;\n", "* explicitly show the number and percentage of cases for each age group;\n", "* use a large enough font to make all labels easy to read;\n", "* remove unnecessary elements (x-axis ticks and values, y-axis ticks, and plot box)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define font parameters\n", "fn = 'Arial' # font name\n", "fsb = 18 # font size base\n", "\n", "# Create figure\n", "fig = plt.figure()\n", "\n", "# Add figure title\n", "#fig.suptitle('NYC measles cases by age group', fontname=fn, fontsize=(fsb + 6))\n", "plt.title('NYC measles cases by age group', fontname=fn, fontsize=(fsb + 6))\n", "\n", "# Create the horizontal bar chart\n", "ax = data_to_plot.plot.barh(alpha=0.3, color='red', width=0.8)\n", "\n", "# Invert the y-axis\n", "ax.invert_yaxis()\n", "\n", "# Remove the x-axis ticks and values\n", "ax.get_xaxis().set_ticks([])\n", "\n", "# Remove the y-axis ticks only (keep the labels)\n", "ax.yaxis.set_ticks_position('none')\n", "\n", "# Set the y-axis labels font properties\n", "ax.set_yticklabels(data_to_plot.keys(), fontname=fn, fontsize=fsb)\n", "\n", "# Create labels in front of the bars showing the number and percentage of cases.\n", "# Note: we round the percentages to the nearest integer.\n", "for i in ax.patches:\n", " label = str(i.get_width()) + \" (\" + str(int(round(100 * i.get_width() / total_cases))) + \"%)\"\n", " ax.text(i.get_width() + 5, i.get_y() + 0.5, label, fontname=fn, fontsize=fsb)\n", "\n", "# Remove the axes box\n", "plt.box(False)\n", "\n", "# Add note about the total cases\n", "text = str(total_cases) + ' total confirmed cases from ' + start_month + ' to ' + end_month\n", "fig.text(0.5, 0.0, text, fontname = fn, fontsize = (fsb - 2), horizontalalignment='center')\n", "\n", "# Add note about the end of the outbreak\n", "text = 'Community transmission was declared over on Sep 3, 2019'\n", "fig.text(0.5, -0.1, text, fontname = fn, fontsize = (fsb - 2), horizontalalignment='center')\n", "\n", "# Add note about the Data and Image sources\n", "sources = 'Data: NYC Health, Image: carlos-afonso.github.io/measles'\n", "fig.text(0.5, -0.2, sources, fontname='Lucida Console', fontsize=(fsb - 4), horizontalalignment='center')\n", "\n", "# Show figure\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Save improved bar chart" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# Set image file path/name (without file extension)\n", "img_file = os.path.join('..', 'images', 'nyc-measles-cases-by-age-bar-chart')\n", "\n", "# Save as PNG image\n", "fig.savefig(img_file + '.png', bbox_inches='tight', dpi=200)\n", "\n", "# Save as SVG image\n", "fig.savefig(img_file + '.svg', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Export notebook as HTML" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Export this notebook as a static HTML page\n", "os.system('jupyter nbconvert --to html nyc-measles-cases-by-age-final.ipynb')" ] } ], "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": 4 }