prettymaps/notebooks/examples.ipynb

1588 wiersze
10 MiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Install prettymaps using pip:\n",
"!pip install prettymaps"
]
},
2021-08-24 02:01:14 +00:00
{
"cell_type": "markdown",
"metadata": {},
2021-08-24 02:01:14 +00:00
"source": [
"# prettymaps\n",
"\n",
"A minimal Python library to draw customized maps from [OpenStreetMap](https://www.openstreetmap.org/#map=12/11.0733/106.3078) created using the [osmnx](https://github.com/gboeing/osmnx), [matplotlib](https://matplotlib.org/), [shapely](https://shapely.readthedocs.io/en/stable/index.html) and [vsketch](https://github.com/abey79/vsketch) packages.\n",
"\n",
2022-11-08 14:28:21 +00:00
"![](https://github.com/marceloprates/prettymaps/raw/main/prints/heerhugowaard.png)\n",
"\n",
"\n",
"This work is [licensed](LICENSE) under a GNU Affero General Public License v3.0 (you can make commercial use, distribute and modify this project, but must **disclose** the source code with the license and copyright notice)\n",
"\n",
"## Note about crediting and NFTs:\n",
"- Please keep the printed message on the figures crediting my repository and OpenStreetMap ([mandatory by their license](https://www.openstreetmap.org/copyright)).\n",
"- I am personally **against** NFTs for their [environmental impact](https://earth.org/nfts-environmental-impact/), the fact that they're a [giant money-laundering pyramid scheme](https://twitter.com/smdiehl/status/1445795667826208770) and the structural incentives they create for [theft](https://twitter.com/NFTtheft) in the open source and generative art communities.\n",
"- **I do not authorize in any way this project to be used for selling NFTs**, although I cannot legally enforce it. **Respect the creator**.\n",
"- The [AeternaCivitas](https://magiceden.io/marketplace/aeterna_civitas) and [geoartnft](https://www.geo-nft.com/) projects have used this work to sell NFTs and refused to credit it. See how they reacted after being exposed: [AeternaCivitas](etc/NFT_theft_AeternaCivitas.jpg), [geoartnft](etc/NFT_theft_geoart.jpg).\n",
"- **I have closed my other generative art projects on Github and won't be sharing new ones as open source to protect me from the NFT community**.\n",
"\n",
"<a href='https://ko-fi.com/marceloprates_' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi1.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>\n",
"\n",
"## As seen on [Hacker News](https://web.archive.org/web/20210825160918/https://news.ycombinator.com/news):\n",
2022-11-08 14:28:21 +00:00
"![](https://github.com/marceloprates/prettymaps/raw/main/prints/hackernews-prettymaps.png)\n",
"\n",
"## [prettymaps subreddit](https://www.reddit.com/r/prettymaps_/)\n",
"## [Google Colaboratory Demo](https://colab.research.google.com/github/marceloprates/prettymaps/blob/master/notebooks/examples.ipynb)"
]
2021-08-24 02:01:14 +00:00
},
{
"cell_type": "markdown",
"metadata": {},
2021-08-24 02:01:14 +00:00
"source": [
2022-11-08 14:28:21 +00:00
"# Installation\n",
"\n",
"OBS. I'm trying to solve a dependency issue with [vsketch](https://vsketch.readthedocs.io/en/latest/install.html) before publishing prettymaps v0.1.3, so, for now, please install directly from GitHub."
]
2021-08-24 02:01:14 +00:00
},
{
"cell_type": "markdown",
"metadata": {},
2021-08-24 02:01:14 +00:00
"source": [
2022-11-08 14:28:21 +00:00
"### Install locally:\n",
"Install prettymaps with:\n",
"\n",
"```\n",
"pip install git+https://github.com/marceloprates/prettymaps\n",
"```"
]
2021-08-24 02:01:14 +00:00
},
2022-11-08 14:28:21 +00:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Install on Google Colaboratory:\n",
"\n",
"Install prettymaps with:\n",
"\n",
"```\n",
"!pip install -e \"git+https://github.com/marceloprates/prettymaps#egg=prettymaps\"\n",
"```\n",
"\n",
"Then **restart the runtime** (Runtime -> Restart Runtime) before importing prettymaps"
]
},
2021-08-24 02:01:14 +00:00
{
"cell_type": "markdown",
"metadata": {},
2021-08-24 02:01:14 +00:00
"source": [
"# Tutorial"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plotting with prettymaps is very simple. Run:\n",
"```python\n",
"prettymaps.plot(your_query)\n",
"```\n",
"\n",
"**your_query** can be:\n",
"1. An address (Example: \"Porto Alegre\"),\n",
"2. Latitude / Longitude coordinates (Example: (-30.0324999, -51.2303767))\n",
"3. A custom boundary in GeoDataFrame format"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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06ZN8fLy4oknnuD48eP2eU2aNCEwMBA3NzcaNmzI4cOH7fPOnj1L586dKVWqFPXr16dVq1aF2i7btm3j2WefJTg4GI1GQ2hoKKmpqQXWJa95+X3epUuXaN68Ob/++itWq5VffvmFZs2aceXKlQL3UX7bLD8xMTH06NGD8PBw3NzcqFmzJgaDAYC9e/dSo0YN+zojIyML3Na3uj23bdtmL9u0aVOndX377bfx8PCgevXqHDx40D5doVDY/3306FEUCkWh6pJffPnt959++onHHnsMV1dXgoODmTVrVqG2tRBCCCGEEEIIcSskIUZ266r+/ftz+PBhXnrpJYf5zz33HDt27ODkyZNUqFCB7t27A1CyZEliYmKoWbMmixcvJiYmhpiYGHuTw7yWy49Op6N169b873//48cff6RZs2a0bt0anU6X73JHjhyhbt269n+7urpSu3ZtDh06BMCePXtYs2aN/R3hVq1aYTabSUpK4plnnqFRo0YcOnSIJ598kk6dOtnXs2vXLlavXs3p06epWLEi3bp1s8975ZVXGDp0KEePHnWoS0HbZc+ePWRkZLBjxw6uXLnC1q1b8fT0zLcu+c3L7/MSEhLw8fGhevXqrFmzhnLlyuHr60tKSkqB+yivbZYfs9lM8+bNuXLlChs3buTs2bOsXLkSrVZLUlISLVu25M033+TYsWOEh4fTsWPHArf1rW7PJk2aEBMTw4wZM/Ksb4cOHTh8+DAvvvgirVu3LrDlV351KSi+vOoJttaGXbp04cKFC2zfvp0XXngh33oIIYQQQgghhBC3Q16ZBLZs2ULJkiXp378/AM8//zzLly+3z69QoYL972HDhvHUU08BoFQqCQwMRK1W4+npSWBgoMN681ouPxs2bKBt27YkJyfz/PPPM3HiRNq1a8eGDRt4/fXX81wuJSUFb29vh2m+vr4kJyfb/12iRAnKlCnDkiVLCAkJ4b///uPUqVMEBQUxZcoUAKZPn46HhweXL1+2J1xKly5NiRIlGDJkCI8//jgmkwm1Ws2qVatYsGABzz//PDVr1mTRokWUL1++wO0CEBISYn9lMTQ0FIDvv/8+z7ps374933rm9XlZLZBeffVVBg4cyPTp09m9ezdpaWmF2kfOtlnDhg3z3A9//PEHJ0+eZNeuXfb9ERYWBsDmzZsJDAxkyJAhACxcuBB/f39OnjxJ5cqV893Wt7I9NRoNgYGBeHh45FnfF154gXLlyjFlyhRWrlzJ33//TePGjfMsn9++LUx8zuoJEBAQwKlTp1CpVFSrVi3PzxdCCCGEEEIIIe4EaSEGREVF5duR3BdffEHdunUJDQ2lS5cumEymQq33Vpa7cOEC9evXZ/bs2WzevJmOHTtSv359Lly4kO9yXl5eDskvgMTExFxJMrC1HitRogSXL18mKiqKM2fO4Ovri6+vL8HBwZjNZodX3bJ4e3tjNpvtSSa1Ws2QIUO4cOEC1atX55lnniEjI6PAGPOSX11upp45WSwWAFq1akX79u1p06YNAFarFSj8Psq5zfITERFByZIlnW73iIgISpcubf+3l5cXgYGBTtd547a+29RqNWFhYVy9etU+LWsbFdbNxHejbdu2YbFYqFixIp07d87VH50QQgghhBBCCHEnSQsxbK+BnTt3zum8y5cv06VLF9auXUv
"text/plain": [
"<Figure size 1200x1200 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import prettymaps\n",
"\n",
"plot = prettymaps.plot('Stad van de Zon, Heerhugowaard, Netherlands')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also choose from different \"presets\" (parameter combinations saved in JSON files)\n",
"\n",
"See below an example using the \"minimal\" preset"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABMQAAATECAYAAACEMNn6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1hT5/s/8HcCZLJBwL39uLV11L33woqLoYjiHtU6a7Wt1arV1oV71gFVUBF3VdxWrXviFhkKgmxCQiDn94e/5EvIyUnCFu7XdeUC8pzxnJMAJ/e5n/vhMQzDgBBCCCGEEEIIIYSQMoJf3B0ghBBCCCGEEEIIIaQoUUCMEEIIIYQQQgghhJQpFBAjhBBCCCGEEEIIIWUKBcQIIYQQQgghhBBCSJlCATFCCCGEEEIIIYQQUqZQQIwQQgghhBBCCCGElCkUECOEEEIIIYQQQgghZQoFxAghhBBCCCGEEEJImUIBMUIIIYQQQgghhBBSplBAjBBCCCGEEEIIIYSUKRQQI4QQQgghhBBCCCFlCgXECCGEEEIIIYQQQkiZQgExQgghhBBCCCGEEFKmUECMEEIIIYQQQgghhJQpFBAjhBBCCCGEEEIIIWUKBcQIIYQQQgghhBBCSJlCATFCCCGEEEIIIYQQUqZQQIwQQgghhBBCCCGElCkUECOEEEIIIYQQQgghZQoFxAghhBBCCCGEEEJImUIBMUIIIYQQQgghhBBSplBAjBBCCCGEEEIIIYSUKRQQI4QQQgghhBBCCCFlCgXECCGEEEIIIYQQQkiZQgExQgghhBBCCCGEEFKmUECMEEIIIYQQQgghhJQpFBAjhBBCCCGEEEIIIWUKBcQIIYQQQgghhBBCSJlCATFCCCGEEEIIIYQQUqZQQIwQQgghhBBCCCGElCkUECOEEEIIIYQQQgghZQoFxAghhBBCCCGEEEJImUIBMUIIIYQQQgghhBBSplBAjBBCCCGEEEIIIYSUKRQQI4QQQgghhBBCCCFlCgXECCGEEEIIIYQQQkiZQgExQgghhBBCCCGEEFKmUECMEEIIIYQQQgghhJQpFBAjhBBCCCGEEEIIIWUKBcQIIYQQQgghhBBCSJlCATFCCCGEEEIIIYQQUqZQQIwQQgghhBBCCCGElCkUECOEEEIIIYQQQgghZQoFxAghhBBCCCGEEEJImUIBMUIIIYQQQgghhBBSplBAjBBCCCGEEEIIIYSUKRQQI4QQQgghhBBCCCFlCgXECCGEEEIIIYQQQkiZQgExQgghhBBCCCGEEFKmUECMEEIIIYQQQgghhJQpFBAjhBBCCCGEEEIIIWUKBcQIIYQQQgghhBBCSJlCATFCCCGEEEIIIYQQUqZQQIwQQgghhBBCCCGElCkUECOEEEIIIYQQQgghZQoFxAghhBBCCCGEEEJImUIBMUIIIYQQQgghhBBSplBAjBBCCCGEEEIIIYSUKebF3YGiFhERgfj4+OLuBiGkCDk6OqJKlSrF3Q1CCCGEEEIIISVEmQqIRUREoF69epDJZMXdFUJIEZJIJAgLC6OgGCGEEEIIIYQQAGUsIBYfHw+ZTIZ9+/ahXr16xd0dQkgRCAsLg5eXF+Lj4ykgRgghhBBCCCEEQBkLiKnVq1cPX3/9dXF3gxBCCCGEEEIIIYQUAyqqTwghhBBCCCGEEELKlDKZIWYIwzCIiopC5cqVi7srhBSauLg4WFlZQSQSFXdXikRYWFhxd4EQQgghhBBCSgSaeIwCYqwuXbqEgQMHIikpyajlVSoVMjMzy0xgwVhFfV5K++uQ1+P76quv0LFjR6xZs0breScnJ9y7dw9NmzYtsr4UJy8vr+LuAiGEEEIIIYSUCDTxGAXECkTbtm0xfvx4jBo1qlj7cfnyZUyaNAkvX75Es2bNsGPHjkKdPODBgweYNGkS7t27B0tLS3h5eWHVqlWa9qI+L2z7U6lUkEgkCAwMxIABA3DmzBn06dMHMpkMAoGgSPpVUPJ6PkUiUYEfa0l5z5uCJtMghBBCCCGEEJp4TI0CYgVAqVQWdxeQkJAAV1dXzJ07F25ubli5ciUGDhyIp0+fwszMrFD2OWrUKLRo0QIBAQGIjY1FTEyMVntRnxe2/YWHh8Pc3BzHjx/HgAEDcOzYMYhEIrx69Qr169cv0v7lV17P5/Xr1wu4JyXjPW8qmkyDEEIIIYQQQogaFdX//y5cuIBatWpBKpVi6tSpWm0bNmyAk5MTBAIBmjRpgv/++w/A52ALj8fDnTt34OPjAx6PBx6Ph/DwcM71DHn79i0GDRqEKlWqYODAgXjz5o3BdYKDg1G+fHnMmzcPtWvXxrp16/DhwwdcvXoVANC+fXs4OjpCJBKhR48emj4CwOPHj9GpUydYWVmhdevWePr0qaatY8eOcHR0hFgsRqtWrfDw4UNN26tXr+Dl5YWqVauiZcuWGDBggFHn5dy5c+jSpQucnJxgYWEBFxcXpKWlGeyLvjau/b179w7du3fH2bNnwTAM/vnnH3Tr1g2RkZEGXyOuc8YlLi4O48aNQ6VKlSAWi9GkSRNkZmYCAG7fvo3GjRtrthkdHW3wXOf1fJ47d06zbKdOnVj76uPjA6lUikaNGuH+/fua53k8nubnx48fg8fjGdUXruPjet1PnTqFhg0bQiQSwcnJCStWrDDqXBNCCCGEEEIIIXlBATH8X3bVtGnT8PDhQ/Tr10+rvUePHrh48SKePXuG2rVrY+zYsQCAKlWqIC4uDk2aNIGfnx/i4uIQFxenSTnUtx4XuVwOV1dXdO3aFSdPnkS3bt3g6uoKuVzOud6jR4/QvHlzzc8ikQhfffUVHjx4AAC4evUqdu3apRkjPGDAAGRnZyM5ORmdO3dGu3bt8ODBA7Rp0waenp6a7Vy+fBnbt2/HixcvUKdOHfj6+mraBg8ejNmzZ+Px48dafTF0Xq5evYqMjAxcvHgRkZGROHPmDCwtLTn7wtXGtb/ExETY2NigUaNG2LVrF2rWrAlbW1ukpqYafI30nTMu2dnZ6N69OyIjIxESEoJXr15hy5YtEAgESE5ORu/evTFy5Eg8efIElSpVwtChQw2e67yez44dOyIuLg7Lly/X298hQ4bg4cOH6Nu3L1xdXQ1mfnH1xdDx6esn8DnbcMSIEXj79i0uXLiAPn36cPaDEEIIIYQQQgjJDxoyCeDEiROoUqUKpk2bBgDo2bMnNm3apGmvXbu25vs5c+agbdu2AAA+nw9HR0eYm5vD0tISjo6OWtvVtx6X4OBgfPvtt0hJSUHPnj2xaNEiDBo0CMHBwXB3d9e7XmpqKqytrbWes7W1RUpKiubnypUro3r16li/fj2cnZ1x69YtPH/+HOXKlcOSJUsAAMuWLYNUKkVERIQm4FKtWjVUrlwZs2bNwtdff42srCyYm5tj27ZtWLNmDXr27IkmTZpg3bp1qFWrlsHzAgDOzs6aIYsuLi4AgCNHjujty4ULFzj7qW9/6gykYcOGYcaMGVi2bBmuXLmC9PR0o14jtnPWqlUrva/DtWvX8OzZM1y+fFnzelSsWBEAcPz4cTg6OmLWrFkAgLVr18Le3h7Pnj1D3bp1Oc91Xs6nhYUFHB0dIZVK9fa3T58+qFmzJpYsWYItW7bgxo0baN++vd7luV5bY46PrZ8A4ODggOfPn8PMzAwNGjTQu39CCCGEEEIIIaQgUIYYgPfv33MWkgsICEDz5s3h4uKCESNGICsry6jt5mW9t2/fomXLlli5ciWOHz+OoUOHomXLlnj79i3nelZWVlrBLwBISkrSCZIBn7PHKleujIiICLx//x4vX76Era0tbG1t4eTkhOzsbK2hbmrW1tbIzs7WBJnMzc0xa9YsvH37Fo0aNULnzp2RkZFh8Bj14eqLKf3MSaVSAQAGDBgANzc3DBw4EADAMAwA41+jnOeMS1RUFKpUqcJ63qOiolCtWjXNz1ZWVnB0dGTdZu5zXdjMzc1RsWJFfPjwQfOc+hwZy5Tjy+3cuXNQqVSoU6cOvLy8dOrREUIIIYQQQgghBYkyxPB5GNjr169Z2yIiIjBixAjs3r0brVq1woMHDzB48GCtZQQ
"text/plain": [
"<Figure size 1200x1200 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot = prettymaps.plot(\n",
" 'Stad van de Zon, Heerhugowaard, Netherlands',\n",
" preset = 'minimal'\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Run\n",
"\n",
"```python\n",
"prettymaps.presets()\n",
"```\n",
"\n",
"to list all available presets:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"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>preset</th>\n",
" <th>params</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>barcelona</td>\n",
" <td>{'layers': {'perimeter': {'circle': False}, 's...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>barcelona-plotter</td>\n",
" <td>{'layers': {'streets': {'width': {'primary': 5...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>cb-bf-f</td>\n",
" <td>{'layers': {'streets': {'width': {'trunk': 6, ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>default</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>heerhugowaard</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>macao</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'cust...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>minimal</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>tijuca</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" preset params\n",
"0 barcelona {'layers': {'perimeter': {'circle': False}, 's...\n",
"1 barcelona-plotter {'layers': {'streets': {'width': {'primary': 5...\n",
"2 cb-bf-f {'layers': {'streets': {'width': {'trunk': 6, ...\n",
"3 default {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"4 heerhugowaard {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"5 macao {'layers': {'perimeter': {}, 'streets': {'cust...\n",
"6 minimal {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"7 tijuca {'layers': {'perimeter': {}, 'streets': {'widt..."
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"prettymaps.presets()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To examine a specific preset, run:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"| | layers | style | circle | radius |\n",
"|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:---------------|\n",
"| perimeter | {}<br> | fill: false<br>lw: 0<br>zorder: 0<br> | null<br>...<br> | 500<br>...<br> |\n",
"| streets | width:<br> cycleway: 3.5<br> footway: 1<br> motorway: 5<br> pedestrian: 2<br> primary: 4.5<br> residential: 3<br> secondary: 4<br> service: 2<br> tertiary: 3.5<br> trunk: 5<br> unclassified: 2<br> | alpha: 1<br>ec: '<span style=\"background-color:#475657; color:#fff\">#475657</span>'<br>fc: '<span style=\"background-color:#2F3737; color:#fff\">#2F3737</span>'<br>lw: 0<br>zorder: 4<br> | | |\n",
"| building | tags:<br> building: true<br> landuse: construction<br> | ec: '<span style=\"background-color:#2F3737; color:#fff\">#2F3737</span>'<br>lw: 0.5<br>palette:<br>- '<span style=\"background-color:#433633; color:#fff\">#433633</span>'<br>- '<span style=\"background-color:#FF5E5B; color:#000\">#FF5E5B</span>'<br>zorder: 5<br> | | |\n",
"| water | tags:<br> natural:<br> - water<br> - bay<br> | ec: '<span style=\"background-color:#2F3737; color:#fff\">#2F3737</span>'<br>fc: '<span style=\"background-color:#a8e1e6; color:#000\">#a8e1e6</span>'<br>hatch: ooo...<br>hatch_c: '<span style=\"background-color:#9bc3d4; color:#000\">#9bc3d4</span>'<br>lw: 1<br>zorder: 3<br> | | |\n",
"| forest | tags:<br> landuse: forest<br> | ec: '<span style=\"background-color:#2F3737; color:#fff\">#2F3737</span>'<br>fc: '<span style=\"background-color:#64B96A; color:#000\">#64B96A</span>'<br>lw: 1<br>zorder: 2<br> | | |\n",
"| green | tags:<br> landuse:<br> - grass<br> - orchard<br> leisure: park<br> natural:<br> - island<br> - wood<br> | ec: '<span style=\"background-color:#2F3737; color:#fff\">#2F3737</span>'<br>fc: '<span style=\"background-color:#8BB174; color:#000\">#8BB174</span>'<br>hatch: ooo...<br>hatch_c: '<span style=\"background-color:#A7C497; color:#000\">#A7C497</span>'<br>lw: 1<br>zorder: 1<br> | | |\n",
"| beach | tags:<br> natural: beach<br> | ec: '<span style=\"background-color:#2F3737; color:#fff\">#2F3737</span>'<br>fc: '<span style=\"background-color:#FCE19C; color:#000\">#FCE19C</span>'<br>hatch: ooo...<br>hatch_c: '<span style=\"background-color:#d4d196; color:#000\">#d4d196</span>'<br>lw: 1<br>zorder: 3<br> | | |\n",
"| parking | tags:<br> amenity: parking<br> highway: pedestrian<br> man_made: pier<br> | ec: '<span style=\"background-color:#2F3737; color:#fff\">#2F3737</span>'<br>fc: '<span style=\"background-color:#F2F4CB; color:#000\">#F2F4CB</span>'<br>lw: 1<br>zorder: 3<br> | | |\n",
"| background | .nan<br>...<br> | fc: '<span style=\"background-color:#F2F4CB; color:#000\">#F2F4CB</span>'<br>zorder: -1<br> | | |"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"prettymaps.preset('default')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"Insted of using the default configuration you can customize several parameters. The most important are:\n",
"\n",
"- layers: A dictionary of OpenStreetMap layers to fetch.\n",
" - Keys: layer names (arbitrary)\n",
" - Values: dicts representing OpenStreetMap queries\n",
"- style: Matplotlib style parameters\n",
" - Keys: layer names (the same as before)\n",
" - Values: dicts representing Matplotlib style parameters\n",
"\n",
"```python\n",
"plot = prettymaps.plot(\n",
" # Your query. Example: \"Porto Alegre\" or (-30.0324999, -51.2303767) (GPS coords)\n",
" your_query,\n",
" # Dict of OpenStreetMap Layers to plot. Example:\n",
" # {'building': {'tags': {'building': True}}, 'water': {'tags': {'natural': 'water'}}}\n",
" # Check the /presets folder for more examples\n",
" layers,\n",
" # Dict of style parameters for matplotlib. Example:\n",
" # {'building': {'palette': ['#f00','#0f0','#00f'], 'edge_color': '#333'}}\n",
" style,\n",
" # Preset to load. Options include:\n",
" # ['default', 'minimal', 'macao', 'tijuca']\n",
" preset,\n",
" # Save current parameters to a preset file.\n",
" # Example: \"my-preset\" will save to \"presets/my-preset.json\"\n",
" save_preset,\n",
" # Whether to update loaded preset with additional provided parameters. Boolean\n",
" update_preset,\n",
" # Plot with circular boundary. Boolean\n",
" circle,\n",
" # Plot area radius. Float\n",
" radius,\n",
" # Dilate the boundary by this amount. Float\n",
" dilate\n",
")\n",
"```\n",
"\n",
"**plot** is a python dataclass containing:\n",
"\n",
"```python\n",
"@dataclass\n",
"class Plot:\n",
" # A dictionary of GeoDataFrames (one for each plot layer)\n",
" geodataframes: Dict[str, gp.GeoDataFrame]\n",
" # A matplotlib figure\n",
" fig: matplotlib.figure.Figure\n",
" # A matplotlib axis object\n",
" ax: matplotlib.axes.Axes\n",
"```\n",
"\n",
"Here's an example of running prettymaps.plot() with customized parameters:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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jB8/nsWLF/P888+zzz775K3/ps9LT8dbs2YNmqbx/PPPA/Dcc8/h9/tZsWLFN9q3r4Ivez4/+OADbr755u9EX74rBIMauq4SCOR/cXi9Hrze/GWBgAddVwkG878AfX53eS6apvTYNpA+Xld0XcUfyG+b6VvXL0BdV/F1+aITD/EQD/EQD/EQD/EQD/EQD/H4bzz6MxIQS/Pmm2+y7bbbEgqFOP/88/PW3XPPPVRWVuL1epk0aRIff/wx4AZbFEVhzpw5nH766SiKgqIorFmzps/tNsfq1as5+uijGTp0KEceeSSrVq3a7DbPPPMMAwYM4Morr2TUqFHceeed1NbWMnv2bAD23HNPysvL8fv9HHjggdk+AixYsIB99tmHcDjMrrvuyqJFi7Lr9t57b8rLywkEAkybNo3PP/88u27FihWcfPLJDBs2jKlTp3L44Ydv0XmZNWsWP/jBD6isrETXdaqrq4lEIpvtS2/r+jre2rVrOeCAA3jttddwHIdXXnmF/fffn/Xr12/2GvV1zvqioaGBn/70pwwePJhAIMCkSZOyI9I+/fRTJk6cmN3nhg0bNnuuv+z5nDVrVrZt12BlhtNPP51QKMT222/PvHnzsssVRcn+e8GCBSiKskV96cuvr+v+0ksvMWHCBPx+P5WVlV95AA+gqNiLrqsUFuoEQ3p6mY+CAh1dV6moDGTbVlT60b0qBQU6RcXuG5tgSKew0G1bXu7PnpPKqgBen/sllHkL4/V5KC72oukqpWU+PB73V21VdQC/34Pf76Gq2j2epqmUlPrQdZXiEi9en/uFWFbuJxjU8PpUKqvctorivlkSD/EQD/EQD/EQD/EQD/EQD/H4sh7hQh0BFMdx+k1Snblz57LjjjsyZ84cpkyZkl3e3NzMNttsw3XXXcf06dN58MEHue+++7I5xJYvX45hGPj9fi6//HKWL1/O/PnzsW2b5uZm9t9/f8466yxOOOEEAEpLS1FVtdft+iKRSDB16lTOPvts9t57b9566y3uv/9+Pvnkkz7zNV100UU0Nzfz17/+Nbts77335phjjuGCCy5AURRmzpzJhAkTuP766/n444/57LPPiEQibLvttpx99tmcccYZ3HPPPbzxxht89tlngPtBfuaZZ9hxxx256qqrWLJkSTZodPrpp7No0SIeeughJkyYkD3u5s7LNddcwyuvvMJDDz1EaWkp9fX1TJw4kba2tl770te6vo737LPPMnPmTJqbmznyyCN58sknqaqq4tBDD+XYY4/t8xr1ds48nvwIfi6WZbHjjjsyYMAArrvuOqqrq1m/fj3Tpk3LOlxxxRUcddRRXH/99SxdupT33nuvz3P9Zc+nYRi0tbXx0EMP8dJLL/HWW2/l9VVRFK6//nqOP/54HnjgAZ544glWrFiBrusoipLNL7ZgwQK23357HMfpsy8dHR19+vXWT4CqqiouvvhiTj31VJqbm3EcJ++e+m/IfO7fmf0YO+ww5ivZpyAIgiAIgiAIwv8qhmHT1JhgyODJ+P3hb7s73xoyVg544YUXGDp0KBdccAEABx10EPfdd192/ahRo7I/X3755ey+++4AqKpKeXk5mqZRUFBAeXl53n57264vnnnmGY466ija29s56KCDuPbaazn66KN55plnOPHEE3vdrqOjg8LCwrxlxcX
"text/plain": [
"<Figure size 1200x1200 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot = prettymaps.plot(\n",
" 'Praça Ferreira do Amaral, Macau',\n",
" circle = True,\n",
" radius = 1100,\n",
" layers = {\n",
" \"green\": {\n",
" \"tags\": {\n",
" \"landuse\": \"grass\",\n",
" \"natural\": [\"island\", \"wood\"],\n",
" \"leisure\": \"park\"\n",
" }\n",
" },\n",
" \"forest\": {\n",
" \"tags\": {\n",
" \"landuse\": \"forest\"\n",
" }\n",
" },\n",
" \"water\": {\n",
" \"tags\": {\n",
" \"natural\": [\"water\", \"bay\"]\n",
" }\n",
" },\n",
" \"parking\": {\n",
" \"tags\": {\n",
" \"amenity\": \"parking\",\n",
" \"highway\": \"pedestrian\",\n",
" \"man_made\": \"pier\"\n",
" }\n",
" },\n",
" \"streets\": {\n",
" \"width\": {\n",
" \"motorway\": 5,\n",
" \"trunk\": 5,\n",
" \"primary\": 4.5,\n",
" \"secondary\": 4,\n",
" \"tertiary\": 3.5,\n",
" \"residential\": 3,\n",
" }\n",
" },\n",
" \"building\": {\n",
" \"tags\": {\"building\": True},\n",
" },\n",
" },\n",
" style = {\n",
" \"background\": {\n",
" \"fc\": \"#F2F4CB\",\n",
" \"ec\": \"#dadbc1\",\n",
" \"hatch\": \"ooo...\",\n",
" },\n",
" \"perimeter\": {\n",
" \"fc\": \"#F2F4CB\",\n",
" \"ec\": \"#dadbc1\",\n",
" \"lw\": 0,\n",
" \"hatch\": \"ooo...\",\n",
" },\n",
" \"green\": {\n",
" \"fc\": \"#D0F1BF\",\n",
" \"ec\": \"#2F3737\",\n",
" \"lw\": 1,\n",
" },\n",
" \"forest\": {\n",
" \"fc\": \"#64B96A\",\n",
" \"ec\": \"#2F3737\",\n",
" \"lw\": 1,\n",
" },\n",
" \"water\": {\n",
" \"fc\": \"#a1e3ff\",\n",
" \"ec\": \"#2F3737\",\n",
" \"hatch\": \"ooo...\",\n",
" \"hatch_c\": \"#85c9e6\",\n",
" \"lw\": 1,\n",
" },\n",
" \"parking\": {\n",
" \"fc\": \"#F2F4CB\",\n",
" \"ec\": \"#2F3737\",\n",
" \"lw\": 1,\n",
" },\n",
" \"streets\": {\n",
" \"fc\": \"#2F3737\",\n",
" \"ec\": \"#475657\",\n",
" \"alpha\": 1,\n",
" \"lw\": 0,\n",
" },\n",
" \"building\": {\n",
" \"palette\": [\n",
" \"#FFC857\",\n",
" \"#E9724C\",\n",
" \"#C5283D\"\n",
" ],\n",
" \"ec\": \"#2F3737\",\n",
" \"lw\": 0.5,\n",
" }\n",
" }\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In order to plot an entire region and not just a rectangular or circular area, set\n",
"\n",
"```python\n",
"radius = False\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABMQAAATECAYAAACEMNn6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5xcdb3/8dcpU7Zvks2mbHolIY1qCKFKRwEBERUEC+K1e+16LffqD7BcRLBxLYhdkQ5SpEmRGlJIr5tsSdnepp7y+2NmJ1tmZneTQNB5Px+PPLJTzplTZmdn3vP5fr6G7/s+IiIiIiIiIiIiBcI83BsgIiIiIiIiIiLyRlIgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiIiIiIiIiIiBUWBmIiIiIiIiIiIFBQFYiIiIiIiIiIiUlAUiImIiIiIiIiISEFRICYiIiIiIiIiIgVFgZiIiIiIiIiIiBQUBWIiIiIiIiIiIlJQFIiJiIiIiIiIiEhBUSAmIiIiIiIiIiIFRYGYiIiIiIiIiIgUFAViIiIiIiIiIiJSUBSIiYiIiIiIiIhIQVEgJiI
"text/plain": [
"<Figure size 1200x1200 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot = prettymaps.plot(\n",
" 'Bom Fim, Porto Alegre, Brasil', radius = False,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access layers's GeoDataFrames directly like this:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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></th>\n",
" <th>addr:housenumber</th>\n",
" <th>addr:street</th>\n",
" <th>amenity</th>\n",
" <th>operator</th>\n",
" <th>website</th>\n",
" <th>geometry</th>\n",
" <th>addr:postcode</th>\n",
" <th>name</th>\n",
" <th>office</th>\n",
" <th>opening_hours</th>\n",
" <th>...</th>\n",
" <th>contact:phone</th>\n",
" <th>bus</th>\n",
" <th>public_transport</th>\n",
" <th>source:name</th>\n",
" <th>government</th>\n",
" <th>ways</th>\n",
" <th>name:fr</th>\n",
" <th>type</th>\n",
" <th>building:part</th>\n",
" <th>architect</th>\n",
" </tr>\n",
" <tr>\n",
" <th>element_type</th>\n",
" <th>osmid</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>node</th>\n",
" <th>2407915698</th>\n",
" <td>820</td>\n",
" <td>Rua Washington Luiz</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>POINT (-51.23212 -30.03670)</td>\n",
" <td>90010-460</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">way</th>\n",
" <th>126665330</th>\n",
" <td>387</td>\n",
" <td>Rua dos Andradas</td>\n",
" <td>place_of_worship</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>POLYGON ((-51.23518 -30.03275, -51.23512 -30.0...</td>\n",
" <td>90020-002</td>\n",
" <td>Igreja Nossa Senhora das Dores</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>126665331</th>\n",
" <td>1001</td>\n",
" <td>Rua dos Andradas</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.ruadapraiashopping.com.br</td>\n",
" <td>POLYGON ((-51.23167 -30.03066, -51.23160 -30.0...</td>\n",
" <td>90020-015</td>\n",
" <td>Rua da Praia Shopping</td>\n",
" <td>NaN</td>\n",
" <td>Mo-Fr 09:00-21:00; Sa 08:00-20:00</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>129176990</th>\n",
" <td>1020</td>\n",
" <td>Rua 7 de Setembro</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.memorial.rs.gov.br</td>\n",
" <td>POLYGON ((-51.23117 -30.02891, -51.23120 -30.0...</td>\n",
" <td>90010-191</td>\n",
" <td>Memorial do Rio Grande do Sul</td>\n",
" <td>NaN</td>\n",
" <td>Tu-Sa 10:00-18:00</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>129176991</th>\n",
" <td>NaN</td>\n",
" <td>Praça da Alfândega</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.margs.rs.gov.br</td>\n",
" <td>POLYGON ((-51.23153 -30.02914, -51.23156 -30.0...</td>\n",
" <td>90010-150</td>\n",
" <td>Museu de Arte do Rio Grande do Sul</td>\n",
" <td>NaN</td>\n",
" <td>Tu-Su 10:00-19:00</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">relation</th>\n",
" <th>6760281</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>POLYGON ((-51.23238 -30.03337, -51.23223 -30.0...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>[457506887, 457506886]</td>\n",
" <td>NaN</td>\n",
" <td>multipolygon</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6760282</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>POLYGON ((-51.23203 -30.03340, -51.23203 -30.0...</td>\n",
" <td>NaN</td>\n",
" <td>Atheneu Espírita Cruzeiro do Sul</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>[457506875, 457506889, 457506888]</td>\n",
" <td>NaN</td>\n",
" <td>multipolygon</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6760283</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>POLYGON ((-51.23284 -30.03367, -51.23288 -30.0...</td>\n",
" <td>NaN</td>\n",
" <td>Palacete Chaves</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>[457506897, 457506896]</td>\n",
" <td>NaN</td>\n",
" <td>multipolygon</td>\n",
" <td>NaN</td>\n",
" <td>Theodor Wiederspahn</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6760284</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>POLYGON ((-51.23499 -30.03412, -51.23498 -30.0...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>[457506910, 457506913]</td>\n",
" <td>NaN</td>\n",
" <td>multipolygon</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14393526</th>\n",
" <td>1044</td>\n",
" <td>Rua Siqueira Campos</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.sefaz.rs.gov.br</td>\n",
" <td>POLYGON ((-51.23125 -30.02813, -51.23128 -30.0...</td>\n",
" <td>NaN</td>\n",
" <td>Secretaria Estadual da Fazenda</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>[236213286, 1081974882]</td>\n",
" <td>NaN</td>\n",
" <td>multipolygon</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2423 rows × 105 columns</p>\n",
"</div>"
],
"text/plain": [
" addr:housenumber addr:street \\\n",
"element_type osmid \n",
"node 2407915698 820 Rua Washington Luiz \n",
"way 126665330 387 Rua dos Andradas \n",
" 126665331 1001 Rua dos Andradas \n",
" 129176990 1020 Rua 7 de Setembro \n",
" 129176991 NaN Praça da Alfândega \n",
"... ... ... \n",
"relation 6760281 NaN NaN \n",
" 6760282 NaN NaN \n",
" 6760283 NaN NaN \n",
" 6760284 NaN NaN \n",
" 14393526 1044 Rua Siqueira Campos \n",
"\n",
" amenity operator \\\n",
"element_type osmid \n",
"node 2407915698 NaN NaN \n",
"way 126665330 place_of_worship NaN \n",
" 126665331 NaN NaN \n",
" 129176990 NaN NaN \n",
" 129176991 NaN NaN \n",
"... ... ... \n",
"relation 6760281 NaN NaN \n",
" 6760282 NaN NaN \n",
" 6760283 NaN NaN \n",
" 6760284 NaN NaN \n",
" 14393526 NaN NaN \n",
"\n",
" website \\\n",
"element_type osmid \n",
"node 2407915698 NaN \n",
"way 126665330 NaN \n",
" 126665331 http://www.ruadapraiashopping.com.br \n",
" 129176990 http://www.memorial.rs.gov.br \n",
" 129176991 http://www.margs.rs.gov.br \n",
"... ... \n",
"relation 6760281 NaN \n",
" 6760282 NaN \n",
" 6760283 NaN \n",
" 6760284 NaN \n",
" 14393526 https://www.sefaz.rs.gov.br \n",
"\n",
" geometry \\\n",
"element_type osmid \n",
"node 2407915698 POINT (-51.23212 -30.03670) \n",
"way 126665330 POLYGON ((-51.23518 -30.03275, -51.23512 -30.0... \n",
" 126665331 POLYGON ((-51.23167 -30.03066, -51.23160 -30.0... \n",
" 129176990 POLYGON ((-51.23117 -30.02891, -51.23120 -30.0... \n",
" 129176991 POLYGON ((-51.23153 -30.02914, -51.23156 -30.0... \n",
"... ... \n",
"relation 6760281 POLYGON ((-51.23238 -30.03337, -51.23223 -30.0... \n",
" 6760282 POLYGON ((-51.23203 -30.03340, -51.23203 -30.0... \n",
" 6760283 POLYGON ((-51.23284 -30.03367, -51.23288 -30.0... \n",
" 6760284 POLYGON ((-51.23499 -30.03412, -51.23498 -30.0... \n",
" 14393526 POLYGON ((-51.23125 -30.02813, -51.23128 -30.0... \n",
"\n",
" addr:postcode name \\\n",
"element_type osmid \n",
"node 2407915698 90010-460 NaN \n",
"way 126665330 90020-002 Igreja Nossa Senhora das Dores \n",
" 126665331 90020-015 Rua da Praia Shopping \n",
" 129176990 90010-191 Memorial do Rio Grande do Sul \n",
" 129176991 90010-150 Museu de Arte do Rio Grande do Sul \n",
"... ... ... \n",
"relation 6760281 NaN NaN \n",
" 6760282 NaN Atheneu Espírita Cruzeiro do Sul \n",
" 6760283 NaN Palacete Chaves \n",
" 6760284 NaN NaN \n",
" 14393526 NaN Secretaria Estadual da Fazenda \n",
"\n",
" office opening_hours ... \\\n",
"element_type osmid ... \n",
"node 2407915698 NaN NaN ... \n",
"way 126665330 NaN NaN ... \n",
" 126665331 NaN Mo-Fr 09:00-21:00; Sa 08:00-20:00 ... \n",
" 129176990 NaN Tu-Sa 10:00-18:00 ... \n",
" 129176991 NaN Tu-Su 10:00-19:00 ... \n",
"... ... ... ... \n",
"relation 6760281 NaN NaN ... \n",
" 6760282 NaN NaN ... \n",
" 6760283 NaN NaN ... \n",
" 6760284 NaN NaN ... \n",
" 14393526 NaN NaN ... \n",
"\n",
" contact:phone bus public_transport source:name \\\n",
"element_type osmid \n",
"node 2407915698 NaN NaN NaN NaN \n",
"way 126665330 NaN NaN NaN NaN \n",
" 126665331 NaN NaN NaN NaN \n",
" 129176990 NaN NaN NaN NaN \n",
" 129176991 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"relation 6760281 NaN NaN NaN NaN \n",
" 6760282 NaN NaN NaN NaN \n",
" 6760283 NaN NaN NaN NaN \n",
" 6760284 NaN NaN NaN NaN \n",
" 14393526 NaN NaN NaN NaN \n",
"\n",
" government ways name:fr \\\n",
"element_type osmid \n",
"node 2407915698 NaN NaN NaN \n",
"way 126665330 NaN NaN NaN \n",
" 126665331 NaN NaN NaN \n",
" 129176990 NaN NaN NaN \n",
" 129176991 NaN NaN NaN \n",
"... ... ... ... \n",
"relation 6760281 NaN [457506887, 457506886] NaN \n",
" 6760282 NaN [457506875, 457506889, 457506888] NaN \n",
" 6760283 NaN [457506897, 457506896] NaN \n",
" 6760284 NaN [457506910, 457506913] NaN \n",
" 14393526 NaN [236213286, 1081974882] NaN \n",
"\n",
" type building:part architect \n",
"element_type osmid \n",
"node 2407915698 NaN NaN NaN \n",
"way 126665330 NaN NaN NaN \n",
" 126665331 NaN NaN NaN \n",
" 129176990 NaN NaN NaN \n",
" 129176991 NaN NaN NaN \n",
"... ... ... ... \n",
"relation 6760281 multipolygon NaN NaN \n",
" 6760282 multipolygon NaN NaN \n",
" 6760283 multipolygon NaN Theodor Wiederspahn \n",
" 6760284 multipolygon NaN NaN \n",
" 14393526 multipolygon NaN NaN \n",
"\n",
"[2423 rows x 105 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Run prettymaps in show = False mode (we're only interested in obtaining the GeoDataFrames)\n",
"plot = prettymaps.plot('Centro Histórico, Porto Alegre', show = False)\n",
"plot.geodataframes['building']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Search a building by name and display it:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-51.23032682800001 -30.034281028 0.0006073560000103839 0.0008053559999900983\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,-60.067756700000004)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"1.6107119999801965e-05\" opacity=\"0.6\" d=\"M -51.2298412,-30.03353870000001 L -51.2298154,-30.033540599999984 L -51.2298126,-30.0335408 L -51.2298129,-30.033544300000003 L -51.2297808,-30.033546699999988 L -51.2297805,-30.033544400000007 L -51.2297758,-30.0335447 L -51.2297562,-30.0335462 L -51.2297493,-30.033546700000002 L -51.2297572,-30.033626999999992 L -51.22975770000001,-30.033632 L -51.2298302,-30.03362630000001 L -51.2298538,-30.033865000000006 L -51.2298442,-30.0338658 L -51.2298477,-30.033909500000004 L -51.2298412,-30.03390990000001 L -51.2298357,-30.03390249999999 L -51.2298133,-30.033912799999996 L -51.2298168,-30.0339188 L -51.2297959,-30.0339406 L -51.2297906,-30.033938999999993 L -51.2297826,-30.0339586 L -51.2297866,-30.033959199999998 L -51.2297957,-30.034019000000004 L -51.2297902,-30.034021400000004 L -51.229800700000006,-30.0340417 L -51.2298073,-30.0340393 L -51.2298344,-30.034053999999994 L -51.2298319,-30.034065200000004 L -51.2298509,-30.0340704 L -51.2298558,-30.034059600000003 L -51.2298704,-30.0340585 L -51.2298741,-30.034097 L -51.2298921,-30.034095599999993 L -51.2298985,-30.03416019999999 L -51.2298609,-30.034163 L -51.2298683,-30.03423859999999 L -51.2299531,-30.0342322 L -51.2299549,-30.0342512 L -51.2301846,-30.034234 L -51.2301825,-30.0342134 L -51.2302643,-30.03420729999999 L -51.2302569,-30.034132200000002 L -51.2302241,-30.034134599999994 L -51.2302178,-30.0340702 L -51.2302266,-30.0340694 L -51.2302229,-30.034030399999995 L -51.2302285,-30.03403000000001 L -51.230236500000004,-30.0340294 L -51.2302396,-30.034038299999995 L -51.230256600000004,-30.034034099999996 L -51.2302532,-30.0340242 L -51.230280900000004,-30.034001600000003 L -51.2302902,-30.0340033 L -51.23029700000001,-30.033981200000003 L -51.2302871,-30.0339784 L -51.2302841,-30.033920999999996 L -51.2302898,-30.033919600000008 L -51.2302806,-30.0338995 L -51.2302726,-30.033902400000002 L -51.2302486,-30.0338856 L -51.2302511,-30.033877399999994 L -51.2302264,-30.033868700000003 L -51.2302198,-30.033880699999997 L -51.2302148,-30.033878999999995 L -51.230213000000006,-30.033838099999997 L -51.2302054,-30.033838700000004 L -51.2301818,-30.0336 L -51.2302499,-30.033594899999997 L -51.2302471,-30.033566499999996 L -51.2302452,-30.033566699999998 L -51.2302423,-30.0335373 L -51.2302448,-30.033537100000004 L -51.2302419,-30.0335085 L -51.2302051,-30.0335112 L -51.2302053,-30.033513599999992 L -51.2301756,-30.0335159 L -51.2301752,-30.033512399999992 L -51.23014450000001,-30.033514699999994 L -51.2301449,-30.033518200000003 L -51.2300854,-30.033522700000002 L -51.2300843,-30.033511399999984 L -51.2300823,-30.0335115 L -51.2300635,-30.033512799999997 L -51.2300628,-30.033505500000008 L -51.2300334,-30.0335078 L -51.2300336,-30.03350989999999 L -51.2300339,-30.033513 L -51.22995280000001,-30.033519099999996 L -51.229952600000004,-30.033516999999996 L -51.2299524,-30.0335151 L -51.2299225,-30.03351729999999 L -51.2299228,-30.033520499999998 L -51.2298995,-30.03352229999999 L -51.2299009,-30.033537 L -51.2298443,-30.033541300000003 L -51.229844,-30.0335385 L -51.2298412,-30.03353870000001 z\" /></g></svg>",
"text/plain": [
"<shapely.geometry.polygon.Polygon at 0x7f0d2d3aa2c0>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot.geodataframes['building'][\n",
" plot.geodataframes['building'].name == 'Catedral Metropolitana Nossa Senhora Mãe de Deus'\n",
"].geometry[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot mosaic of building footprints"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 700x600 with 36 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import osmnx as ox\n",
"from matplotlib import pyplot as plt\n",
"from matplotlib.font_manager import FontProperties\n",
"\n",
"# Run prettymaps in show = False mode (we're only interested in obtaining the GeoDataFrames)\n",
"plot = prettymaps.plot('Porto Alegre', show = False)\n",
"# Get list of buildings from plot's geodataframes dict\n",
"buildings = plot.geodataframes['building']\n",
"# Project from lat / long\n",
"buildings = ox.project_gdf(buildings)\n",
"buildings = [b for b in buildings.geometry if b.area > 0]\n",
"\n",
"# Draw Matplotlib mosaic of n x n building footprints\n",
"n = 6\n",
"fig,axes = plt.subplots(n,n, figsize = (7,6))\n",
"# Set background color\n",
"fig.patch.set_facecolor('#5cc0eb')\n",
"# Figure title\n",
"fig.suptitle(\n",
" 'Buildings of Porto Alegre',\n",
" size = 25,\n",
" color = '#fff'\n",
")\n",
"# Draw each building footprint on a separate axis\n",
"for ax,building in zip(np.concatenate(axes),buildings):\n",
" ax.plot(*building.exterior.xy, c = '#ffffff')\n",
" ax.autoscale(); ax.axis('off'); ax.axis('equal')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Access plot.ax or plot.fig to add new elements to the matplotlib plot: "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1200x1200 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from matplotlib.font_manager import FontProperties\n",
"\n",
"plot = prettymaps.plot(\n",
" (41.39491,2.17557),\n",
" preset = 'barcelona',\n",
")\n",
"\n",
"# Change background color\n",
"plot.fig.patch.set_facecolor('#F2F4CB')\n",
"# Add title\n",
"plot.ax.set_title(\n",
" 'Barcelona',\n",
" size = 50\n",
")\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use **plotter** mode to export a pen plotter-compatible SVG (thanks to abey79's amazing [vsketch](https://github.com/abey79/vsketch) library)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot = prettymaps.plot(\n",
" (41.39491,2.17557),\n",
" mode = 'plotter',\n",
" layers = dict(perimeter = {}),\n",
" preset = 'barcelona-plotter',\n",
" scale_x = .6,\n",
" scale_y = -.6,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some other examples"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAACKwAAAP7CAYAAAB8kYRPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9d5xcd53n+7/OqVO5q6u6uzpKamXZlmzLFg6yJWMTjAEnxjCGZWzCXZjZ+U1Ydi/D7t7ZubN3lrvwg90JwDB4SWYGGAaPsXHABBtncM62stRJnVPldML9o7qru1pSS7IV7ffz8dCjq77nc77n+zmnjtzy+dT3a3ie5yEiIiIiIiIiIiIiIiIiIiIicoKYJ3sAIiIiIiIiIiIiIiIiIiIiIvLWooIVERERERERERERERERERERETmhVLAiIiIiIiIiIiIiIiIiIiIiIieUClZERERERERERERERERERERE5ISyTvYA3gr6+voYHx8/2cMQkRMkmUzS3d19sochIiIiIiIiIiIiIiIiInLKUsHKcdbX18dZZ51FPp8/2UMRkRMkEomwbds2Fa2IiIiIiIiIiIiIiIiIiByCClaOs/HxcfL5PN///vc566yzTvZwROQ427ZtGzfddBPj4+MqWBEREREREREREREREREROQQVrJwgZ511Fps2bTrZwxARERERERERERERERERERE56cyTPQAREREREREREREREREREREReWtRwYqIiIiIiIiIiIiIiIiIiIiInFAqWDkFeJ5Hf3//yR6GyHE1NjZGsVg82cMQEREREREREREREREREZFTgApWTgEPP/ww55xzzhHHu66rB/8HcaLPy5v9Orze/M4//3w+85nPHNDe1tbG9u3bT+hYRERERERERERERERERETk1KSCldPQli1b+NGPfnSyh8EjjzzC2WefTTAY5NJLL2Xbtm3H9XgvvvgiW7ZsIRKJ0NbWxn/8j/+xbvuJPi8HO57ruoRCIe666y4AfvnLX2JZFuVy+YSN61h5veczFAoRCAROibGIiIiIiIiIiIiIiIiIiMipSQUrp6FKpXKyh8Dk5CTXX389N910E6+88gpnn302H/jAB3Ac57gd8xOf+AQbNmxg27Zt3HPPPVxxxRV120/0eTnY8Xp6erAsi3vuuQeAu+++m1AoxO7du0/o2I6F13s+f/vb3/KlL33plBiLiIiIiIiIiIiIiIiIiIicmlSwcpI8+OCDrFmzhmg0yp/8yZ/Ubfv7v/972traCAQCbNy4kaeeegqoFkMYhsGzzz7LJz/5SQzDwDAMenp6Ft3vcPbt28cNN9xAd3c3H/jAB9i7d+9h97njjjvo7OzkP//n/8zatWv5yle+wtDQEI899hgAl112GclkklAoxHve857aGAFeeeUVrrjiCmKxGJdccgmvvfZabdvll19OMpkkHA6zefNmXnrppdq23bt3c9NNN7F8+XIuuugirrvuuiM6L/fffz/vfOc7aWtrw+/309HRQTabPexYDrVtseP19vZy5ZVX8qtf/QrP8/jFL37Bu9/9bvr7+w97jRY7Z4sZGxvj93//91m6dCnhcJiNGzfWZnR55plnOPfcc2t97t+//7Dn+vWez/vvv78Wu7CYaNYnP/lJotEo55xzDi+88EKt3TCM2vtXXnkFwzCOaCyL5bfYdb/vvvs4++yzCYVCtLW1HfMCGxERERERERERERERERERWZwKVk6C2dlJ/vRP/5SXXnqJa665pm77e97zHh566CG2b9/O2rVr+fSnPw1Ad3c3Y2NjbNy4ka9+9auMjY0xNjZGd3f3ovstplgscv311/Oud72Ln/3sZ7z73e/m+uuvp1gsLrrfyy+/zAUXXFB7HwqFOP/883nxxRcBeOyxx/jud7/Ltm3b6O7u5rrrrsNxHFKpFO94xzvYunUrL774Ipdeeim/93u/V+vnkUce4Vvf+hY7d+5k3bp1fOpTn6pt+9CHPsSf/dmf8corr9SN5XDn5bHHHqNQKPDQQw/R39/PL3/5SxoaGhYdy2LbFjve1NQU8Xicc845h+9+97usXr2aRCJBJpM57DU61DlbjOM4XHnllfT39/PTn/6U3bt3c8sttxAIBEilUrzvfe/jYx/7GK+++ipLly7lxhtvPOy5fr3n8/LLL2dsbIwvfvGLhxzv7/7u7/LSSy9x9dVXc/311x925pTFxnK4/A41TqjO1nPzzTezb98+HnzwQd7//vcvOg4RERERERERERERERERETm2rJM9gLeie++9l+7ubv70T/8UgKuuuop/+Id/qG1fu3Zt7fXnPvc5tmzZAoBpmiSTSSzLoqGhgWQyWdfvofZbzB133MHv/M7vkE6nueqqq/h//p//hxtuuIE77riDf/Nv/s0h98tkMjQ2Nta1JRIJ0ul07f2yZctYuXIlX/va12hvb+fpp59mx44dtLa28vnPfx6AL3zhC0SjUfr6+moFEStWrGDZsmV89rOfZdOmTdi2jWVZfPOb3+Rv//Zvueqqq9i4cSNf+cpXWLNmzWHPC0B7ezvr168HoKOjA4A777zzkGN58MEHFx3noY43O4PHhz/8Yf7Df/gPfOELX+DRRx8ll8sd0TU62DnbvHnzIa/D448/zvbt23nkkUdq12PJkiUA3HPPPSSTST772c8C8Hd/93c0Nzezfft2zjzzzEXP9es5n36/n2QySTQaPeR43//+97N69Wo+//nPc8stt/DEE09w2WWXHTJ+sWt7JPkdbJwALS0t7NixA5/Px4YNGw55fBEREREREREREREREREROT40w8pJMDg4WCvOOJgf/vCHXHDBBXR0dHDzzTdj2/YR9ft69tu3bx8XXXQRX/7yl7nnnnu48cYbueiii9i3b9+i+8VisbriFIDp6ekDiligOvvKsmXL6OvrY3BwkF27dpFIJEgkErS1teE4Tt1SLrMaGxtxHKdWBGJZFp/97GfZt28f55xzDu94xzsoFAqHzfFQFhvL0YxzPtd1Abjuuuv44Ac/yAc+8AEAPM8DjvwazT9nixkYGKC7u/ug531gYIAVK1bU3sdiMZLJ5EH7XHiujzfLsliyZAlDQ0O1ttlzdKSOJr+F7r//flzXZd26ddx0000MDw8f1bFFREREREREREREREREROSN0QwrJ0F3dzd79uw56La+vj5uvvlmvve977F582ZefPFFPvShD9XFBAKBA5ZSOZL9DqalpYU9e/bw3ve+l82bN/Pf/tt/IxqN0tbWtuh+Z599Nn/zN39Te18qlXjhhRf4q7/6qwNibdtmcHCQzs5ObNvm3HPP5fbbb6+LmT/7xeEEAgG+8IUv8Ld/+7ds27aNTZs21doPt8TMfMuXLz/kWPbt23fYcS52vFgsVjdrDhzdNZp/zhbT0dHB/v37yeVyB8xssnTpUnp7e2vvM5kM4+PjixZLzXe05/No9iuVSgwMDLBs2TIA4vE44+PjR9XnG8mvq6uLW2+9lVQqxec+9zne/e53H7DUlIiIiIiIiIiIiIiIiIiIHD+aYeUkeP/738/09DR/+Zd/SX9/f90sE7MzbrS2thKLxYjH4wfsv2LFCu666y76+/t59tlnSafTR7TfwXzgAx/ga1/7Gn/8x39MX18fW7du5ZZbbqnNDHIoN9xwA/v37+dLX/oSu3bt4t//+39Pe3s7W7durcX88pe/ZO/evfzFX/wFDQ0NbN68mWuvvZbBwUFuu+02PM/DNE1yuRyhUGjR47muy9/93d/x3HPPMTAwwDe+8Q2AWsHDoc7LYhYby5GM82iPdyTX6GDnbDFvf/vbWbduHTfeeCPPPvssQ0NDPPnkk1QqFa6++mpGRkb467/+a/bu3ctnPvMZLrjggtpyOYdztPnNWr58Oa+++iqvvvoqTz75JKVSqbZtYGCAPXv28Ed/9EcsWbKECy+8EIDNmzfzta99jZ6eHgYGBo5oLG8kv69//eu88sor5PN51q1bx9jY2BHlJiIiIiIiIiIiIiIiIiIix4YKVk6CeDzOz3/+cx544AHOOOMM/viP/7hWmLBq1Sq+/OUv8+lPf5qlS5fykY9
"text/plain": [
"<Figure size 2200x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot = prettymaps.plot(\n",
" # City name\n",
" 'Barra da Tijuca',\n",
" dilate = 0,\n",
" figsize = (22,10),\n",
" preset = 'tijuca',\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1200x1200 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot = prettymaps.plot(\n",
" 'Stad van de Zon, Heerhugowaard, Netherlands',\n",
" preset = 'heerhugowaard',\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use prettymaps.create_preset() to create a preset:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"| | layers | style | circle | radius | dilate |\n",
"|:----------|:--------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:----------------|:----------------|\n",
"| building | tags:<br> building: true<br> leisure:<br> - track<br> - pitch<br> | ec: '<span style=\"background-color:#2F3737; color:<span style=\"background-color:#fff; color:#000\">#fff</span>\">#2F3737</span>'<br>lw: 1<br>palette:<br>- '<span style=\"background-color:#fff; color:#000\">#fff</span>'<br>zorder: 4<br> | null<br>...<br> | null<br>...<br> | null<br>...<br> |\n",
"| streets | width:<br> footway: 3<br> path: 3<br> pedestrian: 3<br> primary: 6<br> residential: 3.5<br> secondary: 5<br> tertiary: 4<br> trunk: 6<br> | ec: '<span style=\"background-color:#2F3737; color:#fff\">#2F3737</span>'<br>fc: '<span style=\"background-color:#F1E6D0; color:#000\">#F1E6D0</span>'<br>lw: 1.5<br>zorder: 3<br> | | | |\n",
"| perimeter | .nan<br>...<br> | fill: false<br>lw: 0<br>zorder: 0<br> | | | |"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"prettymaps.create_preset(\n",
" \"my-preset\",\n",
" layers = {\n",
" \"building\": {\n",
" \"tags\": {\n",
" \"building\": True,\n",
" \"leisure\": [\n",
" \"track\",\n",
" \"pitch\"\n",
" ]\n",
" }\n",
" },\n",
" \"streets\": {\n",
" \"width\": {\n",
" \"trunk\": 6,\n",
" \"primary\": 6,\n",
" \"secondary\": 5,\n",
" \"tertiary\": 4,\n",
" \"residential\": 3.5,\n",
" \"pedestrian\": 3,\n",
" \"footway\": 3,\n",
" \"path\": 3\n",
" }\n",
" },\n",
" },\n",
" style = {\n",
" \"perimeter\": {\n",
" \"fill\": False,\n",
" \"lw\": 0,\n",
" \"zorder\": 0\n",
" },\n",
" \"streets\": {\n",
" \"fc\": \"#F1E6D0\",\n",
" \"ec\": \"#2F3737\",\n",
" \"lw\": 1.5,\n",
" \"zorder\": 3\n",
" },\n",
" \"building\": {\n",
" \"palette\": [\n",
" \"#fff\"\n",
" ],\n",
" \"ec\": \"#2F3737\",\n",
" \"lw\": 1,\n",
" \"zorder\": 4\n",
" }\n",
" }\n",
")\n",
"\n",
"prettymaps.preset('my-preset')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use prettymaps.delete_preset() to delete presets:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Before deletion:\n"
]
},
{
"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>preset</th>\n",
" <th>params</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>barcelona</td>\n",
" <td>{'layers': {'perimeter': {'circle': False}, 's...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>barcelona-plotter</td>\n",
" <td>{'layers': {'streets': {'width': {'primary': 5...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>cb-bf-f</td>\n",
" <td>{'layers': {'streets': {'width': {'trunk': 6, ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>default</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>heerhugowaard</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>macao</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'cust...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>minimal</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>my-preset</td>\n",
" <td>{'layers': {'building': {'tags': {'building': ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>tijuca</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" preset params\n",
"0 barcelona {'layers': {'perimeter': {'circle': False}, 's...\n",
"1 barcelona-plotter {'layers': {'streets': {'width': {'primary': 5...\n",
"2 cb-bf-f {'layers': {'streets': {'width': {'trunk': 6, ...\n",
"3 default {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"4 heerhugowaard {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"5 macao {'layers': {'perimeter': {}, 'streets': {'cust...\n",
"6 minimal {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"7 my-preset {'layers': {'building': {'tags': {'building': ...\n",
"8 tijuca {'layers': {'perimeter': {}, 'streets': {'widt..."
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"After deletion:\n"
]
},
{
"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>preset</th>\n",
" <th>params</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>barcelona</td>\n",
" <td>{'layers': {'perimeter': {'circle': False}, 's...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>barcelona-plotter</td>\n",
" <td>{'layers': {'streets': {'width': {'primary': 5...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>cb-bf-f</td>\n",
" <td>{'layers': {'streets': {'width': {'trunk': 6, ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>default</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>heerhugowaard</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>macao</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'cust...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>minimal</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>tijuca</td>\n",
" <td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" preset params\n",
"0 barcelona {'layers': {'perimeter': {'circle': False}, 's...\n",
"1 barcelona-plotter {'layers': {'streets': {'width': {'primary': 5...\n",
"2 cb-bf-f {'layers': {'streets': {'width': {'trunk': 6, ...\n",
"3 default {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"4 heerhugowaard {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"5 macao {'layers': {'perimeter': {}, 'streets': {'cust...\n",
"6 minimal {'layers': {'perimeter': {}, 'streets': {'widt...\n",
"7 tijuca {'layers': {'perimeter': {}, 'streets': {'widt..."
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Show presets before deletion\n",
"print('Before deletion:')\n",
"display(prettymaps.presets())\n",
"# Delete 'my-preset'\n",
"prettymaps.delete_preset('my-preset')\n",
"# Show presets after deletion\n",
"print('After deletion:')\n",
"display(prettymaps.presets())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use **prettymaps.multiplot** and **prettymaps.Subplot** to draw multiple regions on the same canvas"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABMQAAATECAYAAACEMNn6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3xb5d338c85Gpb3djxiZw+ySQgJJIQd9h4djI6nLb1bSqGstrSlgxY6bkaBtpRVWlahrLBnQgiEELL3Trz3tmyNc87zh2TZih0noRTS29/362Uc6ehMSTb6+nf9LsNxHAcREREREREREZFBwvy8D0BEREREREREROSzpEBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMigokBMREREREREREQGFQViIiIiIiIiIiIyqCgQExERERERERGRQUWBmIiIiIiIiIiIDCoKxEREREREREREZFBRICYiIiIiIiIiIoOKAjERERERERERERlUFIiJiIiIiIiIiMig4v48dlpaWkp9ff3nsWsR+Zzk5ORQUlLyeR+GiIiIiIiIyGcfiJWWlnLYYYfh9/s/612LyOcoKSmJTZs2KRQTERERERGRz91nHojV19fj9/t59NFHOeywwz7r3YvI52DTpk1ceuml1NfXKxATERERERGRz93nMmQS4LDDDmP69Omf1+5FRERERERERGSQOmSb6juOQ1lZ2ed9GCL/UXV1dXR1dX3ehyEiIiIiIiIyqByygdi7777L5MmTD/jxtm0rWOjHZ31d/q8/D5/0/A4//HCuvvrqPvfn5eWxefPmz/RYRERERERERAa7QzYQO1hz5szhySef/LwPg8WLFzNp0iQSEhI4+uij2bRp0390f2vWrGHOnDkkJSWRl5fHD37wg7jln/V16W9/tm3j8/lYsGABAG+88QZut5tgMPiZHden5ZNeT5/Ph9frPSSORURERERERGSw+z8TiIVCoc/7EGhsbOScc87h0ksvZf369UyaNIlzzz0Xy7L+Y/v86le/ysSJE9m0aRMvvfQSxx13XNzyz/q69Le/3bt343a7eemllwB48cUX8fl8bN++/TM9tk/DJ72eS5cu5Xe/+90hcSwiIiIiIiIig90hFYgtXLiQ0aNHk5yczPe+9724Zffeey95eXl4vV6mTp3KRx99BETCFsMwWLFiBV/72tcwDAPDMNi9e/eA6+3Prl27OP/88ykpKeHcc89l586d+13nueeeo6CggB/+8IeMGTOGP/7xj1RVVbFkyRIAjjnmGHJycvD5fMyfPz92jADr16/nuOOOIzU1laOOOoqNGzfGlh177LHk5OSQmJjI7NmzWbt2bWzZ9u3bufTSSxk2bBhHHnkkZ5999gFdl7feeosTTjiBvLw8PB4P+fn5tLe37/dY9rVsoP3t2bOHk08+mTfffBPHcXj99dc56aSTYj3iBnqOBrpmA6mrq+Nb3/oWQ4cOJTExkalTp8Yq0j7++GOmTJkS22ZFRcV+r/UnvZ5vvfVW7LF7h5Xdvva1r5GcnMzkyZNZvXp17H7DMGK3169fj2EYB3QsA53fQM/7q6++yqRJk/D5fOTl5X3qAZ6IiIiIiIj
"text/plain": [
"<Figure size 1200x1200 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Draw several regions on the same canvas\n",
"prettymaps.multiplot(\n",
" prettymaps.Subplot(\n",
" 'Cidade Baixa, Porto Alegre',\n",
" style={'building': {'palette': ['#49392C', '#E1F2FE', '#98D2EB']}}\n",
" ),\n",
" prettymaps.Subplot(\n",
" 'Bom Fim, Porto Alegre',\n",
" style={'building': {'palette': ['#BA2D0B', '#D5F2E3', '#73BA9B', '#F79D5C']}}\n",
" ),\n",
" prettymaps.Subplot(\n",
" 'Farroupilha, Porto Alegre',\n",
" style={'building': {'palette': ['#EEE4E1', '#E7D8C9', '#E6BEAE']}}\n",
" ),\n",
" # Load a global preset\n",
" preset='cb-bf-f',\n",
" # Figure size\n",
" figsize=(12, 12)\n",
")\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "main",
"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.10.9 (main, Jan 11 2023, 15:21:40) [GCC 11.2.0]"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "54450f6f75536567d66e0f62469206cde91211157bc4b123d518773c336ee8c7"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}