Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@maptastik
Last active July 9, 2019 12:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maptastik/a35a570c06a5c7809ca51e6f5c0e3fa3 to your computer and use it in GitHub Desktop.
Save maptastik/a35a570c06a5c7809ca51e6f5c0e3fa3 to your computer and use it in GitHub Desktop.
Plotting data-driven proportional symbol markers with geopandas
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Creating proportional symbols with geopandas"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import geopandas as gpd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test Data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>POINT (-78.64273309707642 35.77773168047123)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>POINT (-78.63906383514404 35.78044734737985)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>5</td>\n",
" <td>POINT (-78.6355447769165 35.78309329257846)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>7</td>\n",
" <td>POINT (-78.63586664199829 35.7775053707084)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>9</td>\n",
" <td>POINT (-78.62507343292236 35.7857217430409)</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value geometry\n",
"0 1 POINT (-78.64273309707642 35.77773168047123)\n",
"1 3 POINT (-78.63906383514404 35.78044734737985)\n",
"2 5 POINT (-78.6355447769165 35.78309329257846)\n",
"3 7 POINT (-78.63586664199829 35.7775053707084)\n",
"4 9 POINT (-78.62507343292236 35.7857217430409)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdf = gpd.read_file('https://gist.githubusercontent.com/maptastik/a35a570c06a5c7809ca51e6f5c0e3fa3/raw/efcfe465f94d271ea02f667e42af38f8a31911e1/numeric_test_points.geojson')\n",
"gdf.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basic Plot\n",
"\n",
"It's pretty straightforward to plot locations using geopandas. Just run the `.plot()` method a GeoDataFrame and under the hood, matplotlib will draw the plot."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig1 = gdf.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Style markers using matplotlib\n",
"\n",
"Since geopandas uses matplotlib as its default plot renderer, we can use matplotlib styling parameters to customize plotted features."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig2 = gdf.plot(marker = 'o', color = 'None', edgecolors = 'b', markersize = 100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data-driven styling\n",
"\n",
"We can use data in a geodataframe to style each plotted feature by passing a pandas Series as a parameter value. As matplotlib moves through each row in you GeoDataFrame, it will apply the value at the same index in the Series passed to the parameter.\n",
"\n",
"Let's say we want to define the marker size based on the `value` column in `gdf`. First we can select that column from our GeoDataFrame."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"1 3\n",
"2 5\n",
"3 7\n",
"4 9\n",
"Name: value, dtype: int64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s = gdf['value']\n",
"s"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With our series defining the marker size of each marker established, we can pass the series as a value for the `markersize` parameter. Note that [matplotlib marker size is based on area rather than radius or width and height](https://stackoverflow.com/a/47403507/3163905). It will probably require a little extra math to make your marker size difference really show. "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig2 = gdf.plot(marker = 'o', color = 'None', edgecolors = 'b', markersize = (s**2)*5)"
]
}
],
"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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment