Skip to content

Instantly share code, notes, and snippets.

@ekellbuch
Last active December 5, 2024 00:11
Show Gist options
  • Save ekellbuch/868ac0e483bed5b68261458a85373204 to your computer and use it in GitHub Desktop.
Save ekellbuch/868ac0e483bed5b68261458a85373204 to your computer and use it in GitHub Desktop.
Discrete Color Palette.ipynb
Display the source blob
Display the rendered blob
Raw
{
"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": "iVBORw0KGgoAAAANSUhEUgAAAW8AAACRCAYAAAAM0znJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAADV9JREFUeJzt3XtM1XXAx/EPl6OCHBHSelTKSwsI\n3RIxmsVySpldNBZzqGGZJtmYaWvO2x+1/KeVOkuTGK5NN2suFiJqmuUtm5e8JDbzmqYuUJEhB0k4\nwO/5w0XyAHL0IN/zfXq/tv7ox85vnx3hfa4cghzHcQQAsEqw6QEAgDtHvAHAQsQbACxEvAHAQsQb\nACxEvAHAQsQbACxEvAHAQsQbACxEvAHAQsQbACxEvAHAQsQbACxEvAHAQqH+XDghIUENDQ2KiIho\nrz0A8P9eVVWVgoODdezYsbs+h1/xbmhokOM4qrpR589pOkQnb43pCT5xOV7TE3zTyfSAtjkhIaYn\n+MQrO3Y6DZY8UK8PMr2gTY7jqKGhwa9z+BXviIgIVd2oU/cxS/0a0RGmbv3M9ASfjP1rnekJPumW\n5de3Toc4n9Tf9ASfbNRTpif4pOL0/5ie4BPXka6mJ7Rp7f416hLe2a9zWHJTCgC4FfEGAAsRbwCw\nEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEG\nAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsR\nbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwEPEGAAsRbwCwUJDjOM7dXjg+\nPl6O4yjIFdaem+6JTt4a0xN84nK8pif4ppPpAW1zQkJMT/CJV3bsdBosua9XH2R6QZu89bUKCgrS\n8ePH7/ocof4MCA4OVkNDgyK6+HWajmHDRrSrwP8Rvqmz6QHocHVVXgUH+3dj6Nc9bwCAGZY8DgIA\n3Ip4A4CFiDcAWIh4A4CFiDcAWIh4A4CFiDcAWIh4A4CFiDcAWIh4A4CFiDcAWIh4A4CFiDcAWIh4\nA4CFiDcAWIh4A4CFiDcAWIh4A4CFiDcAWIh4A4CFiDcAWIh4A4CFiDcAWIh4A4CFiDcAWIh4A4CF\niDcAWIh4A4CFiDcAWIh4A4CFQv258IgRI+TxeNprCwD8Z7jdbm3fvv2uL+9XvD0ejzwej4JcYf6c\npkN08taYntAml+M1PcEnQZ2CTE/wSUOIHQ8svQoxPcEnToMd16fqA//701tf6/c5/Iq3JAW5wtR9\nzFK/h9xrU7cuMz2hTS+XFJie4JNur7pMT/DJ+aT+pif4ZKOTYnqCTypOP2B6gk9Cj3Q1PaFNa/ev\n8fscltyUAgBuRbwBwELEGwAsRLwBwELEGwAsRLwBwELEGwAsRLwBwELEGwAsRLwBwELEGwAsRLwB\nwELEGwAsFOQ4jnO3Fx46dCgfCduO+EjY9sVHwrYvPhK2/Xjra+V2u3XgwIG7PodfHwnrdrv9uXiL\n/vnjDu1+7i5+f/ptE/dsZzv7L++8F6m5Fzs7t9uZbvov/5vfC/diZxd19vt8ft3zvheGDh0qSX7d\nInUEdrYvdrYfGzZK7PSXJY+DAAC3It4AYCHiDQAWIt4AYCHiDQAWIt4AYCHiDQAWCrj3eQMA2sY9\nbwCwEPEGAAsRbwCwEPEGAAu170ft+eHy5ctavXq1jhw5ot9++03V1dVavXq1nnjiCdPTGhUXF6ug\noED79u3TX3/9pe7duysxMVGzZs1S3759Tc9rdPToUX3xxRc6duyYrl69Krfbrfj4eGVnZ2vIkCGm\n57UqLy9PixYtUnx8vAoLC03PabRv3z699tprLX5t06ZNevjhhzt4UeuKi4u1fPlyHT58WHV1dXrw\nwQc1efJkvfLKK6anSZLmzp2rgoKCVr++a9cuPfDAAx24qHXnzp3T0qVLdejQIVVWVqp3795KS0vT\n5MmT1alTJ9PzAifeZ8+eVV5envr27au4uDgdPnzY9KRmVq5cqUOHDmn06NGKi4vTlStXtGbNGqWl\npSk/Pz9gfogvXLig+vp6jRs3Tj179pTH41FRUZEyMzOVl5enp556yvTEZq5cuaKcnByFh4ebntKq\n119/XQMHDmxyLFBCI0k7d+5Udna2kpOTNXPmTIWGhurcuXMqKSkxPa1RRkaGhg0b1uSY4zj64IMP\n1KdPn4C5Pi9duqRx48bJ7XYrMzNTkZGROnDggBYvXqxTp07pk08+MT1RcgKEx+NxysvLHcdxnK1b\ntzqxsbHO3r17Da9q6uDBg05NTU2TY2fPnnUGDRrkzJkzx9Aq31RXVztPPvmkk5WVZXpKi+bMmeNM\nmjTJyczMdMaOHWt6ThN79+51YmNjna1bt5qe0qrKykpn2LBhzsKFC01PuWO//PKLExsb6+Tk5Jie\n0ig3N9eJjY11Tp482eT4jBkznISEBKe2ttbQsn8FzHPeERERioqKMj3jtoYMGdLs4VK/fv30yCOP\n6MyZM4ZW+SYsLEzR0dGqrKw0PaWZ4uJirV+/XvPmzTM9pU1VVVWqq6szPaOZoqIiVVZWaubMmZJu\n7nQs+RWODRs2KCgoSC+99JLpKY2uX78uSbrvvvuaHO/Ro4dCQ0MVEmL+rx8FTLxt5TiOysrKAvKG\np6qqSuXl5frjjz+0ZMkSnTx5stlDVtMcx9HChQuVlpamRx991PSc25o9e7aSkpL02GOPacqUKTpx\n4oTpSY327NmjAQMGaOfOnRo+fLiSkpKUnJysRYsWqb6+3vS8Vnm9Xn333XdKTExUTEyM6TmNHn/8\ncUnSggULdPz4cZWUlGj9+vUqKCjQtGnTFBxsPp0B85y3rdavX69Lly7p3XffNT2lmfnz52vLli2S\nJJfLpfHjx2v69OmGVzW1bt06nT59Wp9//rnpKa1yuVx67rnn9PTTTysqKkonTpzQl19+qYkTJyo/\nP1/9+/c3PVF//vmnSktLNXfuXL355ptKSEjQ9u3blZeXp5qaGi1YsMD0xBbt3r1bFRUVGjNmjOkp\nTaSkpGjmzJnKzc3Vtm3bGo+/8847ys7ONrjsX8TbD2fOnNGHH36opKQkvfzyy6bnNJOdna2MjAyV\nlpaqsLBQtbW18nq9AfFKuXTzkcHixYuVlZWl+++/3/ScVg0ZMqTJu3RSU1M1cuRIpaena/ny5Vq8\neLHBdTdVV1fr2rVreu+995SVlSVJGjVqlKqrq/X111/r7bffVnR0tOGVzW3YsEEul0vPP/+86SnN\nxMTEKDk5Wc8++6y6d++uHTt2aNmyZYqOjtaECRNMzyPed+vKlSt66623FBkZqU8//TQgHkb9X3Fx\ncYqLi5MkjR07Vunp6Zo3b54+++wzw8tuysnJkcvl0htvvGF6yh2Lj4/XsGHDtHfvXtNTJEldunSR\npGbPG48ZM0abN2/W0aNHNXz4cBPTWnX9+nX9+OOPSklJCbinHTdu3Kj3339fmzdvbnwHzKhRo+Q4\njj7++GO98MILioyMNLox8IpjAY/Ho2nTpsnj8WjlypXq2bOn6UltcrlcSk1N1ffff68bN26YnqPL\nly9r1apVmjhxosrKynTx4kVdvHhRNTU18nq9unjxoq5du2Z65m316tUrYDb+8z3Yo0ePJsf/+f9A\n2XmrH374QX///XfAPWUiSV999ZUGDhzY7K2LI0eOVHV1tY4fP25o2b+I9x2qqanR9OnTde7cOeXm\n5mrAgAGmJ/nsxo0bchyn8ZV0k65evSqv16tFixYpNTW18b8jR47ozJkzSk1NVV5enumZt3XhwoWA\nucf4z/vPL1261OR4aWmpJAXkUyZFRUUKDw/XyJEjTU9ppqysrMUXer1eryQFxIvAPG1yB+rr6zVr\n1iz9+uuvWrFihQYPHmx6UovKy8ub/bBWVVVpy5Yt6tWrV7O3P5kQExPT4ouUS5cuVXV1tebPn69+\n/fp1/LAWtHR9HjhwQPv27VNaWpqhVU2NHj1aeXl5ys/Pb3zx3HEcffPNNwoPDw+479Xy8nLt2bNH\nL774osLCwkzPaaZ///76+eefdf78eT300EONxzdu3KiQkJDGpyNNCqh4r1ixQpIa3zNdWFiogwcP\nqlu3bsrMzDQ5TZL00Ucfadu2bRoxYoQqKiqa/Ap3165d9cwzzxhc969Zs2apc+fOSkxMVM+ePVVS\nUqJvv/1WpaWlWrJkiel5kiS3293i9bVq1SqFhIQEzHUp3bw+w8LClJiYqKioKJ06dUpr165VVFSU\nZsyYYXqeJGnQoEFKS0tTbm6url69qoSEBO3cuVO7d+/W7NmzFRERYXpiE5s2bVJdXV1APmUiSVOn\nTtWuXbs0YcIEvfrqq4qMjNSOHTu0a9cujR8/PiDuAAXUH2No7dasT58+Td6uY8qkSZO0f//+Fr8W\nKBslKT8/X4WFhTp9+rQqKyvldrs1ePBgTZkyRcnJyabn3dakSZNUWVkZUJ9tsnr1ahUVFen8+fOq\nqqpSdHS0UlJSNGPGDPXu3dv0vEa1tbVasWKF1q1bp7KyMsXExGjy5MkaP3686WnNZGRk6MKFC/rp\np58C4hdeWlJcXKxly5bp999/V0VFhfr06aP09HRNnTo1IDYHVLwBAL7hBUsAsBDxBgALEW8AsBDx\nBgALEW8AsBDxBgALEW8AsBDxBgALEW8AsBDxBgAL/S/HZ0BVXBIr8AAAAABJRU5ErkJggg==\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