Skip to content

Instantly share code, notes, and snippets.

@alexiswl
Last active June 23, 2019 12:10
Show Gist options
  • Save alexiswl/09320c326210bef32210ef6c241c130f to your computer and use it in GitHub Desktop.
Save alexiswl/09320c326210bef32210ef6c241c130f to your computer and use it in GitHub Desktop.
A jupyter notebook to analyse an ABS excel spreadsheet
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Gross Earnings Per Week"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setup"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib\n",
"from matplotlib import pyplot as plt\n",
"import re\n",
"import numpy as np\n",
"from scipy import stats\n",
"from matplotlib.ticker import FuncFormatter\n",
"import operator\n",
"from matplotlib.pyplot import savefig"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def earnings_bin_as_int(earnings_bin):\n",
" \"\"\"\n",
" Convert string '$200 to under $300' to $250 for simplicity\n",
" \"\"\"\n",
" re_ob = re.match(\"\\$([\\d|,]+) to under \\$([\\d|,]+)\", earnings_bin)\n",
" if re_ob is not None:\n",
" lower = int(re.sub(\",\", \"\", re_ob.group(1)))\n",
" upper = int(re.sub(\",\", \"\", re_ob.group(2)))\n",
" else:\n",
" # We have the group '$2,500 and over' or 'Under $200'\n",
" if 'Under' in earnings_bin:\n",
" lower = 0\n",
" upper = 200\n",
" else:\n",
" lower = 2500\n",
" upper = 2500\n",
" \n",
" return int((upper + lower) / 2)\n",
"\n",
"def to_percentage(y, pos):\n",
" s = str(round(100*y, 2))\n",
" return s + '%'\n",
"\n",
"def to_dollars(y, pos):\n",
" return(\"${:,}\".format(int(y)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Read in data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"abs_stats_link = \"https://www.abs.gov.au/AUSSTATS/subscriber.nsf/log?openagent&63060do003_201805.xls&6306.0&Data%20Cubes&C9E518DF2741A2F3CA258389001BCC04&0&May%202018&22.01.2019&Latest\"\n",
"\n",
"# Get mean values\n",
"rows_to_skip_mean = 4\n",
"rows_to_stream_mean = 27\n",
"rows_to_drop_mean = [0, 1]\n",
"\n",
"# Read in the link from abs.gov\n",
"# Rename the first row and set it as the index\n",
"mean_vals = pd.read_excel(abs_stats_link, sheet_name=\"Table_1\", \n",
" skiprows=rows_to_skip_mean, header=0, nrows=rows_to_stream_mean).\\\n",
" drop(rows_to_drop_mean).\\\n",
" rename(columns={\"Unnamed: 0\": \"Earnings Bin\"})\n",
"\n",
"# Get stderr vals\n",
"rows_to_skip_stderr = rows_to_skip_mean + rows_to_stream_mean + 2\n",
"rows_to_stream_stderr = 27\n",
"rows_to_drop_stderr = [0, 1]\n",
"\n",
"# Read in same link,\n",
"# Use length of first dataframe and drop two rows,\n",
"# Replace column names with those from mean vals dataframe\n",
"stderr_vals = pd.read_excel(abs_stats_link, sheet_name=\"Table_1\", \n",
" skiprows=rows_to_skip_stderr, header=None, nrows=rows_to_stream_stderr).\\\n",
" drop(rows_to_drop_stderr)\n",
"stderr_vals.columns = mean_vals.columns\n",
"\n",
"# Combine stderr and mean vals dataframes\n",
"earnings_vals = pd.merge(mean_vals.set_index(\"Earnings Bin\"),\n",
" stderr_vals.set_index(\"Earnings Bin\"),\n",
" left_index=True, right_index=True,\n",
" suffixes=[' mean', ' stderr'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Get plot references"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# Get sum of bins\n",
"total_pop = earnings_vals['All ages mean'].sum()\n",
"\n",
"# Get prop of total in each bin\n",
"earnings_vals['All ages prop'] = earnings_vals['All ages mean'] / total_pop\n",
"\n",
"# Convert index to quantitative\n",
"earnings_vals['Earnings Bin Int'] = earnings_vals.reset_index()['Earnings Bin'].apply(lambda x: earnings_bin_as_int(x)).tolist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Round out the 'over \\\\$2500 figure' \n",
"Data only goes by \\\\$100 bins until \\\\$2500.\n",
"Approximate trend based on values from \\\\$2000 to \\\\$2400"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# Get regression value after trend heads towards zero\n",
"trend_start = -9 # 9th last value at $1600\n",
"x_impute_start = 2450\n",
"x_impute_end = 9950\n",
"x_impute_interval = 100\n",
"gradient,intercept,r_value,p_value,std_err=stats.linregress(earnings_vals['Earnings Bin Int'].tolist()[trend_start:-1],\n",
" earnings_vals['All ages prop'].tolist()[trend_start:-1])\n",
"\n",
"imputed_x_vals = np.arange(x_impute_start, x_impute_end, x_impute_interval)\n",
"\n",
"# Start intercept\n",
"x_start = 2450\n",
"y_start = earnings_vals.rename(columns={\"Earnings Bin Int\": \"Earnings_Bin_Int\"}).\\\n",
" query('Earnings_Bin_Int == %d' % x_start)['All ages prop'].item()\n",
"\n",
"# So that the sum of the 2500+ bin is equal to the sum of the remainder of the bins\n",
"gradient_offset = 2.25\n",
"\n",
"# Given a starting gradient assume each bin has \n",
"# Use simple y=mx+c to impute y vals\n",
"imputed_y_vals = [(gradient / gradient_offset) * (x_val - x_start) + y_start\n",
" for x_val in imputed_x_vals]\n",
"imputed_df = pd.DataFrame([imputed_x_vals,\n",
" imputed_y_vals]).transpose()\n",
"imputed_df.columns = ['Earnings Bin Int', 'All ages prop']\n",
"\n",
"imputed_df = imputed_df.rename(columns={\"All ages prop\": \"All_ages_prop\"}).\\\n",
" query(\"All_ages_prop > 0\").\\\n",
" rename(columns={\"All_ages_prop\": \"All ages prop\"})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plot Data"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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9dRBx1544YUxex8Y27qHc9999/HqV7+aL37xixxyyCH968TutNNOXHPNNfzqV7/iW9/6Fu9///t56qmn+q/7x3/8R9ra2mhra6O1tRWA//iP/+DBBx/kwQcf5IorruDcc0vz8j/55JNcfPHF3HHHHdx5551cfPHF/StfbLRmzRqOOeaYrfoMe+65J8uXL9+qa8eKwU2SNHmtfwI67yp9H0O33XYbRx99NKeccgr7778/559/Ptdddx2HH344Bx10EA8//DBQavE555xzeNWrXsX+++/Pv//7vwObtpC96U1v4rbbbuP888+np6eH1tZW3va20pLaX/3qVzn88MNpbW3l3e9+d3/g+spXvsL+++/P0Ucfze23375JjY8//jhvf/vb+wPLww8/zJw5c/joRz/KUUcdxY033khbWxtHHHEELS0tvOUtb+kPKccccwwf+MAHePWrX83LXvYy7rrrLk466STmzZvHBRdcsMl7DVf3Cy+8wF/91V/xile8guOOO46enh6gtJrE8ccfz6GHHsqrXvUqHnjggU3u19jYSFNTE01NTTQ2lpYpW7p0Kaeffjrnnnsut99+O4cddhgA+++/P/PmzQNKwejFL34xTzwx+u975cqVnH766UQERxxxBE899RSPPfYY3/72t3nd617H7rvvzvTp03nd617Ht771rVHvNZLVq1fz2te+lnnz5vGlL30JGNwSedVVV3HSSSdx/PHHM2/ePBYvXtx/7axZswZ9H0sGN0nS5LTmelj5UvjB60rf14y07PXWWb16NZ/97Ge55557uPbaa/mv//ov7rzzTt71rnfx+c9//o9lrFnDD3/4Q775zW9yzjnnsH79+hHv+YlPfILGxkba2tq47rrruP/++7nhhhu4/fbbaWtrY4cdduC6667jscce4yMf+Qi333473/3ud7nvvvs2udeLX/xivvzlL/OqV72Ktra2/vVTGxoa+MlPfsJpp53G6aefzic/+Una29s56KCDuPjii/uv33HHHfnRj37EOeecw4knnshll13Gvffey1VXXUVnZ+eodQM8+OCDvPe97+VXv/oVu+22GytWrADg7LPP5vOf/zx33303n/rUp3jPe96zSe2nnnoq5513Huedd15/S+GOO+7I448/TrFYpLGxkblz525y3Z133snzzz/f/1kBPvzhD9PS0sIHPvABent7AVi3bh177bVX/znNzc2sW7duxP1bo729nW9+85v87Gc/46Mf/SiPPvroJue0tbVxww03cM8993DDDTewdu1aAO66665B38eSwU2SNPmsfwLueCe80AN9T5e+3/HOMW15O+yww9hjjz2or69nv/3247jjjgPgoIMOYs2aNf3nnXLKKRQKBebNm8e+++47bAvTSL7//e9z9913c9hhh9Ha2sr3v/99HnnkEe644w6OOeYYZs2axY477rhJN+hoNp779NNP89RTT3H00UcDcMYZZ/CjH/2o/7yFCxf2f55XvOIV/Z9133337Q8Yo9n4bBnAoYceypo1a+ju7uanP/0pb33rW/tbEB977LGK6v7kJz/JPffcwxe+8AXe/OY3s3r16kHHH3vsMd7xjnfwla98hUKhFE8+/vGP88ADD3DXXXfx5JNP8slPfhIoPeM2VESMuB/gLW95C62trZxwwgmsWrWq/7m5r3zlK8PWe+KJJ9LY2MjMmTN5zWtew5133rnJOcceeyy77rorDQ0NvPzlL+c3v/lNRT+LbeGSV5KkyecPa6CwYymwbVSoK+1vGJvup/r6Py6lVSgU+rcLhQIbNmzoP7bxH/6B29OmTaNYLPbvG6kVLjM544wz+PjHPz5o/80337zJfSv1ohe9qKLzBn6eoZ914Ofb3PUAO+ywAz09PRSLRXbbbbf+QQJbYvbs2Vx//fVcdNFFHHbYYZx00kn9XdLPPPMMb3zjG/nYxz7GEUcc0X/NHnvs0V/LWWed1T9goLm5eVD47OjoYM8996S5uZnbbrtt0P6Nz7PddNNNQKkF9cwzzxx03nCG+70PNfRnVMnPdVvZ4iZJmnxeNAeKzw/eV+wr7R9nN954I8VikYcffphHHnmEAw44gDlz5tDW1kaxWGTt2rWDWmPq6uro6+sDSi0yy5cv5/HHHwdKD8//5je/4ZWvfCW33XYbnZ2d9PX1ceONN25xXbvuuivTp0/nxz/+MQDXXnttf+vb1hhY90h22WUX9tlnn/56M3OTlrOR/OpXvwJKwfHQQw/lD3/4AwDPP/88b3nLWzj99NN561vfOuiaja15mcnNN9/c/3zZwoULueaaa8hMfv7zn7Prrruyxx578PrXv57vfOc7dHV10dXVxXe+8x1e//rXV/5DGGDlypWsX7+ezs5Obrvttv5n8iaaLW6SpMmnYRa8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+OGHbs2aNe7gwYMRr33vvfdc586dg8cTJ050S5cuDR4/9NBDbvz48c4551avXu369evnmpqagucLCwvdiy++eNh99+/f7zIzM91HH30ULLvsssvcTTfd5Jxz7mc/+5mbNWtW8FxJSYnLzMx0X3zxRZt1W/r5z3/uLrroIved73zHde7c2Y0aNcqtX78+eL6ystJdeOGFrmfPnq6oqMgtWbLksLqzZ892+fn57sEHHwy79zvvvON69+7t6uvrg2VPP/20GzlypHPOucbGRveb3/zGDRkyxPXo0cNdfPHFbvfu3cFrZ86c6fr06eO6dOnizjzzTLdp06bguTlz5rj58+e7qVOnury8PLdmzZqI318o4F3XzhhHI24iIqmqaBZMK4NzXg581cKEuONCpjOrq6uZOHEiaWlpZGdnM3nyZHJzcyPWe/311znxxBODx5s3b2bkyJHB4yXPzCQAABpxSURBVJEjR4aNkp1yyimYWfD8KaecEnEkbMuWLaSnp1NcXNzqvUI/Z+jQoWRlZbFly5Y260ayatUqLr74Yvbs2cOll17K9OnTqa+vp6mpifPPP5+RI0dSWVnJK6+8wl133cXq1avD6s6cOZPPP/+c2bNnh9133LhxFBQUsGbNmmDZY489xve+9z0A7r77blauXMlrr71GVVUV3bt359prrw1eO3XqVLZu3cqnn37K6NGjD7v/8uXLufXWW9m3bx9nnHFGq9/fVxGzwM3MHjazT81sUyvnzczuNrMSM9toZqO98uPN7D0z22BmE72yDDN72czyYtVeEZGUlNMLCsYp95uP3nrrLc4++2x69+7Nueeey4oVK9i1axcvv/xyWLBw4403Mn36dFasWMFTTz1FdXV1xPtt3LiRX/7yl9xxxx3Bsv3799O1a9fgcdeuXdm/fz/OucPONZ/ft2/fYfdu69ojne/I5zQbM2YMM2fOJDMzk+uvv56amhrWrl3LunXr2LlzJwsXLiQrK4shQ4Zw1VVX8cQTTwTrTpw4kenTp5OWlhYxwJ0zZw6PPfYYEHj2bvXq1Vx66aUALF26lF//+tcMGDCA7OxsFi1axNNPPx2ccv3+979Pfn5+8NyGDRvYu3dv8N7Tpk3j9NNPJy0tjZycnFa/v68iliNujwDfOsL5qcBw73U18DuvfB5wMzAT+KlXdg2wzDl3MCYtFRGR9lHet6h7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\n",
"text/plain": [
"<Figure size 720x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(10, 10))\n",
"\n",
"# Scatter plot of abs data\n",
"earnings_vals[['Earnings Bin Int', 'All ages prop']].drop(earnings_vals.tail(1).index).\\\n",
" plot(kind='scatter', x='Earnings Bin Int', y='All ages prop', ax=ax);\n",
"\n",
"# Continue with imputed data\n",
"imputed_df.plot(kind='scatter', x='Earnings Bin Int', y='All ages prop', color='orange', ax=ax);\n",
"\n",
"# Change legend names\n",
"ax.legend(labels=['ABS', 'Imputed from the \"$2500+ bin\"'])\n",
"\n",
"# Label and set axis\n",
"ax.set_xlim(right=4500);\n",
"ax.set_ylim(bottom=0);\n",
"ax.set_xlabel(\"Earnings per week\")\n",
"ax.set_ylabel(\"Percentage of population in given bin\")\n",
"\n",
"# Format axis\n",
"ax.yaxis.set_major_formatter(FuncFormatter(to_percentage))\n",
"ax.xaxis.set_major_formatter(FuncFormatter(to_dollars))\n",
"\n",
"# Add annotation\n",
"not_the_top_end_of_town = 3838\n",
"ax.annotate('~$200,000 per year',\n",
" xy=(not_the_top_end_of_town, 0.0),\n",
" xycoords='data',\n",
" xytext=(-50,75),\n",
" textcoords='offset points',\n",
" arrowprops=dict(headwidth=10, width=4, color='#363d46'), fontsize=12);\n",
"\n",
"ax.set_title(\"Distribution of income per bin\");\n",
"\n",
"plt.show();\n",
"\n",
"savefig(\"income_per_bin.png\");"
]
}
],
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Gross Earnings Per Week"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setup"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib\n",
"from matplotlib import pyplot as plt\n",
"import re\n",
"import numpy as np\n",
"from scipy import stats\n",
"from matplotlib.ticker import FuncFormatter\n",
"import operator\n",
"from matplotlib.pyplot import savefig"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def earnings_bin_as_int(earnings_bin):\n",
" \"\"\"\n",
" Convert string '$200 to under $300' to $250 for simplicity\n",
" \"\"\"\n",
" re_ob = re.match(\"\\$([\\d|,]+) to under \\$([\\d|,]+)\", earnings_bin)\n",
" if re_ob is not None:\n",
" lower = int(re.sub(\",\", \"\", re_ob.group(1)))\n",
" upper = int(re.sub(\",\", \"\", re_ob.group(2)))\n",
" else:\n",
" # We have the group '$2,500 and over' or 'Under $200'\n",
" if 'Under' in earnings_bin:\n",
" lower = 0\n",
" upper = 200\n",
" else:\n",
" lower = 2500\n",
" upper = 2500\n",
" \n",
" return int((upper + lower) / 2)\n",
"\n",
"def to_percentage(y, pos):\n",
" s = str(round(100*y, 2))\n",
" return s + '%'\n",
"\n",
"def to_dollars(y, pos):\n",
" return(\"${:,}\".format(int(y)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Read in data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"abs_stats_link = \"https://www.abs.gov.au/AUSSTATS/subscriber.nsf/log?openagent&63060do003_201805.xls&6306.0&Data%20Cubes&C9E518DF2741A2F3CA258389001BCC04&0&May%202018&22.01.2019&Latest\"\n",
"\n",
"# Get mean values\n",
"rows_to_skip_mean = 4\n",
"rows_to_stream_mean = 27\n",
"rows_to_drop_mean = [0, 1]\n",
"\n",
"# Read in the link from abs.gov\n",
"# Rename the first row and set it as the index\n",
"mean_vals = pd.read_excel(abs_stats_link, sheet_name=\"Table_1\", \n",
" skiprows=rows_to_skip_mean, header=0, nrows=rows_to_stream_mean).\\\n",
" drop(rows_to_drop_mean).\\\n",
" rename(columns={\"Unnamed: 0\": \"Earnings Bin\"})\n",
"\n",
"# Get stderr vals\n",
"rows_to_skip_stderr = rows_to_skip_mean + rows_to_stream_mean + 2\n",
"rows_to_stream_stderr = 27\n",
"rows_to_drop_stderr = [0, 1]\n",
"\n",
"# Read in same link,\n",
"# Use length of first dataframe and drop two rows,\n",
"# Replace column names with those from mean vals dataframe\n",
"stderr_vals = pd.read_excel(abs_stats_link, sheet_name=\"Table_1\", \n",
" skiprows=rows_to_skip_stderr, header=None, nrows=rows_to_stream_stderr).\\\n",
" drop(rows_to_drop_stderr)\n",
"stderr_vals.columns = mean_vals.columns\n",
"\n",
"# Combine stderr and mean vals dataframes\n",
"earnings_vals = pd.merge(mean_vals.set_index(\"Earnings Bin\"),\n",
" stderr_vals.set_index(\"Earnings Bin\"),\n",
" left_index=True, right_index=True,\n",
" suffixes=[' mean', ' stderr'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Get plot references"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# Get sum of bins\n",
"total_pop = earnings_vals['All ages mean'].sum()\n",
"\n",
"# Get prop of total in each bin\n",
"earnings_vals['All ages prop'] = earnings_vals['All ages mean'] / total_pop\n",
"\n",
"# Convert index to quantitative\n",
"earnings_vals['Earnings Bin Int'] = earnings_vals.reset_index()['Earnings Bin'].apply(lambda x: earnings_bin_as_int(x)).tolist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Round out the 'over \\\\$2500 figure' \n",
"Data only goes by \\\\$100 bins until \\\\$2500.\n",
"Approximate trend based on values from \\\\$2000 to \\\\$2400"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# Get regression value after trend heads towards zero\n",
"trend_start = -9 # 9th last value at $1600\n",
"x_impute_start = 2450\n",
"x_impute_end = 9950\n",
"x_impute_interval = 100\n",
"gradient,intercept,r_value,p_value,std_err=stats.linregress(earnings_vals['Earnings Bin Int'].tolist()[trend_start:-1],\n",
" earnings_vals['All ages prop'].tolist()[trend_start:-1])\n",
"\n",
"imputed_x_vals = np.arange(x_impute_start, x_impute_end, x_impute_interval)\n",
"\n",
"# Start intercept\n",
"x_start = 2450\n",
"y_start = earnings_vals.rename(columns={\"Earnings Bin Int\": \"Earnings_Bin_Int\"}).\\\n",
" query('Earnings_Bin_Int == %d' % x_start)['All ages prop'].item()\n",
"\n",
"# So that the sum of the 2500+ bin is equal to the sum of the remainder of the bins\n",
"gradient_offset = 2.25\n",
"\n",
"# Given a starting gradient assume each bin has \n",
"# Use simple y=mx+c to impute y vals\n",
"imputed_y_vals = [(gradient / gradient_offset) * (x_val - x_start) + y_start\n",
" for x_val in imputed_x_vals]\n",
"imputed_df = pd.DataFrame([imputed_x_vals,\n",
" imputed_y_vals]).transpose()\n",
"imputed_df.columns = ['Earnings Bin Int', 'All ages prop']\n",
"\n",
"imputed_df = imputed_df.rename(columns={\"All ages prop\": \"All_ages_prop\"}).\\\n",
" query(\"All_ages_prop > 0\").\\\n",
" rename(columns={\"All_ages_prop\": \"All ages prop\"})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plot Data"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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9dRBx1544YUxex8Y27qHc9999/HqV7+aL37xixxyyCH968TutNNOXHPNNfzqV7/iW9/6Fu9///t56qmn+q/7x3/8R9ra2mhra6O1tRWA//iP/+DBBx/kwQcf5IorruDcc0vz8j/55JNcfPHF3HHHHdx5551cfPHF/StfbLRmzRqOOeaYrfoMe+65J8uXL9+qa8eKwU2SNHmtfwI67yp9H0O33XYbRx99NKeccgr7778/559/Ptdddx2HH344Bx10EA8//DBQavE555xzeNWrXsX+++/Pv//7vwObtpC96U1v4rbbbuP888+np6eH1tZW3va20pLaX/3qVzn88MNpbW3l3e9+d3/g+spXvsL+++/P0Ucfze23375JjY8//jhvf/vb+wPLww8/zJw5c/joRz/KUUcdxY033khbWxtHHHEELS0tvOUtb+kPKccccwwf+MAHePWrX83LXvYy7rrrLk466STmzZvHBRdcsMl7DVf3Cy+8wF/91V/xile8guOOO46enh6gtJrE8ccfz6GHHsqrXvUqHnjggU3u19jYSFNTE01NTTQ2lpYpW7p0Kaeffjrnnnsut99+O4cddhgA+++/P/PmzQNKwejFL34xTzwx+u975cqVnH766UQERxxxBE899RSPPfYY3/72t3nd617H7rvvzvTp03nd617Ht771rVHvNZLVq1fz2te+lnnz5vGlL30JGNwSedVVV3HSSSdx/PHHM2/ePBYvXtx/7axZswZ9H0sGN0nS5LTmelj5UvjB60rf14y07PXWWb16NZ/97Ge55557uPbaa/mv//ov7rzzTt71rnfx+c9//o9lrFnDD3/4Q775zW9yzjnnsH79+hHv+YlPfILGxkba2tq47rrruP/++7nhhhu4/fbbaWtrY4cdduC6667jscce4yMf+Qi333473/3ud7nvvvs2udeLX/xivvzlL/OqV72Ktra2/vVTGxoa+MlPfsJpp53G6aefzic/+Una29s56KCDuPjii/uv33HHHfnRj37EOeecw4knnshll13Gvffey1VXXUVnZ+eodQM8+OCDvPe97+VXv/oVu+22GytWrADg7LPP5vOf/zx33303n/rUp3jPe96zSe2nnnoq5513Huedd15/S+GOO+7I448/TrFYpLGxkblz525y3Z133snzzz/f/1kBPvzhD9PS0sIHPvABent7AVi3bh177bVX/znNzc2sW7duxP1bo729nW9+85v87Gc/46Mf/SiPPvroJue0tbVxww03cM8993DDDTewdu1aAO66665B38eSwU2SNPmsfwLueCe80AN9T5e+3/HOMW15O+yww9hjjz2or69nv/3247jjjgPgoIMOYs2aNf3nnXLKKRQKBebNm8e+++47bAvTSL7//e9z9913c9hhh9Ha2sr3v/99HnnkEe644w6OOeYYZs2axY477rhJN+hoNp779NNP89RTT3H00UcDcMYZZ/CjH/2o/7yFCxf2f55XvOIV/Z9133337Q8Yo9n4bBnAoYceypo1a+ju7uanP/0pb33rW/tbEB977LGK6v7kJz/JPffcwxe+8AXe/OY3s3r16kHHH3vsMd7xjnfwla98hUKhFE8+/vGP88ADD3DXXXfx5JNP8slPfhIoPeM2VESMuB/gLW95C62trZxwwgmsWrWq/7m5r3zlK8PWe+KJJ9LY2MjMmTN5zWtew5133rnJOcceeyy77rorDQ0NvPzlL+c3v/lNRT+LbeGSV5KkyecPa6CwYymwbVSoK+1vGJvup/r6Py6lVSgU+rcLhQIbNmzoP7bxH/6B29OmTaNYLPbvG6kVLjM544wz+PjHPz5o/80337zJfSv1ohe9qKLzBn6eoZ914Ofb3PUAO+ywAz09PRSLRXbbbbf+QQJbYvbs2Vx//fVcdNFFHHbYYZx00kn9XdLPPPMMb3zjG/nYxz7GEUcc0X/NHnvs0V/LWWed1T9goLm5eVD47OjoYM8996S5uZnbbrtt0P6Nz7PddNNNQKkF9cwzzxx03nCG+70PNfRnVMnPdVvZ4iZJmnxeNAeKzw/eV+wr7R9nN954I8VikYcffphHHnmEAw44gDlz5tDW1kaxWGTt2rWDWmPq6uro6+sDSi0yy5cv5/HHHwdKD8//5je/4ZWvfCW33XYbnZ2d9PX1ceONN25xXbvuuivTp0/nxz/+MQDXXnttf+vb1hhY90h22WUX9tlnn/56M3OTlrOR/OpXvwJKwfHQQw/lD3/4AwDPP/88b3nLWzj99NN561vfOuiaja15mcnNN9/c/3zZwoULueaaa8hMfv7zn7Prrruyxx578PrXv57vfOc7dHV10dXVxXe+8x1e//rXV/5DGGDlypWsX7+ezs5Obrvttv5n8iaaLW6SpMmnYRa8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+OGHbs2aNe7gwYMRr33vvfdc586dg8cTJ050S5cuDR4/9NBDbvz48c4551avXu369evnmpqagucLCwvdiy++eNh99+/f7zIzM91HH30ULLvsssvcTTfd5Jxz7mc/+5mbNWtW8FxJSYnLzMx0X3zxRZt1W/r5z3/uLrroIved73zHde7c2Y0aNcqtX78+eL6ystJdeOGFrmfPnq6oqMgtWbLksLqzZ892+fn57sEHHwy79zvvvON69+7t6uvrg2VPP/20GzlypHPOucbGRveb3/zGDRkyxPXo0cNdfPHFbvfu3cFrZ86c6fr06eO6dOnizjzzTLdp06bguTlz5rj58+e7qVOnury8PLdmzZqI318o4F3XzhhHI24iIqmqaBZMK4NzXg581cKEuONCpjOrq6uZOHEiaWlpZGdnM3nyZHJzcyPWe/311znxxBODx5s3b2bkyJHB4yXPzCQAABpxSURBVJEjR4aNkp1yyimYWfD8KaecEnEkbMuWLaSnp1NcXNzqvUI/Z+jQoWRlZbFly5Y260ayatUqLr74Yvbs2cOll17K9OnTqa+vp6mpifPPP5+RI0dSWVnJK6+8wl133cXq1avD6s6cOZPPP/+c2bNnh9133LhxFBQUsGbNmmDZY489xve+9z0A7r77blauXMlrr71GVVUV3bt359prrw1eO3XqVLZu3cqnn37K6NGjD7v/8uXLufXWW9m3bx9nnHFGq9/fVxGzwM3MHjazT81sUyvnzczuNrMSM9toZqO98uPN7D0z22BmE72yDDN72czyYtVeEZGUlNMLCsYp95uP3nrrLc4++2x69+7Nueeey4oVK9i1axcvv/xyWLBw4403Mn36dFasWMFTTz1FdXV1xPtt3LiRX/7yl9xxxx3Bsv3799O1a9fgcdeuXdm/fz/OucPONZ/ft2/fYfdu69ojne/I5zQbM2YMM2fOJDMzk+uvv56amhrWrl3LunXr2LlzJwsXLiQrK4shQ4Zw1VVX8cQTTwTrTpw4kenTp5OWlhYxwJ0zZw6PPfYYEHj2bvXq1Vx66aUALF26lF//+tcMGDCA7OxsFi1axNNPPx2ccv3+979Pfn5+8NyGDRvYu3dv8N7Tpk3j9NNPJy0tjZycnFa/v68iliNujwDfOsL5qcBw73U18DuvfB5wMzAT+KlXdg2wzDl3MCYtFRGR9lHet6h7/PHHufPOO6msrOS6667j4Ycf5mtf+xq33347V111VfC6W265hbfeeosRI0awevVqjj/+eNatWxd2r5KSEqZOncqSJUs488wzg+WdO3fmiy++CB5/8cUXdO7cGTM77Fzz+fz8/MPa2ta1Rzrfkc9pVlhYGHyflpbGgAEDqKqqoqysjKqqKrp16xZ83XbbbWHBbGjdSC677DJeeOEF9u/fz4oVKzjzzDPp27cvAGVlZcyYMSN47xEjRpCenk51dTWNjY3cfPPNDB06lC5dulBUVATArl272v3ZRyNmgZtz7nVgzxEumQY86k3vrgW6mVlfoB7IBfKAejPrBpwPPBqrtoqISDuUPg6rBsFfzw18LX3c7xYlhSVLljB69GgyMzM577zzeOmll9i1axdr1qxh1KhRYdcOHz6ck08+mYceeohLLrmEP/zhD8FzZWVlTJ48mQULFgSn/JqdeOKJbNiwIXi8YcOG4FTqiSeeyMaNG8OmZTdu3Bg21dqsuLiYhoYGtm7d2uq9Qj9n27Zt1NbWUlxc3GbdSMrLy4Pvm5qaqKiooF+/fhQWFjJ48GA+//zz4Gvfvn38+c9/Dl4fOvUbSf/+/Zk4cSLPPfccy5YtC/uZFRYW8uKLL4bdv6amhv79+7N8+XJWrVrFyy+/zN69e4OpWUJ/fm199tHw8xm3/kB5yHGFV3YvcD1wP3AbsBD4tQv9iURgZleb2btm9u7OnfpLUEQkqpT3LWbS0tr3T/GDDz5IbW0tADU1NZSUlNCnTx8AKisrOeecc7j22muZP3/+YXUvv/xyfvvb31JZWUlVVRV33nknc+fOBWDSpEmkp6dz9913U1tbyz333APAOeecA8AjjzwSHFXq1KkTF154IQsXLuTAgQO8+eabrFq1Khj0zJ49mxdeeIE33niDAwcOsHDhQi688ELy8/PbrBvJe++9x7PPPktDQwN33XUX2dnZTJgwgdNOO40uXbpw++23c+jQIRobG9m0adNhI5Btufzyy1m8eDHvv/8+M2bMCJbPnz+fW2+9lbKyMgB27tzJqlWrANi3bx/Z2dkUFBRw8OBBbrnllg595tHyM3CLFI4659x259wk59xE4CDQD/jQzJaZ2ZNmVhyhHs65B5xzY51zY3v10rMaIiJRpbxvvnvrrbc4/vjjg9Og3bt35yc/+QkADz30ENu2beMXv/gFnTt3Dr6azZs3j/PPP5+TTz6Zk046iW9/+9vMmzcPgKysLFauXMmjjz5Kt27dePjhh1m5ciVZWYH+Li8v5/TTTw/e67777uPQoUP07t2bWbNm8bvf/S5sxO3+++9n9uzZ9O7dm3379nHfffe1q24k06ZN48knn6R79+4sW7aMZ599lszMTNLT03nhhRdYv349gwcPpmfPnvzgBz8Ie86sPWbMmBGcFu3UqVOw/LrrruOCCy5gypQp5OfnM2HCBN5++20gEOwNGjSI/v37c8IJJzBhwoQOfebRsjYGso7u5mZFwJ+ccydFOLcUeNU597h3/BEwyTm3I+SaJ4H/AuYCbwClwALn3OyW9ws1duxY9+6770bnmxARkcDI2qpBgZG2Zum5gdWoWthwTC1atIi5c+cGR8FibcqUKSxZsoQRI0Yck89rtmjRIkpKSoILCGJl6NChLF26lMmTJ8f0c47EzN5zzo1tz7V+jrg9D1zurS6dAOxtEbSdBVQ657YSeN6tCWj03ouIyLGU0yuwl2l6LmR2CXwd/3sFbSngL3/5yzEP2o6VZ555BjMLTgsngphtMm9mjwOTgJ5mVgH8HMgEcM7dD/wZ+A+ghMCU6BUhdY3ASNt3vKIHgD967b0mVm0WEZEjKJoFx00OTI92KlLQ5pNFixb53YSkMGnSJD744AOWLVvW7ucM40FMp0r9oqlSEZE4UbNTgV6KW/PKq/zqv++kV8+eDBpYyPHDh3LuN89iyOAiv5sWNzoyVRqzETcREUlxpY8HVp6mZQX2RR3/e+3OkILe3/wvamvrqKisoqKyirfWvkOTa+Kaq65ou7IcJnHGBkVEJHEofYh4tpZsCzvOyclm0MDYJahNdgrcREQk+pQ+RDzllVVhx2lpaQwsHOBTaxKfAjcREYm+TkWB6dFQTfWBckkZjY2N7NkTvolSXW0dhQP6+dSixKfATUREok/pQwT4d/WnZGWGj7xmZGTQtUsXn1qU+LQ4QUREYkPpQ1Le9vIK0tLDx4j69OntU2uSgwI3ERGJnZxeCthS2PbySurr68PKBhcN9Kk1yUFTpSIiEl9qdsLudVqBmgQ+3vYJdXVfBm5paWkUDx/qY4sSn0bcREQkfij3W1Ip2VYadpyTk80grSg9KhpxExGR+KDcb0mnsnJHixKjsLC/L21JFgrcREQkPij3W1Kpra1j3759LcpqKeyvwO1oKHATEZH4oNxvSaVyxw6ys7PDyvLycsnNzfGpRclBgZuIiMQH5X5LKuXllViahZX1O66PT61JHlqcICIi8UO535JG2fYKamtrw8qGDBnsU2uShwI3ERGJLx3N/VazU4FeHNpa8jENDY3B44yMDIYPVeB2tBS4iYhI4lL6kLi1rbQs7Dg7O4tBA5UK5GjpGTcREUlMSh8S13b8uzrsuKmpiYHK4XbUFLiJiEhiUvqQuLX/wAFqasKfb6urraNf3+N8alHyUOAmIiKJSelD4lZ5RRU5OeGpQLp260pGhp7QOloK3EREJDEpfUjc2l5egXMurGxAv74+tSa5KPQVEZHEpfQhcalsewWHDtWElQ0fNsSn1iQXBW4iIpLYOpo+RGJua8nHYSNuWVlZDBlc5Ft7kommSkVEJLXU7ITd67T6NIZKy7aHHWdmZjBQm8tHhUbcREQkdSjvW8w556iuDg+KGxsalQokSjTiJiIiqUF5346Jz/fupanFwoSGhgZ69+rpU4uSiwI3ERFJDcr7dkxsL68kKyszrKxnzwLS0hRyRIN+iiIikhqU9+2Y2F5eQVNjU1hZ4QA93xYtCtxERCQ1KO/bMfFJ6XYO1YSnAikerlQg0aLFCSIikjqU9y3mtpZ8HHacm5PD4KJBPrUm+ShwExGR1NLRvG81OxXodcD28sqw47T0NE2VRpECNxERkdYofUiHNDU1sWv37rCy+rp6pQKJIj3jJiIiEonSh3TYpzt3kZEePiZkZnTv1tWnFiUfBW4iIiKRKH1Ih20vryAjIzxw69OnF2bmU4uSjwI3ERGRSJQ+pMPKKyqpb6gPKxs0sNCn1iQnBW4iIiKRKH1Ih328rZTa2i+DXTOjePgwH1uUfLQ4QUREpDVKH9IhWz/+JOw4NzeHQQO1MCGaFLiJiIgcSUfTh6SwisqqsGPDtKI0yjRVKiIiEk01O2H3upRbfdrQ0MDevXvDympqaykc0M+nFiUnjbiJiIhESwrnfava8W+ysrI5dOhQsCwnJ5vOnTr52KrkoxE3ERGRaEjxvG/byytISwtP+3Fcnz4+tSZ5KXATERGJhhTP+1a2vYK6uvD0KUMGa4/SaFPgJiIiEg0pnvet5ONPqK9vCB6np6dTPGyojy1KTgrcREREoiHF8759/Elp2HFOTrZSgcSAFieIiIhESwrnfava8e+wY+ecVpTGgAI3ERGRaErBvG+HDtVw8OChsLLamlr691PgFm2aKhUREfFTEuR9K6+sJDs7O6wsP78z2dlZrdSQr0ojbiIiIn5Jkrxv5RVVWIuy/v36+tKWZKcRNxERET8kUd63su3l1NTUhJUNGzrYp9YkNwVuIiIifkiivG9bt35MY1NT8DgzM5OhQxS4xYICNxERET8kUd63T8q2hx1nZWUxsLC/T61JbgrcRERE/JBEed/+/e9Pw44bGxsZWKgcbrGgxQkiIiJ+SYK8b3u/+IKGhoawsvr6Oo7r09unFiU3BW4iIiJ++ip532p2xk2wV15RRVZ2FvUhwVuP7t1JT0/3sVXJS4GbiIhIIomzFCLbyytoanJhZYUD9HxbrOgZNxERkUQRhylESsu2U1MTvmvC8KFDfGpN8lPgJiIikijiMIXI1pJtuJABt5ycbIYMGeRbe5KdpkpFREQSRZykEPnXR1vJysykf/++lG2vCDuXnp6uqdIYUuAmIiKSKJpTiLx9ZWCkranelxQiN96yiM/3BlaTOhf+fFtDfQPp6ek0NDSSkaEFCtGmwE1ERCSRxEEKkZNPOoFX/vZ6xHNmxk9+eit19XWcdMIIHrj3t8e4dclNz7iJiIgkmpxeUDDOt1QgZ0w8jdzc3IjnamprOVRTQ3p6BiO+VnyMW5b8FLiJiIgku5qdsHtd1Fafjh41ksbGxiNek5OTzbwr50Tl8+RLmioVERFJZjHI+3Zcn9506pRHXV1dxPM5OTncdP2PycuLPConX51G3ERERJJVDPO+jRt9asRyM2PY0MF88+xvHPVnyOEUuImIiCSrGOZ9O33iePIiPOeWlZXJgpuvx8yO+jPkcArcREREklUM876NGT3ysM3ls7OzmDHt2xQNGnjU95fIFLiJiIgkq+a8b+m5kNkl8DVKed969SygS5f88I/LzmH+lXOP+t7SOi1OEBERSWYxzPt22rjR/PmllwFvQcINPyY3Nydq95fDxXTEzcy+ZWYfmVmJmd0c4Xy2mT3pnX/bzIq88tPNbKOZrTOzYV5ZNzNbbZo0FxER6ZgY5X37+vhx5OXlYmYMHzaYcyadGdX7y+FiFriZWTpwLzAVOAGYZWYntLjsSuAz59ww4H+A273yG4CLgFuAa7yyBcBtruXeGiIiIuKL0aNGUl9XT1ZmJgtuvkELEo6BWI64nQaUOOe2OefqgCeAaS2umQb8wXv/NPBNb0StHsgF8oB6MxsK9HfOvRbD9oqIiEgHFPToTq9ePblw+nkMGljod3NSgsVqAMvMZgLfcs79wDv+HjDeOfejkGs2eddUeMcfA+OBAcD9wCHge8D/ARY457Ye4fOuBq72Do8HPmpHM3sCuzr4rUniUT+nBvVzalA/x5nsnNysutraeueaohlQpFo/D3LOtWseO5aLEyKNl7bs1IjXOOfWAxMAzOwbQFXgrT1JYDTuBudcdYtKDwAPdKiBZu8658Z2pI4kHvVzalA/pwb1c2pQP7cullOlFUDouOkAAgFYxGvMLAPoCuxpPulNm/4X8Cvg597rMeB/x6zVIiIiInEqloHbOmC4mQ02syzgu8DzLa55HmjegXYm8NcWiw/mAP/XOfcZgefdmrxXXgzbLSIiIhKXYjZV6pxrMLMfAauBdOBh59xmM/sl8K5z7nng98AyMyshMNL23eb6ZpZHIHCb4hX9FngGqAOObnfcL3VoalUSlvo5NaifU4P6OTWon1sRs8UJIiIiIhJd2vJKREREJEEocBMRERFJECkVuJlZkZnNDTmOuOWWxJ8IffcNM/unmTV4OQNbqxdx2zVv0czbZrbV+x3I8sr1O+GjCP18vZl94G2B94qZDWqlnvo5gUTo5/lm9r6ZrTezv0fYZaf5ujleX241szkh5WO8+iVmdnfz1ohm1sPM1njXrzGz7jH/5iSoZT+HlM80M2dmEdN9qJ/b4JxLiReBrbM+AsqBV4HjgB8C93vnvws86Xc79Wp33xUBpwCPAjNbqZcOfAwMAbKADcAJ3rkVwHe99/cD13jv9TsRX/18NpAXcv6w/lA/J9arlX7uEnL+AuClCPV6ANu8r9299929c+8AEwnkBn0RmOqVLwZu9t7fDNzu9/efKq9I/eyV5wOvA2uBsernr/Cz9bsBx+gXKB/4lMCuDHO9f/TzCax4nehdk0EgS7P53V692u67kPOP0HrgNhFYHXL8M+9lXl9ntLxOvxPx2c/eNaOAN9XPiftqZz/PAl6MUHcWsDTkeKlX1hf4MNJ1BAKHvt77vsBHfv8MUuF1pH4G7gLOIxDMRQrc1M9tvFJlqrSJwF/iXQCcc6XOuX1AfwJ/DeCcawD2AgV+NVIiaq3v2iPYv54Kr6wA+Nzr89DysDr6nTim2tPPVxL4K7sl9XPiaLWfzexab9vDxUROst5aP/f33rcsB+jjnNvhfdYOoHf0vhU5goj9bGajgELn3J+OUFf93IZYbnkVN5xzB8zscuA24DgzOwlYSPu25RIftdZ3zrmD7ajeWv8eqd/1O+GDtvrZzC4DxgJnRaiufk4QR+pn59y9wL1mdimBHXPmtKj+VfpZfHCEf3P/h8AI3JGon9uQKiNuuEDC34sJ/DXXC7iBNrbckvjQSt+1R2vbru0Cunl9HloeVke/E8dWa/1sZpOBW4ELnHO1EaqqnxNIO/57fgKYHqFqa/1c4b1vWQ5QbWZ9Abyvnx5t+6V9IvTzfwInAa+aWSmB/cifj7BAQf3chpQI3Mysc8hqtH3AvwjMwbe15Zb47Ah9d6Q6H3pvI2675vXx3wj0OQR+B1Z57/U74YPW+tmbWllKIGj7tEUd9XOCOUI/Dw+57NvAVu/6/mb2ile+GphiZt29VYNTCDyzuAPYZ2YTvFWGlxO5n0P7X2KolX7u5Jzr6Zwrcs4VEViccIFz7l31cwf5/ZDdsXgRWJnyEvAu8AnwGoG58RzgKaCEwGqVIX63Va929904An+BHQB2A5u963sS8mAq8B/AFgKrDm8NKR/i9XmJ9zuQ7ZXrdyK++vlloBpY772eVz8n7usI/bwE2Oz18d+AE73rxxK+8OT7Xp+VAFeElI8FNnn9fw9f7gpUALxCIBB8Bejh988gFV6t9XOLa17FW5ygfu7YK6W2vPJyNU1yzj3ib0uko9rbd2Z2HoF/hO8+Bs2SKFM/p4YO9POPgO0uMO0mCUb9HBupFrh1A4qcc+v9bot0jPouNaifU4P6OTWon2MjpQI3ERERkUSWEosTRERERJKBAjcRERGRBKHATURERCRBKHATEV+YWaOZrQ953Ryl+/Yzs6ejca9EZGaTzOxIWwqJSAJLiS2vRCQuHXLOnfpVKppZhvtyD9Iwzrkqvky6G3fMLN051+h3O0QkMWnETUTiipktNLN1ZrbJzB7wsqRjZq+a2W1m9hpwnZk9YmZ3m9lbZrbNzGZ61xWZ2Sbv/Vwze9bMXjKzrWa2OORzrjSzLd59HzSze7zyi73P3mBmr0do3yQze93MnjOzD8zsfjNL885NMbN/mNk/zewpM+vslZd639ffCWwD1HyvdK/tZmbdzKzJzL7hnXvDzIaZWScze9j7mfw/M5sWUvcOr3yjmc2L0NZxXp0h0eofEfGXAjcR8Utui6nSS7zye5xz45xzJwG5wHkhdbo5585yzt3pHfcFzvCu+e9WPudU4BLgZOASMys0s37AAgL7JZ4LfC3k+oXA/3LOjQQuaOWepxHYY/NkYChwoZn1JLA5+mTn3GgCWeOvD6lT45w7wzn3RHOBN/K2BTjB+z7eA840s2xggHOuhMA+rX91zo0DzgbuMLNOwJXAXq98HHCVmQ1uvreZfR24H5jmnNvWyvchIglGU6Ui4pfWpkrPNrMbgTygB4GtkF7wzj3Z4tqVzrkm4AMz69PK57zinNsLYGYfAIMIbJn1mnNuj1f+FFDsXf8m8IiZrQCebeWe7zQHQ2b2OIGgq4ZAAPamN0iYBfwjpE7Ltjd7A/gGMBj4DXAVgS2C1nnnpwAXmNlPveMcYKBXfkrzSCPQFRgO1AEjgAeAKd7UsYgkCQVuIhI3zCwHuI/AHoblZraIQKDS7ECLKrWh1Vu5beg1jQT+v9fatTjn5pvZeAKbna83s1Odc7tbXhbh2IA1zrlZrdy6ZdubvQHMB/oRGO37T2AS0DxNa8BFzrmPQit5U8g/ds6tblE+CdhB4Oc2ClDgJpJENFUqIvGkOUjb5T0fFqtFBu8AZ5lZdzPLAC5qPmFmQ51zbzvnFgK7gMII9U8zs8Hes22XAH8H1gKnm9kw7z55ZlYcoW5LbwNfB5qcczUENlqfRyCgA1gN/DjkWb9RIeXXmFmmV17sTaECfE4g8LzNC+REJEloxE1E/JJrZqF7GL7knLvZzB4E3gdK+XK6MKqcc5VmdhuBoKkK+ADY652+w8yGExjpegXYEOEW/yDwTN3JBEbGnnPONZnZXOBx7xk1CDzztqWNttSaWTmBwA8CAdssAj8DgF8BdwEbveCtlMAzfQ8BRcA/vfKdwPSQ+1ab2fnAi2b2fefc2239XEQk/mmvUhFJSWbW2Tm33xtxew542Dn3XDvqTQJ+6pw7r61rRUSiTVOlIpKqFnkjfpuAT4CVPrdHRKRNGnETERERSRAacRMRERFJEArcRERERBKEAjcRERGRBKHATURERCRBKHATERERSRD/H0od0I5PPIIXAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 720x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(10, 10))\n",
"\n",
"# Scatter plot of abs data\n",
"earnings_vals[['Earnings Bin Int', 'All ages prop']].drop(earnings_vals.tail(1).index).\\\n",
" plot(kind='scatter', x='Earnings Bin Int', y='All ages prop', ax=ax);\n",
"\n",
"# Continue with imputed data\n",
"imputed_df.plot(kind='scatter', x='Earnings Bin Int', y='All ages prop', color='orange', ax=ax);\n",
"\n",
"# Change legend names\n",
"ax.legend(labels=['ABS', 'Imputed from the \"$2500+ bin\"'])\n",
"\n",
"# Label and set axis\n",
"ax.set_xlim(right=4500);\n",
"ax.set_ylim(bottom=0);\n",
"ax.set_xlabel(\"Earnings per week\")\n",
"ax.set_ylabel(\"Percentage of population in given bin\")\n",
"\n",
"# Format axis\n",
"ax.yaxis.set_major_formatter(FuncFormatter(to_percentage))\n",
"ax.xaxis.set_major_formatter(FuncFormatter(to_dollars))\n",
"\n",
"# Add annotation\n",
"not_the_top_end_of_town = 3838\n",
"ax.annotate('~$200,000 per year',\n",
" xy=(not_the_top_end_of_town, 0.0),\n",
" xycoords='data',\n",
" xytext=(-50,75),\n",
" textcoords='offset points',\n",
" arrowprops=dict(headwidth=10, width=4, color='#363d46'), fontsize=12);\n",
"\n",
"ax.set_title(\"Distribution of income per bin\");\n",
"\n",
"plt.show();\n",
"\n",
"savefig(\"income_per_bin.png\");"
]
}
],
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment