Created
August 11, 2023 23:29
-
-
Save calebrob6/f6613fecbd64c3333a5cc56fb0d06bca to your computer and use it in GitHub Desktop.
Simple notebook for creating a high DPI legend out of a list of colors and labels with matplotlib.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"import matplotlib.patches as mpatches" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"legend_data = [\n", | |
" ('#ffffff', '0-20% damage'),\n", | |
" ('#fcbea5', '20-40% damage'),\n", | |
" ('#fb7050', '40-60% damage'),\n", | |
" ('#d32020', '60-80% damage'),\n", | |
" ('#67000d', '80-100% damage'),\n", | |
"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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", | |
"text/plain": [ | |
"<Figure size 300x200 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(3,2))\n", | |
"plt.axis(\"off\")\n", | |
"\n", | |
"patches = []\n", | |
"for hex, label in legend_data:\n", | |
" patches.append(mpatches.Patch(facecolor=hex, label=label, edgecolor=\"black\", linewidth=0.5))\n", | |
"\n", | |
"legend = plt.legend(\n", | |
" handles=patches,\n", | |
" loc='center',\n", | |
" bbox_to_anchor=(0.5, 0.5),\n", | |
" title=\"Legend\",\n", | |
" title_fontsize=22,\n", | |
" alignment=\"left\",\n", | |
" frameon=False,\n", | |
" edgecolor=\"black\",\n", | |
" handlelength=3,\n", | |
" handleheight=1,\n", | |
" labelspacing=0.2,\n", | |
" fontsize=18\n", | |
")\n", | |
"\n", | |
"plt.savefig(\"legend.png\", dpi=300, bbox_inches=\"tight\")\n", | |
"plt.show()\n", | |
"plt.close()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "geospatiallib", | |
"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" | |
}, | |
"orig_nbformat": 4 | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment