Last active
December 5, 2024 00:11
-
-
Save ekellbuch/868ac0e483bed5b68261458a85373204 to your computer and use it in GitHub Desktop.
Discrete Color Palette.ipynb
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
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "Discrete Color Palette.ipynb", | |
"provenance": [], | |
"collapsed_sections": [], | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/ekellbuch/868ac0e483bed5b68261458a85373204/discrete-color-palette.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "vhkmFJT_03je", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"import matplotlib as mpl\n", | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"import numpy as np\n", | |
"\n", | |
"sns.set_style(\"white\")\n", | |
"sns.set_context(\"talk\")\n", | |
"\n", | |
"color_names = [\n", | |
" \"windows blue\",\n", | |
" \"red\",\n", | |
" \"amber\",\n", | |
" \"faded green\",\n", | |
" \"dusty purple\",\n", | |
" #\"orange\",\n", | |
" #\"clay\",\n", | |
" #\"pink\",\n", | |
" #\"greyish\",\n", | |
" #\"mint\",\n", | |
" #\"light cyan\",\n", | |
" #\"steel blue\",\n", | |
" #\"forest green\",\n", | |
" #\"pastel purple\",\n", | |
" #\"salmon\",\n", | |
" #\"dark brown\",\n", | |
"]\n", | |
"\n", | |
"num_colors = 8\n", | |
"\n", | |
"colors = sns.xkcd_palette(color_names[:num_colors])\n", | |
"cmap = mpl.colors.LinearSegmentedColormap.from_list(\n", | |
" 'Custom cmap', colors, num_colors)\n", | |
"bounds = np.linspace(0, num_colors, num_colors+1)\n", | |
"norm = mpl.colors.BoundaryNorm(bounds, num_colors +1)\n" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "SB8HJgmy1ZMi", | |
"colab_type": "code", | |
"outputId": "7be81883-a171-42ff-9e7e-d6f3b63d7826", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 162 | |
} | |
}, | |
"source": [ | |
"a = np.arange(num_colors)[None,:]\n", | |
"\n", | |
"plt.imshow(a, cmap=cmap, norm=norm)\n", | |
"plt.xticks([])\n", | |
"plt.yticks([])\n", | |
"\n", | |
"cbar = plt.colorbar(orientation='horizontal')\n", | |
"tick_locs = (np.arange(num_colors +1) + 0.5) * (num_colors) / num_colors\n", | |
"cbar.set_ticks(tick_locs)\n", | |
"cbar.set_ticklabels(np.arange(1, num_colors+1))\n", | |
"plt.show()" | |
], | |
"execution_count": 0, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment