{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ONS Boundaries - Choropleth Demo\n", "\n", "Fragments associated with grabbing boundaries data.\n", "\n", "*Note that a full demo using all local authority ditricts kills MyBinder demo.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Local Authority Districts (December 2016) Generalised Clipped Boundaries in the UK\n", "Get the boundaries for Local Authority areas:\n", "\n", "http://geoportal.statistics.gov.uk/datasets/7ff28788e1e640de8150fb8f35703f6e_2" ] }, { "cell_type": "code", "execution_count": 1, "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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
objectidlad16cdlad16nmlad16nmwbng_ebng_nlonglatst_areashast_lengthsgeometry
01E06000001HartlepoolNone447157531476-1.2702354.6761599.359786e+0769382.685924(POLYGON ((447097.0010000002 537152.0011, 4472...
12E06000002MiddlesbroughNone451141516887-1.2109954.5446705.387900e+0742085.584812(POLYGON ((449861.8997999998 521260.6998999994...
23E06000003Redcar and ClevelandNone464359519597-1.0061154.5675202.448388e+0896189.660709(POLYGON ((455776.7005000003 528322.4985000007...
34E06000004Stockton-on-TeesNone444937518183-1.3066954.5569112.049366e+08115439.477112(POLYGON ((444126.0993999997 528005.7992000002...
410E06000010Kingston upon Hull, City ofNone511894431716-0.3038053.7697917.145577e+0763330.240277(POLYGON ((510966.6001000004 436533.0030000005...
\n", "
" ], "text/plain": [ " objectid lad16cd lad16nm lad16nmw bng_e bng_n \\\n", "0 1 E06000001 Hartlepool None 447157 531476 \n", "1 2 E06000002 Middlesbrough None 451141 516887 \n", "2 3 E06000003 Redcar and Cleveland None 464359 519597 \n", "3 4 E06000004 Stockton-on-Tees None 444937 518183 \n", "4 10 E06000010 Kingston upon Hull, City of None 511894 431716 \n", "\n", " long lat st_areasha st_lengths \\\n", "0 -1.27023 54.676159 9.359786e+07 69382.685924 \n", "1 -1.21099 54.544670 5.387900e+07 42085.584812 \n", "2 -1.00611 54.567520 2.448388e+08 96189.660709 \n", "3 -1.30669 54.556911 2.049366e+08 115439.477112 \n", "4 -0.30380 53.769791 7.145577e+07 63330.240277 \n", "\n", " geometry \n", "0 (POLYGON ((447097.0010000002 537152.0011, 4472... \n", "1 (POLYGON ((449861.8997999998 521260.6998999994... \n", "2 (POLYGON ((455776.7005000003 528322.4985000007... \n", "3 (POLYGON ((444126.0993999997 528005.7992000002... \n", "4 (POLYGON ((510966.6001000004 436533.0030000005... " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import geopandas\n", "\n", "#From the downloads area of the page, grab the link for the shapefile download\n", "url='https://opendata.arcgis.com/datasets/7ff28788e1e640de8150fb8f35703f6e_2.zip?outSR=%7B%22wkid%22%3A27700%2C%22latestWkid%22%3A27700%7D'\n", "gdf = geopandas.read_file(url)\n", "\n", "#The .head() method limits the display of the table to the top few rows;\n", "# THings like .head(20) to preview first 20 rows also works\n", "gdf.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can check the projection:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'proj': 'tmerc',\n", " 'lat_0': 49,\n", " 'lon_0': -2,\n", " 'k': 0.9996012717,\n", " 'x_0': 400000,\n", " 'y_0': -100000,\n", " 'datum': 'OSGB36',\n", " 'units': 'm',\n", " 'no_defs': True}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gdf.crs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And preview the shapefile:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "gdf.plot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can easily add a title to the plot:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Turn the plot into soemthing we can reference\n", "ax = gdf.plot()\n", "\n", "#Add a title\n", "ax.set_title('Local Authorities in the UK')\n", "\n", "#Turn off axes\n", "ax.axis('off');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interactive Maps\n", "\n", "Preview shapes from the first few rows using the `folium` package:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import folium\n", "\n", "m = folium.Map(max_zoom=6, location=[53.9, 0.0])\n", "folium.GeoJson(gdf.head()).add_to(m)\n", "m" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "#You can download a copy of the actual boundary data file if required\n", "# !wget https://opendata.arcgis.com/datasets/52182cdda64d4b15984f6446ca7ee7fd_1.zip?outSR=%7B%22wkid%22%3A27700%2C%22latestWkid%22%3A27700%7D -O wards_fullextent.zip\n", "# !unzip wards_fullextent.zip" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Grab Data to Map Against\n", "\n", "Let's get some data to use as the basis of a choropleth map.\n", "\n", "We can use something from deprivation indices (we really should check we grabbed boundary files for the correct period...)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "#https://www.gov.uk/government/statistics/english-indices-of-deprivation-2015\n", "#File 10: local authority district summaries\n", "\n", "data_url = 'https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/464464/File_10_ID2015_Local_Authority_District_Summaries.xlsx'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Download the data into a `pandas` dataframe. The orginal file is an Excel spreadsheet with mutliple sheets, so let's load them all and preview the sheetnames:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Notes\n", "IMD\n", "Income\n", "Employment\n", "Education\n", "Health\n", "Crime\n", "Barriers\n", "Living\n", "IDACI\n", "IDAOPI\n" ] } ], "source": [ "import pandas as pd\n", "\n", "df = pd.read_excel(data_url, sheet_name=None)\n", "\n", "for k in df.keys():\n", " print(k)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We an the preview the data in a single sheet:" ] }, { "cell_type": "code", "execution_count": 9, "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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Local Authority District code (2013)Local Authority District name (2013)Education, Skills and Training - Average rankEducation, Skills and Training - Rank of average rankEducation, Skills and Training - Average scoreEducation, Skills and Training - Rank of average scoreEducation, Skills and Training - Proportion of LSOAs in most deprived 10% nationallyEducation, Skills and Training - Rank of proportion of LSOAs in most deprived 10% nationally
0E06000001Hartlepool20101.487230.510470.206937
1E06000002Middlesbrough22728.012440.64030.44191
2E06000003Redcar and Cleveland19185.289527.875710.181854
3E06000004Stockton-on-Tees16660.0915024.6371100.175059
4E06000005Darlington16385.0615522.5691290.138575
\n", "
" ], "text/plain": [ " Local Authority District code (2013) Local Authority District name (2013) \\\n", "0 E06000001 Hartlepool \n", "1 E06000002 Middlesbrough \n", "2 E06000003 Redcar and Cleveland \n", "3 E06000004 Stockton-on-Tees \n", "4 E06000005 Darlington \n", "\n", " Education, Skills and Training - Average rank \\\n", "0 20101.48 \n", "1 22728.01 \n", "2 19185.28 \n", "3 16660.09 \n", "4 16385.06 \n", "\n", " Education, Skills and Training - Rank of average rank \\\n", "0 72 \n", "1 24 \n", "2 95 \n", "3 150 \n", "4 155 \n", "\n", " Education, Skills and Training - Average score \\\n", "0 30.510 \n", "1 40.640 \n", "2 27.875 \n", "3 24.637 \n", "4 22.569 \n", "\n", " Education, Skills and Training - Rank of average score \\\n", "0 47 \n", "1 3 \n", "2 71 \n", "3 110 \n", "4 129 \n", "\n", " Education, Skills and Training - Proportion of LSOAs in most deprived 10% nationally \\\n", "0 0.2069 \n", "1 0.4419 \n", "2 0.1818 \n", "3 0.1750 \n", "4 0.1385 \n", "\n", " Education, Skills and Training - Rank of proportion of LSOAs in most deprived 10% nationally \n", "0 37 \n", "1 1 \n", "2 54 \n", "3 59 \n", "4 75 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Education'].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate a Choropleth Map\n", "\n", "It's easy enough to combine data from a `pandas` data frame with shape data in a `geopandas` dataframe.\n", "\n", "The `geopandas` dataframe is used to create a geojson file that the `folium` package can render. Each column name in the `geopandas` dataframe is mapped onto a corresponding `feature.properties.COLUMN_NAME` in the created geojson file. (I'm not sure offhand how column names that include space or punctuation characters are handled: simple column names are easiest.)\n", "\n", "The data file is also passed in and the key and data columns identified as `columns=[KEYCOL, DATACOL]`.\n", "\n", "The rendered choropleth map is then coloured accordingly." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import folium\n", "\n", "m = folium.Map(max_zoom=9, location=[54.5, -0.8])\n", "folium.Choropleth(gdf.head(), key_on='feature.properties.lad16cd',\n", " data=df['Education'], \n", " columns=['Local Authority District code (2013)',\n", " 'Education, Skills and Training - Rank of average rank'],\n", " fill_color='YlOrBr').add_to(m)\n", "m" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we try to render the whole of the UK in a MyBinder session, things crash. (I think `geopandas` is quite heavy on resources.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exploring the Data\n", "\n", "We can exploit the notebook environment further by reating a simple application to explore the data more generally.\n", "\n", "For example, within the `Education` data sheet, we can explore choropleth maps generated from other columns.\n", "\n", "We can create tidied up names for the data selection that then refer back to the original column name:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'Average rank': 'Education, Skills and Training - Average rank',\n", " 'Rank of average rank': 'Education, Skills and Training - Rank of average rank',\n", " 'Average score': 'Education, Skills and Training - Average score',\n", " 'Rank of average score': 'Education, Skills and Training - Rank of average score',\n", " 'Proportion of LSOAs in most deprived 10% nationally': 'Education, Skills and Training - Proportion of LSOAs in most deprived 10% nationally',\n", " 'Rank of proportion of LSOAs in most deprived 10% nationally': 'Education, Skills and Training - Rank of proportion of LSOAs in most deprived 10% nationally'}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#We can create a drop down list with values in the list that map onto column names\n", "#A python dict is the data structure that lets us do this\n", "\n", "#We use a technique called a dict comprehension to create the dict from a list of column names\n", "#The split separates the column names on '-' elements into two parts\n", "#The parts are refenced by a numercial index value, starting at 0\n", "#Index value 1 is the second item in the split list\n", "#The .strip() command gets rid of leading/trailing whitespace in the string\n", "datacols = {c.split('-')[1].strip():c for c in df['Education'].columns if c.startswith('Education')}\n", "datacols" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2fec38d5a86f410f82184a43358b0f0e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='Indicator', index=1, options={'Average rank': 'Education, Skills a…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ipywidgets import interact\n", "\n", "@interact(Indicator=datacols)\n", "def plotEducationChoropleth(Indicator='Education, Skills and Training - Rank of average rank'):\n", " m = folium.Map(max_zoom=9, location=[54.5, -0.8])\n", " folium.Choropleth(gdf.head(), key_on='feature.properties.lad16cd',\n", " data=df['Education'], \n", " columns=['Local Authority District code (2013)',\n", " Indicator],\n", " fill_color='YlOrBr').add_to(m)\n", " return m" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding Data into Geodataframes\n", "\n", "We can merge data into the geodataframe using common columns and then directly plot choropleth maps by selecting the data column we want to plot against." ] }, { "cell_type": "code", "execution_count": 13, "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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", "
objectidlad16cdlad16nmlad16nmwbng_ebng_nlonglatst_areashast_lengthsgeometryLocal Authority District code (2013)Local Authority District name (2013)Education, Skills and Training - Average rankEducation, Skills and Training - Rank of average rankEducation, Skills and Training - Average scoreEducation, Skills and Training - Rank of average scoreEducation, Skills and Training - Proportion of LSOAs in most deprived 10% nationallyEducation, Skills and Training - Rank of proportion of LSOAs in most deprived 10% nationally
01E06000001HartlepoolNone447157531476-1.2702354.6761599.359786e+0769382.685924(POLYGON ((447097.0010000002 537152.0011, 4472...E06000001Hartlepool20101.487230.510470.206937
12E06000002MiddlesbroughNone451141516887-1.2109954.5446705.387900e+0742085.584812(POLYGON ((449861.8997999998 521260.6998999994...E06000002Middlesbrough22728.012440.64030.44191
23E06000003Redcar and ClevelandNone464359519597-1.0061154.5675202.448388e+0896189.660709(POLYGON ((455776.7005000003 528322.4985000007...E06000003Redcar and Cleveland19185.289527.875710.181854
34E06000004Stockton-on-TeesNone444937518183-1.3066954.5569112.049366e+08115439.477112(POLYGON ((444126.0993999997 528005.7992000002...E06000004Stockton-on-Tees16660.0915024.6371100.175059
410E06000010Kingston upon Hull, City ofNone511894431716-0.3038053.7697917.145577e+0763330.240277(POLYGON ((510966.6001000004 436533.0030000005...E06000010Kingston upon Hull, City of25257.92344.13410.42172
\n", "
" ], "text/plain": [ " objectid lad16cd lad16nm lad16nmw bng_e bng_n \\\n", "0 1 E06000001 Hartlepool None 447157 531476 \n", "1 2 E06000002 Middlesbrough None 451141 516887 \n", "2 3 E06000003 Redcar and Cleveland None 464359 519597 \n", "3 4 E06000004 Stockton-on-Tees None 444937 518183 \n", "4 10 E06000010 Kingston upon Hull, City of None 511894 431716 \n", "\n", " long lat st_areasha st_lengths \\\n", "0 -1.27023 54.676159 9.359786e+07 69382.685924 \n", "1 -1.21099 54.544670 5.387900e+07 42085.584812 \n", "2 -1.00611 54.567520 2.448388e+08 96189.660709 \n", "3 -1.30669 54.556911 2.049366e+08 115439.477112 \n", "4 -0.30380 53.769791 7.145577e+07 63330.240277 \n", "\n", " geometry \\\n", "0 (POLYGON ((447097.0010000002 537152.0011, 4472... \n", "1 (POLYGON ((449861.8997999998 521260.6998999994... \n", "2 (POLYGON ((455776.7005000003 528322.4985000007... \n", "3 (POLYGON ((444126.0993999997 528005.7992000002... \n", "4 (POLYGON ((510966.6001000004 436533.0030000005... \n", "\n", " Local Authority District code (2013) Local Authority District name (2013) \\\n", "0 E06000001 Hartlepool \n", "1 E06000002 Middlesbrough \n", "2 E06000003 Redcar and Cleveland \n", "3 E06000004 Stockton-on-Tees \n", "4 E06000010 Kingston upon Hull, City of \n", "\n", " Education, Skills and Training - Average rank \\\n", "0 20101.48 \n", "1 22728.01 \n", "2 19185.28 \n", "3 16660.09 \n", "4 25257.92 \n", "\n", " Education, Skills and Training - Rank of average rank \\\n", "0 72 \n", "1 24 \n", "2 95 \n", "3 150 \n", "4 3 \n", "\n", " Education, Skills and Training - Average score \\\n", "0 30.510 \n", "1 40.640 \n", "2 27.875 \n", "3 24.637 \n", "4 44.134 \n", "\n", " Education, Skills and Training - Rank of average score \\\n", "0 47 \n", "1 3 \n", "2 71 \n", "3 110 \n", "4 1 \n", "\n", " Education, Skills and Training - Proportion of LSOAs in most deprived 10% nationally \\\n", "0 0.2069 \n", "1 0.4419 \n", "2 0.1818 \n", "3 0.1750 \n", "4 0.4217 \n", "\n", " Education, Skills and Training - Rank of proportion of LSOAs in most deprived 10% nationally \n", "0 37 \n", "1 1 \n", "2 54 \n", "3 59 \n", "4 2 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Merge in data\n", "gdf = pd.merge(gdf, df['Education'], \n", " how='inner', #The type of join (what happens if data is in one dataset and not the other)\n", " left_on='lad16cd', #Column we're merging on in left dataframe\n", " right_on='Local Authority District code (2013)'#Column we're merging on in right dataframe\n", " )\n", "gdf.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now create a choropleth directly from the dataframe with an inline (non-interactive) plot:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = gdf.plot(column='Education, Skills and Training - Average rank')\n", "ax.axis('off');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once again, we can create a simple widget driven app to allow us to explore the data more dynamically. Note also that alternative colour map palettes are available:" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b4ec4f813cc44b7ab151c0a2d963b977", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='Indicator', index=1, options={'Average rank': 'Education, Skills a…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "@interact(Indicator=datacols)\n", "def plotEducationChoropleth2(Indicator='Education, Skills and Training - Rank of average rank'):\n", " ax = gdf.plot(column=Indicator, cmap='OrRd')\n", " ax.axis('off');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot a region and it's neighbouring regions\n", "\n", "We can reason about shapes in a limited number of ways. For example, we can tell if one boundary touches another. This means that we can plot a region and the areas that border on it." ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "#Via https://gis.stackexchange.com/a/300262/119781\n", "\n", "def plotNeighbours(gdf, region='Milton Keynes',\n", " indicator='Education, Skills and Training - Rank of average rank',\n", " cmap='OrRd'):\n", " ''' Plot choropleth for an indicator relative to a specified region and its neighbours. '''\n", " \n", " targetBoundary = gdf[gdf['lad16nm']==region]['geometry'].values[0] \n", " neighbours = gdf.apply(lambda row: row['geometry'].touches(targetBoundary) or row['geometry']==targetBoundary ,\n", " axis=1)\n", " \n", " #Show the data for the selected area and its neighbours\n", " display(gdf[neighbours][['lad16nm',indicator]].set_index('lad16nm'))\n", " \n", " #Generate choropleth\n", " ax = gdf[neighbours].plot(column=indicator, cmap=cmap)\n", " ax.axis('off');" ] }, { "cell_type": "code", "execution_count": 64, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Education, Skills and Training - Rank of average rank
lad16nm
Milton Keynes197
Bedford160
Central Bedfordshire186
Aylesbury Vale254
Wellingborough67
South Northamptonshire293
\n", "
" ], "text/plain": [ " Education, Skills and Training - Rank of average rank\n", "lad16nm \n", "Milton Keynes 197 \n", "Bedford 160 \n", "Central Bedfordshire 186 \n", "Aylesbury Vale 254 \n", "Wellingborough 67 \n", "South Northamptonshire 293 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plotNeighbours(gdf)" ] }, { "cell_type": "code", "execution_count": 62, "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", " \n", " \n", " \n", " \n", "
Education, Skills and Training - Rank of average rank
lad16nm
Portsmouth38
Fareham278
Havant73
Winchester312
\n", "
" ], "text/plain": [ " Education, Skills and Training - Rank of average rank\n", "lad16nm \n", "Portsmouth 38 \n", "Fareham 278 \n", "Havant 73 \n", "Winchester 312 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plotNeighbours(gdf, 'Portsmouth')" ] }, { "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.6.7" } }, "nbformat": 4, "nbformat_minor": 2 }