Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save jorisvandenbossche/5d5d8b452c7392de0a8242113497753e to your computer and use it in GitHub Desktop.

Select an option

Save jorisvandenbossche/5d5d8b452c7392de0a8242113497753e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# GOAL MAP\n",
"\n",
"![](https://www.earthdatascience.org/images/courses/earth-analytics-python/04-spatial-data/2018-02-05-spatial-data-landing-page/2018-02-05-spatial-data-landing-page_9_0.png\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import geopandas\n",
"import matplotlib.pyplot as plt\n",
"from shapely.geometry import Polygon, Point, LineString"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Create color dictionaries for points and lines\n",
"roads_symb = {'M': 'black',\n",
" 'S': 'blue',\n",
" 'C': 'grey',\n",
" 'Unknown': 'lightgrey'}\n",
"points_symb = {'trees': 'chartreuse',\n",
" 'grass': 'darkgreen',\n",
" 'soil': 'burlywood'}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Create some data\n",
"pts = np.array([[2, 2], [3, 4], [9, 8], [-12, -15]])\n",
"gdf_points = geopandas.GeoDataFrame(\n",
" [Point(xy) for xy in pts],\n",
" columns=[\"geometry\"],\n",
" crs={\"init\": \"epsg:4326\"},\n",
")\n",
"gdf_points[\"type\"] = [\"trees\", \"grass\", \"soil\", \"soil\"]\n",
"\n",
"# lines\n",
"linea = LineString([(1, 1), (2, 2), (3, 2), (5, 3)])\n",
"lineb = LineString([(3, 4), (5, 7), (12, 2), (10, 5), (9, 7.5)])\n",
"gdf_lines = geopandas.GeoDataFrame(\n",
" [1, 2], geometry=[linea, lineb], crs={\"init\": \"epsg:4326\"}\n",
")\n",
"gdf_lines[\"type\"] = [\"M\", \"S\"]\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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>geometry</th>\n",
" <th>type</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>POINT (2.00000 2.00000)</td>\n",
" <td>trees</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>POINT (3.00000 4.00000)</td>\n",
" <td>grass</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>POINT (9.00000 8.00000)</td>\n",
" <td>soil</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>POINT (-12.00000 -15.00000)</td>\n",
" <td>soil</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" geometry type\n",
"0 POINT (2.00000 2.00000) trees\n",
"1 POINT (3.00000 4.00000) grass\n",
"2 POINT (9.00000 8.00000) soil\n",
"3 POINT (-12.00000 -15.00000) soil"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdf_points"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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>0</th>\n",
" <th>geometry</th>\n",
" <th>type</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>LINESTRING (1.00000 1.00000, 2.00000 2.00000, ...</td>\n",
" <td>M</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>LINESTRING (3.00000 4.00000, 5.00000 7.00000, ...</td>\n",
" <td>S</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 geometry type\n",
"0 1 LINESTRING (1.00000 1.00000, 2.00000 2.00000, ... M\n",
"1 2 LINESTRING (3.00000 4.00000, 5.00000 7.00000, ... S"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdf_lines"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Standard plot:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f04f5d60d68>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQ0AAAD4CAYAAAD2OrMWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deVyVZfr48c/NJrhV5hKJiY4rsgkCkgtWImqlo+Y2OYFGaYstmtP4bZG033yd0cmyGm0ql9dUyuikWd9Sx3F8pWYqLrnlkoiJOoE6Emis5/r9gZ1AATkcDufgud6vFy84z3I/1znC5X1fz3M/jxERlFKqujycHYBSqn7RpKGUsokmDaWUTTRpKKVsoklDKWUTL2cHUFbz5s0lMDDQ2WEo5fZ27dp1TkRaVLTOpZJGYGAgaWlpzg5DKbdnjDlZ2TodniilbKJJQyllE00aSimbaNJQStlEk4ZSTlZckEdJwSVnh1FtLnX2RCl3UpibRda+NRRd/i8I+DRuTsuwoXg3aubs0KqkPQ2lnMBSXMDZHR9SlHcOLCUgJRTm/sCZHR9gKSl2dnhV0qShlBPknf0WsViuWS4lRVzOOuqEiKpPk4ZSTlCcn4NYiq5ZLpYSivNznRBR9WnSUMoJGtx0O8bT+5rlxsOTBjfd5oSIqk+ThlJO0LDFr/Bu2Azj4fnLQg8vfJq0wveWO5wXWDXo2ROlnMAYD/yjH+Tiia/JO3MAYwyNW4dyU2AMxhhnh1clTRpKOYmHlw/NOvYlq6Qv//43PNbX2RFVjw5PlHKy5cvh8cfhxAlnR1I9mjSUcrKHHwYPD3jvPWdHUj2aNJRysjZtYPBgWLQIiq49C+tyNGkot3ThAgwbBh984OxISk2cCP/5D3z6qbMjuT5NGsotPf00rF4Nv/0tPPgg5OQ4N56BAyEgAN55x7lxVIcmDeV21qwp7WG88ALMmgWpqRAWBlu3Oi8mL6/S2sb69a5fENWkodzKhQulQ4GwMHj5ZXjxRdiyBTw9oW9fmDEDip00X6y+FEQ1aSi38vTTcO4cLFkCPj6ly3r2hD17YNw4mDkT+vSB9PS6j62+FEQ1aSi38fOw5H/+B8LDy69r2hSWLoVly+Dbb0vXO6NIWh8Kopo0lFsoOyx54YXKtxszBr75pnQ7ZxRJ60NBVJOGcgsVDUsq07YtbNrknCJpfSiIatJQN7yqhiWV8fR0XpHU1QuimjTUDa26w5LKOKNI6uoFUU0a6oZmy7CkMs4okrpyQVSThrph1WRYUpW6LJK6ckFUk4a6Idk7LKlMXRVJvbwgOdk1C6KaNNQNqTaGJZWpqyLphAmuWRDVpKFuOLU9LKnM1UXSvn1rt0jqqgVRhycNY0yGMWa/MWavMSbN0cdT7s1Rw5LKlC2SHjpU+0VSVyyI1lVP4y4RCReRHnV0POWmHDksqYqjiqSuWBDV4Ym6YdTVsKQyjiiSli2IfvddrYRpt7pIGgKsN8bsMsY8evVKY8yjxpg0Y0xadnZ2HYSjbkR1PSypjCOKpMnJ0LAhPPkkiNRerDUmIg79Am6/8r0l8A3Qt7JtIyMjRamaGDdOxMtLZM8eZ0fyi5wckYceEgGR2FiR48dr3tabb5a28957tRdfVYA0qeTv1OE9DRE5c+V7FrAKiHb0MZV7cfawpDK1WSR9/HGIi4MpU+DUqdqN01YOTRrGmEbGmCY//wwMAA448pjKvbjKsKQqtVEk9fAoPfVaXAyPPOLcYYqjexqtgC3GmG+AHcD/ichaBx9TuRFnnS2xVW0USdu3hz/+EdatK00gTlPZuMUZX1rTUNeTlpEmw94eJp1e6CS9H/+TgMjLLzs7Ktts2ybSvr2Ih0dp7EVF1d+3pEQkLk6kaVOR7793WIjOrWkoVVv+ffjf9P1TX1bvXc3Rk9lsWTwOc+s+Bvxmp7NDs4k9V5K6wjBFk4aqN5786EkuF14uPSv39RuQ3xzp+xC/W/WMs0OzmT1FUmcPUzRpqHqhuKSYb89+W/qixAfym0P4H+DWb0jLqL+zE2paJHXm2RRNGqpe8PTwpFGDRldeFELCYOg+C4BmjZo5MTL71aRI6sxhiiYNVS8YY5h892Qa+jS8sgDwKKGhT0OmDpjq1NhqQ02uJHXWMEWThqo3Zg6dybiYcTTwakBT36b4evsyqe8kpsRPcXZotcbWIqkzhilGXOJi9lI9evSQtLT6Oz5VdeO/l/7L9xe+p13zdjT1a+rscBxm+XKYNAksFvjLX0oTSUXS0yEkpPSmx198AcbYf2xjzC6pZFa69jRUvXNLo1sIaxN2QycMqH6RtK6HKZo0lHJh1S2S1uUwRZOGUi6uOkXSujyboklDuaWcnBzSnfFoeDtcr0haV8MUTRrKreTk5DBr1iwCAwNJTk52djg2u96VpHUxTNGkodxC2WTx8ssvExcXx9y5c50dVo1VViStk2FKZTPZnPGls1xVbbt48aLMnDlTbr75ZgFk6NChsmvXLmeHVWuKi0VmzRLx9BRp21Zky5bS5fbe6YsqZrk6PVGU/dKkoWrLjZ4srnb1dPuCAvum0GvSUG7D3ZJFWVffk/Sf/xRp2FAkIUHEYrGtLU0aql4okRL5VlbLSnlQ1shEyZQd1d7XnZPF1ZYtE7npJpEmTUR69qzZMKWqpKGXkSuXYMHCcoaSwSYKycPggRe+9OMVevFcpfvl5OQwf/58XnvtNS5evMjQoUN5+eWXiYiIqMPoXc/Jk6WnZrdsKX3dtCkcOFD6qMfq0MvIlcs7xv9xgn9TSB4AgoUiLvNvXiKX/1yzfUVnQ3bt2sXq1avdPmFA+StJPT3hxx9r72yKl/1NKGW/b1lFEZcoyIVVv4Wzu0uXGwp4m2C8aVhu+wsXLnDp0iXtWVTh5ytJ+/cvPSW7bl3pM2GHDLGvXU0ayiX40JjCXMNHg4VT2yBkLHh4gweetCWMm2lbbns/Pz8efvhhTRbV8POVpG+8AUFB9renNQ3lEo7lbiV+cF++32ZhxDLoNrJ0eQOa8hz/wRs/5wboZqqqaWhPQzldbm4uEwb/nsxtMGqZN6EjfTEYwPAbPtOE4WI0aSinys3NZfDgwWzbto1ly5Zz78i7SWcD3jTiV8TjRQNnh6iuoklDOU35hLGMkSNLxyTBjHZyZKoqespVOUVlCUO5Pk0aqs5pwqjfNGmoOnXp0iVNGPWcJg1Vp3x9fenQoYMmjHpMC6GqTnl6erJ48WJnh6HsoD0NpZRNNGkopWyiSUMpZRNNGkopmzg8aRhjBhpjjhhjvjPG/N7Rx1NKOZZDk4YxxhN4GxgEBAFjjTG1MDlXKeUsju5pRAPfiUi6iBQCy4GhDj6mUsqBHJ00WgNln/OUeWWZlTHmUWNMmjEmLTs728HhKKXs5eikYSpYVu6uPyLyVxHpISI9WrRo4eBwlFL2cnTSyATK3v84ADjj4GMqpRzI0UljJ9DRGNPOGOMDjAHWOPiYSikHcujcExEpNsY8CawDPIFFInLQkcdUSjmWwyesicjnwOeOPo5Sqm7oFaFKKZto0lBK2USThlLKJpo0lFI20aShlLKJJg2llE00aSilbKJJQyllE00aSimbaNJQStlEk4ZSyiaaNJRSNtGkoZSyiSYNpZRNNGkopWyiSUMpZRNNGkopm2jSUErZRJOGUsommjSUUjbRpKGUsokmDaWUTTRpKKVsoklDKWUTTRpKKZs4/Alr6hdFRUVkZmaSn5/v7FCUAsDX15eAgAC8vb2rvY8mjTqUmZlJkyZNCAwMxBjj7HCUmxMRzp8/T2ZmJu3atav2fjo8qUP5+fnceuutmjCUSzDGcOutt9rc89WkUcc0YShXUpPfR00aSimbaNJwM2vXrqVz58506NCB2bNn17idjIwMPvroo1qMTNUXmjTcSElJCU888QRffPEFhw4dYtmyZRw6dKhGbVWVNIqLi+0JU7k4TRpuZMeOHXTo0IH27dvj4+PDmDFj+OSTT2rU1u9//3s2b95MeHg48+bNY8mSJYwcOZL777+fAQMGADBnzhyioqIIDQ1lxowZ1n0/+OADoqOjCQ8PZ+LEiZSUlFBSUkJSUhLBwcGEhIQwb968WnnPqvbpKVc3cvr0adq0aWN9HRAQwPbt22vU1uzZs5k7dy6fffYZAEuWLGHbtm3s27ePZs2asX79eo4dO8aOHTsQEYYMGcKXX35JixYtSE1NZevWrXh7e/P444/z4Ycf0q1bN06fPs2BAwcAuHjxov1vWDmEw5KGMSYFeATIvrLof0Tkc0cdT12fiFyzrDbP5sTHx9OsWTMA1q9fz/r16+nevTsAeXl5HDt2jH379rFr1y6ioqIA+Omnn2jZsiX3338/6enpTJ48mXvvvdfaW1Gux9E9jXkiMtfBx1DVFBAQwKlTp6yvMzMzuf3222ut/UaNGll/FhGmT5/OxIkTy23z5ptvkpiYyP/+7/9es/8333zDunXrePvtt/n73//OokWLai02VXu0puFGoqKiOHbsGCdOnKCwsJDly5czZMiQGrXVpEkTcnNzK12fkJDAokWLyMvLA0qHRllZWdxzzz2sXLmSrKwsAC5cuMDJkyc5d+4cFouFESNGMGvWLHbv3l2juJTjObqn8aQx5iEgDZgqIv+9egNjzKPAowB33HGHg8Nxb15eXrz11lskJCRQUlLChAkT6NatW43aCg0NxcvLi7CwMJKSkrjlllvKrR8wYADffvstsbGxADRu3JgPPviAoKAgXn31VQYMGIDFYsHb25u3334bPz8/xo8fj8ViAaiwJ6Jcg6lonFvtnY3ZANxWwaoXgK+Bc4AAswB/EZlQVXs9evSQtLS0Gsfj6r799lu6du3q7DCUKqei30tjzC4R6VHR9nb1NESkf3W2M8a8C3xmz7GUUq7BYTUNY4x/mZfDgAOOOpZSqu44sqbxJ2NMOKXDkwxgYtWbK6XqA4f1NETktyISIiKhIjJERM466liq+iZMmEDLli0JDg52diiqntJTrm4mKSmJtWvX1tnxSkpK6uxYqm5o0nAzffv2tV61aQ+LxcLjjz9Ot27duO+++xg8eDArV64EIDAwkJkzZ9K7d29WrFjBu+++S1RUFGFhYYwYMYLLly8DsGLFCoKDgwkLC6Nv374AHDx40DovJTQ0lGPHjtkdq6pdOvdE1cjHH39MRkYG+/fvJysri65duzJhwi9n1H19fdmyZQsA58+f55FHHgHgxRdf5P3332fy5MnMnDmTdevW0bp1a+tck4ULF/L000/z4IMPUlhYqD0VF6Q9DVUjW7ZsYeTIkXh4eHDbbbdx1113lVs/evRo688HDhygT58+hISE8OGHH3Lw4EEAevXqRVJSEu+++641OcTGxvKHP/yBP/7xj5w8eRI/P7+6e1OqWjRpqBq53kWBZeehJCUl8dZbb7F//35mzJhhvSflwoULefXVVzl16hTh4eGcP3+e3/zmN6xZswY/Pz8SEhLYuHGjQ9+Hsp0mDVUjvXv35h//+AcWi4UffviBTZs2Vbptbm4u/v7+FBUV8eGHH1qXHz9+nJiYGGbOnEnz5s05deoU6enptG/fnqeeeoohQ4awb9++Ong3yhaaNNzM2LFjiY2N5ciRIwQEBPD+++/XqJ0RI0YQEBBAcHAwEydOJCYmhptuuqnCbWfNmkVMTAzx8fF06dLFunzatGmEhIQQHBxM3759CQsLIzU1leDgYMLDwzl8+DAPPfRQjeJTjmPX3JPapnNP6pe8vDwaN27M+fPniY6OZuvWrdx2W0VTkZQrq9O5J8q93XfffVy8eJHCwkJeeuklTRhuQpOGqrGq6hjqxqU1DTdy6tQp7rrrLrp27Uq3bt144403nBJHcnKy9S7ogYGBnDt3zilxqJrRnoYb8fLy4s9//jMRERHk5uYSGRlJfHw8QUFBdRrHe++9V6fHU7VLexouLIuDfMLDvE8v1vM7fuSMXe35+/sTEREBlN6ur2vXrpw+fdruOC9dusS9995LWFgYwcHBpKamAvCvf/2L7t27ExISwoQJEygoKACgX79+3MgF7xudJg0Xlc5G3iWavSzlFF+xnTf4C8Fc4HittJ+RkcGePXuIiYmxu621a9dy++23880333DgwAEGDhxIfn4+SUlJpKamsn//foqLi1mwYEEtRK6cTZOGCxKET3mEIi4jlF5eXUIhBeSwgel2t5+Xl8eIESN4/fXXadq0qd3thYSEsGHDBp5//nk2b97MTTfdxJEjR2jXrh2dOnUCIDExkS+//NLuYynn06Thgn7iAj+Sec1ywUI6G+xqu6ioiBEjRvDggw8yfPhwu9r6WadOndi1axchISFMnz6dmTNnXvcyc1V/adJwQd40BCp+iJEft1S4vDpEhIcffpiuXbsyZcqUGrdztTNnztCwYUPGjRvHc889x+7du+nSpQsZGRl89913APztb38jLi6u1o6pnEfPnrggb/zoygi+5R+UUFBmeUNieLrG7W7dupW//e1vhISEEB4eDsAf/vAHBg8ebFe8+/fvZ9q0aXh4eODt7c2CBQvw9fVl8eLFjBw5kuLiYqKiopg0aZJdx1GuQS8jr0O2XEZeQB6pDOd7tuCJD8Xk050JDOYtPLSDqGqRXkZ+g2hAYx5iPRc4zkVO0pJuNKaVs8NSSpOGq2vGr2jGr5wdhlJW2s9VStlEk4Ybyc/PJzo6mrCwMLp168aMGTOcEofOPanfdHjiRho0aMDGjRtp3LgxRUVF9O7dm0GDBtGzZ886jUPnntRv2tNwI8YYGjduDJRe5FVUVIQxFV8PYgude+JeNGm4mZKSEsLDw2nZsiXx8fE690TZTJOGm/H09GTv3r1kZmayY8cODhyw/7ncOvfEvWjScFM333wz/fr1q5VHNOrcE/eiScONZGdnW59k9tNPP7Fhw4ZydwevKZ174l707IkbOXv2LImJiZSUlGCxWBg1ahT33Xef3e3q3BP3onNP6tCN9ggDdWOwde6JDk+UUjbRpKGUsokmDTdjjGHq1KnW13PnziUlJcUpsezdu5fPP//cKccGWLJkCU8++SQAq1evtl7a7kwZGRkEBwdXuK7s5fe2qO3P2a6kYYwZaYw5aIyxGGN6XLVuujHmO2PMEWNMgn1hqtrSoEEDPv74Y5eY7+HspFGWqySNqrz33ns1etyESyUN4AAwHCh31Y4xJggYA3QDBgJ/McZ42nksVQu8vLx49NFHmTdv3jXrPv30U2JiYujevTv9+/fnhx9+ACAlJYXExEQGDBhAYGAgH3/8Mb/73e8ICQlh4MCBFBUVAbBr1y7i4uKIjIwkISGBs2fPVhpHYWEhL7/8MqmpqYSHh5OamkrHjh3Jzs4GwGKx0KFDB86dO0dSUhKTJk2iT58+dOrUic8++wwovbp12rRpREVFERoayjvvvHPd97948WI6depEXFwcW7duBeCrr75izZo1TJs2jfDwcI4fP2591APAsWPHiIyMBEon2D3//PNER0cTHR1tPaWcnZ3NiBEjiIqKIioqytp2VV577TWCg4MJDg7m9ddfty4vLi4mMTGR0NBQHnjgAS5fvgyUv/x+/fr1xMbGEhERwciRI8nLywNg586d3HnnnYSFhREdHU1OTs41n7PdRMTuL2AT0KPM6+nA9DKv1wGx12snMjJSbmSHDh1ydgjSqFEjycnJkbZt28rFixdlzpw5MmPGDBERuXDhglgsFhEReffdd2XKlCkiIjJjxgzp1auXFBYWyt69e8XPz08+//xzERH59a9/LatWrZLCwkKJjY2VrKwsERFZvny5jB8/XkREFixYIAsWLLgmlsWLF8sTTzxhfZ2SkiLz5s0TEZF169bJ8OHDRUQkMTFREhISpKSkRI4ePSqtW7eWn376Sd555x2ZNWuWiIjk5+dLZGSkpKenV/rez5w5I23atJGsrCwpKCiQO++803r8xMREWbFihXXbfv36yZ49e0REZPr06TJ//nwREWnbtq28+uqrIiKydOlSuffee0VEZOzYsbJ582YRETl58qR06dJFRER27twpDz/88DWxpKWlSXBwsOTl5Ulubq4EBQXJ7t275cSJEwLIli1bRERk/PjxMmfOHBERiYuLk507d0p2drb06dNH8vLyRERk9uzZ8sorr0hBQYG0a9dOduzYISIiOTk5UlRUdM3nfLWKfi+BNKnk79RR12m0Br4u8zrzyrJrGGMeBR4FuOOOOxwUjiqradOmPPTQQ8yfPx8/Pz/r8szMTEaPHs3Zs2cpLCykXbt21nWDBg3C29ubkJAQSkpKGDhwIFB6CXlGRgZHjhzhwIEDxMfHA6W9AH9/f4BqX58xYcIEhg4dyjPPPMOiRYsYP368dd2oUaPw8PCgY8eOtG/fnsOHD7N+/Xr27dvHypUrAcjJyeHYsWPl4i5r+/bt9OvXjxYtWgAwevRojh49WuG2ycnJLF68mNdee43U1FR27NhhXTd27Fjr92effRaADRs2lBve/Pjjj+Tm5tKjR48KZ/Vu2bKFYcOG0ahRIwCGDx/O5s2bGTJkCG3atKFXr14AjBs3jvnz5/Pcc89Z9/366685dOiQdZvCwkJiY2M5cuQI/v7+REVFAdTK4ykqct2kYYzZAFT0OPAXROSTynarYFmFF4SIyF+Bv0LpdRrXi0fVjmeeeYaIiIhyf5iTJ09mypQpDBkyhE2bNpUrkDZo0ADAegHXz7NjPTw8KC4uRkTo1q0b27Ztq3FMbdq0oVWrVmzcuJHt27fz4YcfWtddPRvXGIOI8Oabb5KQUP2SWXVn9Y4YMYJXXnmFu+++m8jISG699dYK2/j5Z4vFwrZt28ol4apIFddHVfRer943Pj6eZcuWlVu+b9++Wpm1fD3XrWmISH8RCa7gq7KEAaU9izZlXgeAnc8UVLWqWbNmjBo1ivfff9+6LCcnh9atSzuES5cutam9zp07k52dbU0aRUVFHDx4sMp9mjRpQm5ubrllycnJjBs3jlGjRuHp+UsZbMWKFVgsFo4fP056ejqdO3cmISGBBQsWWGsqR48e5dKlSwAVXh4fExPDpk2bOH/+PEVFRaxYsaLSWHx9fUlISOCxxx4rl1gBa10gNTWV2NhYAAYMGMBbb71l3Wbv3r1Vvve+ffuyevVqLl++zKVLl1i1ahV9+vQB4Pvvv7d+jsuWLaN3797l9u3Zsydbt2611lMuX77M0aNH6dKlC2fOnGHnzp0A5ObmUlxcXOHnbA9HnXJdA4wxxjQwxrQDOgI7rrOPqmNTp04tdxYlJSWFkSNH0qdPH5o3b25TWz4+PqxcuZLnn3+esLAwwsPD+eqrrwBYuHAhCxcuvGafu+66i0OHDpUr0A0ZMoS8vLxr/lA7d+5MXFwcgwYNYuHChfj6+pKcnExQUBAREREEBwczceJEiouLOXfuXIX/k/v7+5OSkkJsbCz9+/cvV+wcM2YMc+bMoXv37hw/XvroywcffBBjDAMGDCjXTkFBATExMbzxxhvWgvL8+fNJS0sjNDSUoKAg6/tNS0sjOTn5mlgiIiJISkoiOjqamJgYkpOT6d69OwBdu3Zl6dKlhIaGcuHCBR577DHrfsYYWrRowZIlSxg7diyhoaH07NmTw4cP4+PjQ2pqKpMnTyYsLIz4+Hjy8/Mr/JztUlmxozpfwDBKexUFwA/AujLrXgCOA0eAQdVpTwuhaufOndK7d+9yy64uUl7Pp59+Km+88YbdscyZM0defPHFcsvatm0r2dnZdrddE8HBwVUWemuqTguhIrIKWFXJuv8H/D972lfuZfbs2SxYsKBcLaMmamMS3rBhwzh+/DgbN260u63aEB8fT0hISKVF3rqkE9bqkE5YU65IJ6wppRxKk4ZSyiaaNJRSNtGkoZSyiSYNN7N27Vo6d+5Mhw4dmD17do3bycjIwBjDSy+9ZF127tw5vL29rdPN1Y1Jk4YbKSkp4YknnuCLL77g0KFDLFu2zK7p4O3bt7fOOIXSqza7detWG6EqF6ZJw43s2LGDDh060L59e3x8fBgzZgyffFLVbICq+fn50bVrV+t07dTUVEaNGlVb4SoXpUnDjZw+fZo2bX6ZEhQQEMDp06ftanPMmDEsX76czMxMPD09uf322+0NU7k4fYSBG6noQj57Z0UOHDiQl156iVatWjF69Gi72lL1g/Y03EhAQACnTp2yvs7MzLS7Z+Dj40NkZCR//vOfGTFihL0hqnpAexpuJCoqimPHjnHixAlat27N8uXL+eijj+xud+rUqcTFxZW754S6cWnScCNeXl689dZbJCQkUFJSwoQJE2rlbEe3bt30rIkb0QlrdUgnrClXpBPWlFIOpUlDKWUTTRpKKZto0nAzEyZMoGXLlpU++q+6LBYLTz31FMHBwYSEhBAVFcWJEydqKUrlyjRpuJmkpCTWrl1rdzupqamcOXOGffv2sX//flatWsXNN99cCxEqV6enXN1M3759ycjIsLuds2fP4u/vj4dH6f87AQEBdrep6gftaagaGTVqFJ9++inh4eFMnTqVPXv2ODskVUe0p+FE/fr1q9X2Nm3aVKvtVSUgIIAjR46wceNGNm7cyD333MOKFSu455576iwG5RyaNFSNNWjQgEGDBjFo0CBatWrF6tWrNWm4AU0aTlSXPYPatnv3bm677TZuv/12LBYL+/btIzQ01NlhqTqgNQ03M3bsWOsTxgMCAso9y9UWWVlZ3H///QQHBxMaGoqXl5fe5s9NaE/DzVz9pPGaGjhwIAMHDqyVtlT9oj0NpZRNNGkopWyiSUMpZRNNGm7GGMPUqVOtr+fOnUtKSopTYtm7dy+ff/65U44NsGTJEmvxdvXq1XY9zqG2ZGRkVDovKDk5uUYx1vbnrEnDzTRo0ICPP/6Yc+fOOTsUpyeNslwlaVTlvffeIygoyOb9NGkou3h5efHoo48yb968a9Z9+umnxMTE0L17d/r3788PP/wAQEpKComJiQwYMIDAwEA+/vhjfve73xESEsLAgQMpKioCYNeuXcTFxREZGUlCQgJnz56tNI7CwkJefvllUlNTCQ8PJzU1lY4dO5KdnQ2UzqLt0KED586dIykpiUmTJtGnTx86depkfUBTSUkJ06ZNIyoqipU452kAAAt6SURBVNDQUN55553rvv/FixfTqVMn4uLi2Lp1KwBfffUVa9asYdq0aYSHh3P8+HEiIiKs+xw7dozIyEgAAgMDef7554mOjiY6OprvvvsOgOzsbEaMGEFUVBRRUVHWtqvy2muvERwcTHBwMK+//rp1eXFxMYmJiYSGhvLAAw9w+fJloPQK4p/vbLd+/XpiY2OJiIhg5MiR5OXlAbBz507uvPNOwsLCiI6OJicn55rP2W4i4jJfkZGRciM7dOiQs0OQRo0aSU5OjrRt21YuXrwoc+bMkRkzZoiIyIULF8RisYiIyLvvvitTpkwREZEZM2ZIr169pLCwUPbu3St+fn7y+eefi4jIr3/9a1m1apUUFhZKbGysZGVliYjI8uXLZfz48SIismDBAlmwYME1sSxevFieeOIJ6+uUlBSZN2+eiIisW7dOhg8fLiIiiYmJkpCQICUlJXL06FFp3bq1/PTTT/LOO+/IrFmzREQkPz9fIiMjJT09vdL3fubMGWnTpo1kZWVJQUGB3HnnndbjJyYmyooVK6zb9uvXT/bs2SMiItOnT5f58+eLiEjbtm3l1VdfFRGRpUuXyr333isiImPHjpXNmzeLiMjJkyelS5cuIiKyc+dOefjhh6+JJS0tTYKDgyUvL09yc3MlKChIdu/eLSdOnBBAtmzZIiIi48ePlzlz5oiISFxcnOzcuVOys7OlT58+kpeXJyIis2fPlldeeUUKCgqkXbt2smPHDhERycnJkaKioms+56tV9HsJpEklf6f16joNS1E+P57ay0/n0/HybUrTtj1o0PQ2Z4dV7zRt2pSHHnqI+fPn4+fnZ12emZnJ6NGjOXv2LIWFhbRr1866btCgQXh7exMSEkJJSYn1Go2QkBAyMjI4cuQIBw4cID4+HijtBfj7+wMwadKkasU1YcIEhg4dyjPPPMOiRYsYP368dd2oUaPw8PCgY8eOtG/fnsOHD7N+/Xr27dvHypUrAcjJyeHYsWPl4i5r+/bt9OvXjxYtWgAwevRojh49WuG2ycnJLF68mNdee43U1FR27NhhXTd27Fjr92effRaADRs2lBve/Pjjj+Tm5tKjRw/ee++9a9rfsmULw4YNo1GjRgAMHz6czZs3M2TIENq0aUOvXr0AGDduHPPnz+e5556z7vv1119z6NAh6zaFhYXWC/b8/f2JiooCSv+dHcGupGGMGQmkAF2BaBFJu7I8EPgWOHJl069FpHq/OZUoKfyJ09sWYym8jFiKAcOl/xymefBgGvvbPs5zd8888wwRERHl/jAnT57MlClTGDJkCJs2bSpXIG3QoAEAHh4eeHt7Wx+y5OHhQXFxMSJCt27d2LZtW41jatOmDa1atWLjxo1s376dDz/80Lru6oc6GWMQEd58800SEhKqfYzqPhxqxIgRvPLKK9x9991ERkaWezxD2TZ+/tlisbBt27ZySbgqUsUNvSt6r1fvGx8ff82Fevv27bP74VfVYW9N4wAwHPiygnXHRST8ypddCQMgJ2MHJQWXriQMAEEsxZw/tA6xlNjbvNtp1qwZo0aNKncZeU5ODq1btwZg6dKlNrXXuXNnsrOzrUmjqKiIgwcPVrlPkyZNyM3NLbcsOTmZcePGMWrUKDw9Pa3LV6xYgcVi4fjx46Snp9O5c2cSEhJYsGCBtaZy9OhRLl26BECXLl2uOV5MTAybNm3i/PnzFBUVsWLFikpj8fX1JSEhgccee6xcYgWsdYHU1FRiY2MBGDBgAG+99ZZ1m71791b53vv27cvq1au5fPkyly5dYtWqVfTp0weA77//3vo5Llu2jN69e5fbt2fPnmzdutVaT7l8+TJHjx6lS5cunDlzhp07dwKQm5tLcXFxhZ+zPexKGiLyrYgcuf6W9rucdRTk2uQgIhTmOf9MQH00derUcmdRUlJSGDlyJH369KF58+Y2teXj48PKlSt5/vnnCQsLIzw8nK+++gqAhQsXsnDhwmv2ueuuuzh06FC5At2QIUPIy8u75g+1c+fOxMXFMWjQIBYuXIivry/JyckEBQURERFBcHAwEydOpLi4mHPnzlX4P7m/vz8pKSnExsbSv3//csXOMWPGMGfOHLp3787x48cBePDBBzHGMGDAgHLtFBQUEBMTwxtvvGEtKM+fP5+0tDRCQ0MJCgqyvt+0tDSSk5OviSUiIoKkpCSio6OJiYkhOTmZ7t27A9C1a1eWLl1KaGgoFy5c4LHHHrPuZ4yhRYsWLFmyhLFjxxIaGkrPnj05fPgwPj4+pKamMnnyZMLCwoiPjyc/P7/Cz9ketfLcE2PMJuC5q4YnB4GjwI/AiyKyuZJ9HwUeBbjjjjsiT548WeExzmz/gIKLmdfu7+FF696P4O13k93vw9H0uSfXl5aWxrPPPsvmzb/8uiQlJXHffffxwAMPVKuNzz77jPT0dJ566im7Ypk7dy45OTnMmjXLuiwwMJC0tDSbk2ptCAkJYc2aNZXWbGrK1ueeXLemYYzZAFRUbXxBRD6pZLezwB0ict4YEwmsNsZ0E5Efr95QRP4K/BVKH5ZUWRw3BUaRvf8HpKSobHT4NGlZLxKGur7Zs2ezYMGCcrWMmrjvvvvsjmXYsGEcP36cjRs32t1WbYiPjyckJKTWE0ZNOKSnYev6n1X1hDUR4b/HviTn5A6MhxeIBS+/m7mtx2i8GjS28x3UDe1pKFdU6z2NmjDGtAAuiEiJMaY90BFIt7NNmnWK46bAKApy/oNng0b4NGlZJ9Xi2iQi9S5mdeOqSafBrkKoMWaYMSYTiAX+zxiz7sqqvsA+Y8w3wEpgkohcsOdYP/P0aUjDFu1p0LRVvfvj8/X15fz58zX6h1KqtokI58+fx9fX16b99AHQdaioqIjMzEzy8/OdHYpSQOl/ZAEBAXh7e5dbXufDE1Uxb29vlyhkKWUPnbCmlLKJJg2llE00aSilbOJShVBjTDZQ8SWhjtEcqC/XoGusjqGxVqytiLSoaIVLJY26ZoxJq6xC7Go0VsfQWG2nwxOllE00aSilbOLuSeOvzg7ABhqrY2isNnLrmoZSynbu3tNQStlIk4ZSyiZulzSMMSONMQeNMRZjTI+r1k03xnxnjDlijKn+3WrriDEmxRhz2hiz98rXYGfHVJYxZuCVz+47Y8zvnR1PVYwxGcaY/Vc+R5eaJWmMWWSMyTLGHCizrJkx5p/GmGNXvt/irPjcLmlQyc2QjTFBwBigGzAQ+IsxxvPa3Z1uXpkbNrvG48mAK5/V28AgIAgYe+UzdWV3XfkcnX7tw1WWUPo7WNbvgX+JSEfgX1deO4XbJY0qboY8FFguIgUicgL4Doiu2+jqtWjgOxFJF5FCYDmln6mykYh8CVx9/5mhwM+3iF8K/LpOgyrD7ZJGFVoDp8q8zryyzNU8aYzZd6UL67QuagXqy+f3MwHWG2N2Xbm5tatrJSJnAa58b+msQG7I+2nU8GbIFd0GrM7PR1cVO7AAmEVpXLOAPwMT6i66KrnE52eDXiJyxhjTEvinMebwlf/h1XXckElDRPrXYLdMoE2Z1wHAmdqJqPqqG7sx5l3gMweHYwuX+PyqS0TOXPmeZYxZRenwypWTxg/GGH8ROWuM8QeynBWIDk9+sQYYY4xpYIxpR+nNkHdcZ586deWX5WfDKC3quoqdQEdjTDtjjA+lReU1To6pQsaYRsaYJj//DAzAtT7LiqwBEq/8nAhU1mN2uBuyp1EVY8ww4E2gBaU3Q94rIgkictAY83fgEFAMPCFSwSPdnOtPxphwSrv9GcBE54bzCxEpNsY8CawDPIFFIlL1cxmdpxWw6sqNqb2Aj0RkrXND+oUxZhnQD2h+5cbdM4DZwN+NMQ8D3wMjnRafXkaulLKFDk+UUjbRpKGUsokmDaWUTTRpKKVsoklDKWUTTRpKKZto0lBK2eT/AxPqRaRUScQZAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"f, ax = plt.subplots()\n",
"gdf_points.plot(color=gdf_points[\"type\"].map(points_symb),\n",
" ax=ax, label=gdf_points[\"type\"])\n",
"\n",
"gdf_lines.plot(color=gdf_lines[\"type\"].map(roads_symb),\n",
" ax=ax,\n",
" label=gdf_lines[\"type\"])\n",
"ax.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The problem here is that we shouldn't pass the full series with labels to `label`, as that will give an entry for each point/line, not one per category.\n",
"\n",
"So we will need to make the legend more manually:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f04f44dd7f0>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"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": [
"f, ax = plt.subplots()\n",
"gdf_points.plot(color=gdf_points[\"type\"].map(points_symb),\n",
" ax=ax)\n",
"\n",
"gdf_lines.plot(color=gdf_lines[\"type\"].map(roads_symb),\n",
" ax=ax)\n",
"\n",
"from matplotlib.lines import Line2D\n",
"custom_lines = [Line2D([0], [0], color=color, lw=1) for color in roads_symb.values()]\n",
"leg_lines = ax.legend(custom_lines, roads_symb.keys(), title=\"Road Type\", loc=(1.1, .5))\n",
"ax.add_artist(leg_lines)\n",
"\n",
"custom_points = [Line2D([0], [0], marker=\"o\", linestyle=\"none\", markersize=5, color=color) for color in points_symb.values()]\n",
"leg_points = ax.legend(custom_points, points_symb.keys(), title=\"Plot Type\", loc=(1.1, .1))\n",
"ax.add_artist(leg_points)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python (geo-dev3)",
"language": "python",
"name": "geo-dev3"
},
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment