{ "cells": [ { "cell_type": "markdown", "id": "35da7799-c870-40e1-bde7-4ba68e890c90", "metadata": {}, "source": [ "# Colour-blind Safe Palettes\n", "\n", "Colour vision deficiency (a.k.a colour-blindness) is a condition that can effect upward of 5% of the population, and often results in difficulty percieving distinctions between some colours. The most common kinds of colour vision deficiency result in difficulty percieving differences between colours in the re-green range. Glasbey offers some features that can help make created or extended colour palettes more easily distinguished by those with some degree of colour vision deficiency. \n", "\n", "It should be noted that the methods used in Glasbey can at best aid in the creation of palettes that are *more* accessible to individuals with colour vision deficiency. Just as a large enough palette will result in some colours that are hard to distinguish without colour vision deficiency, even using the options described here cannot ensure that individuals with colour vision deficiency will not have any difficulty distinguishing among colours in the palettes created.\n", "\n", "To demonstrate some examples of palettes that are more assessible to individuals with colour vision deficiency we'll need to import glasbey, and to visualize the colour palettes we'll use seaborn." ] }, { "cell_type": "code", "execution_count": 1, "id": "d97ecaf8-f8d6-4c4b-b08d-cb5d3925db79", "metadata": {}, "outputs": [], "source": [ "import glasbey\n", "import seaborn as sns\n", "\n", "sns.set()" ] }, { "cell_type": "markdown", "id": "8e972edb-3033-46e8-a20b-63d3d2c5578a", "metadata": {}, "source": [ "The most basic option, available in all the standard `glasbey` functions (`create_palette`, `extend_palette` and `create_block_palette`), is to set the option `colorblind_safe=True`. " ] }, { "cell_type": "code", "execution_count": 14, "id": "75661a01-b2bd-4179-a779-1be7f6ebac2a", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAABhCAYAAADiKT2SAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAABPRJREFUeJzt2r9r3HUcx/FXLpeAx0UIbaRNcw5KF0EhmQtOSis6dsri5uTmJHVzrCA4udup/4BUEDq4JlQRlKJo86PFpr9s7I+7y339F74q8vVtH4/5O7w4vvnk8+RurmmaJgAAAFBUr+sBAAAA8E8IWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAACl9ds+2DTJ3v1kMvsX1/zPjI5uZH5llKPbO2mm067nlDDX72d+ZZTZ3iTNpOs1dezPP81oNMzOzmGm06brOSX0+3MZvTjM4+yliZetrXsHw5w6djx7dw4yda610u/3c+rYSm5OEp9Ye/OTh1kdDLP/6DDTxuWjjf5cL6uDYe7s7GTm77O1fn8ly6Nh7u0c5mjqXWtjvt/L8miYJzt300yPup5TxuDEc8lzw+TxYTJzX2tlMEx67b6LnWuapvWneuaT5Nre3571zPnxj42sfr6V/fc2Mr6+3fWcEhZPr2f1860cnLme6bUnXc8p463TP2Rr63w2Ni5ne/ug6zklrK8fz9bW+XydM3mQa13PKePTD97N1Yuf5fUP3s+3P//U9ZwSXnvp5Vy9+Fnevp5871hr7fTepVw5u5k3v7yU7+791vWcEl5dfiFXzm7mw42N/LLt3tHWK+tf5MLWZj7euJQb2961Nl5cfyEXtjbzzcZH+X37167nlHHuyjvJG+eTry4n993XWjm3mQyfb/WonyIDAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgtLmmaZq2D+/fT54e/Ytr/mdGs930V9Yyvb2bZjLuek4JcwuL6a+s5Wh/kuZp61fzmXdrYZy1tWF2dw8zHs+6nlPC4mIva2vDPM5+Znna9ZwyHtxZyuqx49m/c5DxZNL1nBIWFxayeux4bk2SsWOttYXpw5wcLOXmo4cZz5xrbSz2ejk5WMrd3d1Mx+4dbS0srmR5bSn3dh9m6n9oK/3FXpbXlvJk925m42nXc8oYnBgkg2Hy6DBxrrUzGCa9dt/F/qWwBQAAgP8aP0UGAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoLQ/AYZx6LETT1cVAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "palette = glasbey.create_palette(palette_size=12, colorblind_safe=True)\n", "sns.palplot(palette)" ] }, { "cell_type": "markdown", "id": "5930d6d7-0584-4e4a-83f0-f190c5b48c88", "metadata": {}, "source": [ "Note how the resulting palette selects reds and blues first, before eventually selecting greens, but attempts to use lightness contrast among those to make them more distinguishable. Because palette optimization by hill-climbing among neighbors is harder when measuring distances in a colour-vision-deficient-perceptual-space but selecting neighbors in the full colour space, it can be beneficial to increase the optimization search radius to help it get more distinguishability:" ] }, { "cell_type": "code", "execution_count": 17, "id": "9b03b419-7de0-477e-aef2-19387ca9e94a", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAABhCAYAAADiKT2SAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAABO9JREFUeJzt2rFrnHUcx/FPkuulkos1rWBb77q5KBRzICh0c1KchE4OguDmXyAODo466Sw4F5y6ubhIB+FihYLYQWkuaZVqUpOoubvc47/wqJTza1+v+Rm+PNx9n9+b51lqmqYJAAAAFLW86AEAAADg3xC2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAErrtL2waZKd/WQ6f4jT/M9cPL6T7oVBJne308xmix6nhKVOJ90Lg8x3pmmmi56mjt2V4wwGvWxvH2Y2axY9TgmdzlIuDXrJfD+JxdbWnelRBquDbB9vZ9bYa210ljoZrF7K3Wnijv0Nk98yWFvP9tFBZvOTRU9TQmd5JYO19fyyvZ25c0drnVNns9E/k73xg5zMPA/aWOksZ6N/Jn/s/Jq5e9Za7+zpZL2XHBwmc+e1VtZ7yUq7d7FLTdO0vqtXPkpu7vzjsR45X30/zOXro3z72jBHt7YWPU4Ja89t5vL1Ue5fuZ3ZzT8XPU4Zrz7zXUajqxkOr2Vr6/6ixylhc/PJjEZXk72PkhOLra3hD19m9MIow6+H2Tq019rY7G1m9MIor91ObllrrW3c/jSj19/K8PNPs/XLT4sep4TNc09l9PpbeXc4zI9b/p9tPfvix3nvxjv54KVPcueb3UWPU8Kl5y/mvRvv5IuX38/+t3cWPU4ZVz98JXnzavLZteRn57VW3n4jeeLxVpf6FBkAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClLTVN07S9eHc/OT55iNP8z1ycjrN6vp/je+M0k8mixylhqdvN6vl+TnanaY5b/zQfefdOTdLv9zIeH2YymS96nBK63eX0+73kZD+JxdbWePpH+qf7Gf85zqSx19roLnXTP93PvWkysdZaW54epL+2nvHRQSYns0WPU0J3pZP+2np+HY8zc+5o7dTquWw8fSZ7Ow8ym3getNHprmTj6TP5fXcv84n/Z1u9c48l673k4DA5cV5rZb2XrLR7F/u3whYAAAD+a3yKDAAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpfwFmnOmxOoGPGQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "palette = glasbey.create_palette(palette_size=12, colorblind_safe=True, optimize_palette_search_radius=50)\n", "sns.palplot(palette)" ] }, { "cell_type": "markdown", "id": "e5997db9-8251-4f80-8a04-382de5887247", "metadata": {}, "source": [ "The default `colorblind_safe=True` options simulates only mild colour vision deficiency of the most common variety. To be robust against more severe cases of colour vision deficiency you can use the `cvd_severity` option, which takes values between 0, for essentially no deficiency, through to 100, which represents the most severe cases." ] }, { "cell_type": "code", "execution_count": 20, "id": "aca841bf-08c4-4d3f-a264-f6ffd30d51da", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAABhCAYAAADiKT2SAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAABOVJREFUeJzt2r9rnAUcx/HPXa4JXmwhpTZtk5YWJweLzVBwcpNKx4KugrPg5lIhQ0EQnPoPuDhUN1GQDkKnLppKlQqiSJukv2hzVWnaXC73OPQfeFTK+a2v1/wMH77DPc8brtM0TRMAAAAoqjvpAQAAAPBvCFsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApfXaPtg0ye1BMho/zTnPlhe2bmTm0OFs3VxNMxpNek4JnV4vM4cOZ2012Xay1o4dXU06h5NmNWkcrpVOL+kczs1HDzNqmkmvKeP5jcfZu7gvG2v3Mva71kq313tys9XV7LhZa8Pn5rNwoJ/125sZ7fj4aKM31c3CgdlsjBMXa2/P441M9+cy3BykaXYmPaeETmcq0/253H5wP6Oxm7W1MJpPZ3/S3E3iddBKZ/7JJ1urZ5um/RfdmQ+Ta6v/dNb/z6e/LGXp4kpWXl/Kwx+uTHpOCbMvn8jSxZWcXBrlipO19uiPk+ntXsnoz6Vkx+FamTqR3u6VvPHNF/nx9/uTXlPGOx+tZPny+Sy/+m5ufP/rpOeUcOSVF7N8+Xw+WFrKdT9srV1/88tcunA6r731Va7+tDHpOSUcf2lvLl04neVBckNrtPbet+dy/NTZXP36XB4Obkx6Tgmzc0dy/NTZnPn4/Vxb/23Sc8r4buOz9D9JNt9Oxj9Pek0N/c+T7kK7Z/0VGQAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKV1mqZp2j58Z5AMd57mnGfL/u21zBxczNattYyHw0nPKaE7PZ2Zg4tZX2uy5WStHTu6nk53Mc14LWkcrpXOdDrdxdx69DDD8XjSa8rY82Arcwv7Mli/l9Fwe9JzSuhN78rcwr5srK1l5F3Q2mj2QA7N93PzzmaG2z4+2pjeNZVD8/0MdpLRpMcUsmdrkJn+XLY2B2nGLtdGp9vLTH8udx7cz3DHzdpa2JlPd38yvpvEK7SVznzS6bV89u+ELQAAAPzX+CsyAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKX9Ba5557GhP7yKAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "palette = glasbey.create_palette(palette_size=12, colorblind_safe=True, cvd_severity=100, optimize_palette_search_radius=50)\n", "sns.palplot(palette)" ] }, { "cell_type": "markdown", "id": "29c0dbd3-6d73-401e-beec-aaf386f7d154", "metadata": {}, "source": [ "Note that this biasing of palette choices may make the resulting palette less accessible to those without colour vision deficiency than it might otherwise be -- since the options for colour choices are more constrained.\n", "\n", "It is also possible to create a palette using simulations of other types of colour vision deficiency. The default option is the most common type: \"deuteranomaly\", but the `cvd_type` option can be used to specify \"protanomaly\" or \"tritanomaly\" which are a more rare red-green colorblindness, and an extremely rare blue-yellow colorblindness." ] }, { "cell_type": "code", "execution_count": 21, "id": "0c158fe0-8def-4553-9380-5ce19e929f91", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAABhCAYAAADiKT2SAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAABO1JREFUeJzt2rFr3GUcx/HP9S5pMRopTS8N5KhUkYJQaAZXRxengksnN4ko+Cf4D+hSaAeXgpBFdJBuzq4JFISi1qG52jZNbT0S217u8nPwD/CnUs6vfb3mZ/jy8Dx3z5u7TtM0TQAAAKCoI7MeAAAAAP4NYQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgtF7bhU2T7N9PmsmzHOf/ZX/hVpYXB7k32s5kauPa6HV7WX55kINsp4k9a6v3Wz9HFhdyONpPpoezHqeG7pEcWVzIve1fM5nYs7bmXmrSXzqZnd37mUymsx6nhF6vm/7SydweP8qkcdbaOt05kcwnGf/5BuGvdTpJ5ps8GY7SHLifbY2O7WV5ZZB7d7YzmXh7tNHr9bK8Msju3mGmLmhr40fJYNDN9vY0jlo7g0E3c3OdVms7TdP+NH7zfvLgx38813Pn23fXsrG+mYtX1nLjztasxynh7Mr5bKxv5kbW8jj2rK1XrnyV4+sX8vDK15neeTDrcUrorpzI8fULubj2SW5s3Zr1OGWc+/BYrl66nPc++iA/3Pxp1uOU8Pqrr+Xqpct56/qnub5/e9bjlHF34bMcPZc8vZ40+7OepobOQnL0XPLdm1cy2roz63HK+OLta9m4tpmL76zlxvfeHm2cfeN8Nq5t5uMvd/PzrkJra/h5J5uby1lbu5etrYNZj1PCzZuncuZMu99i/RUZAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApXWapmnaLt6/nxwePMtx/l8evzhMf3E1O6NhxpPxrMcpYb43n/7iasYZpok9a6s3Wk53cSHT0X4ymc56nBp63XQXF7IzfJjxeDLracqYX+ykv7SUnd3dHBz4Qmhjbm4u/aWl/PL0UcaN+9nW6c6JdI4mzdOk/Uvl+dbpJJ2jyZPboxw+9bnW1t4Lv6d/ajU7d4cZj7092pifn0//1Gp296aZHLqgbU1GyepqL8PhJI5aO4NBN3NznVZr/1bYAgAAwH+NvyIDAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUNofrljqsR3cGJMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "palette = glasbey.create_palette(\n", " palette_size=12, \n", " colorblind_safe=True, \n", " cvd_type=\"protanomaly\",\n", " cvd_severity=100\n", ")\n", "sns.palplot(palette)" ] }, { "cell_type": "code", "execution_count": 22, "id": "43cc6110-0a61-4404-8883-c28a5acf9924", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAABhCAYAAADiKT2SAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAABM5JREFUeJzt2j9rnXUYxvErydOg1KQeGlF7znER3IQ2W2eho252EqSog9RNh4JuBRcnKy5F34LgJL4AsyVFwUqLguakTdI/oQmtkuScxyFv4FEpx1s/n/kZLm5+gXzhzLRt2wYAAACKmp32AAAAAPgnhC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0pquH7Ztm4P17eTw8HHu+U/ZWuhnsJSM7jpbV02TDJba7G4cZHLYTntOGe3sdnrDQXbWR5l4bJ3MNk16w2HaB0k7mfaaOjZPJKdmk1uTxEvrpklyarbN7qP1TFpX62pvZynDwULWR3s5PBxPe04JTTOX4WAhm/fXMx57a1093TQ53hvm4c56WnfrZGbu6Gbbm7czHvv77Or4E8Msnkx27yUTT62TxaVkrmOxzrRt27kebi6/mT/WbvzdXf8771z8LitXkrPvJdd+nvaaGk6/mKxcSa6+8lM2v/992nPKaIbv5tLqSj5ePpv1tWvTnlPC8MzpXFpdyd5nyfjWtNfU8foHybe95NxO8oP/ZTp5ee7oZle/Wc7mztq055Tx1adfZHXlQpbPfpm1a1vTnlPCmdPPZnXlQs5/tJzrv3prXV1+6Uxe/XA1X19ezr3f3K2Lky8c3eyt86/lxvUfpz2njDfO3czbnyRX3082f5n2mhoufp70nuv2rZ8iAwAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoDRhCwAAQGnCFgAAgNKELQAAAKUJWwAAAEoTtgAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACUJmwBAAAoTdgCAABQmrAFAACgNGELAABAacIWAACA0oQtAAAApQlbAAAAShO2AAAAlCZsAQAAKE3YAgAAUJqwBQAAoLSZtm3brh8fjLbT7h88zj3/KXcW++kvJRt3E2frZv5Y0l9Kdm/tZ7zf+WnS3E1v0M/OaCPj/f1prylhbn4+vUE/kwdJO572mjq2TyTPzyW3x4mX1s18jm62+2iU8cTVunr44JkM+gsZbexlf/9w2nNKmJ9vMugvZOv+KAeH3lpXvWPzOd4b5OHOKBN362S2ObrZna3NHBz4J7erp54cZvFksnsvGTtbJ4tLyVzT7du/FLYAAADwb+OnyAAAAJQmbAEAAChN2AIAAFCasAUAAKA0YQsAAEBpwhYAAIDShC0AAAClCVsAAABKE7YAAACU9icN1OKxQreEEwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "palette = glasbey.create_palette(\n", " palette_size=12, \n", " colorblind_safe=True, \n", " cvd_type=\"tritanomaly\",\n", " cvd_severity=100\n", ")\n", "sns.palplot(palette)" ] }, { "cell_type": "markdown", "id": "38313a51-1cfa-4aff-8ebe-1adeb98100fd", "metadata": {}, "source": [ "These same options apply to the `extend_palette` and `create_block_palette` functions, although in those cases there are other colours involved (from the source palette, or the range of colours selected in a block) that make the problem even more challenging." ] }, { "cell_type": "code", "execution_count": 23, "id": "99323052-8101-40a9-9519-c968e5830883", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABJ4AAABhCAYAAACXmGs1AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAABgJJREFUeJzt282LXXcdx/HPuffOTJpkppFJmplEC0FRaFExYHHlRgqCUEShu+Iy0IUu9R8Q6jJdCFkWVy5aaEQQipu6kQgRlbQIlQg1mUmbh85j5+Hee/wTcop+OZzm9VqfxYfL755z7htu07ZtGwAAAAD4Pxv1PQAAAACAzyfhCQAAAIASwhMAAAAAJYQnAAAAAEoITwAAAACUEJ4AAAAAKCE8AQAAAFBCeAIAAACghPAEAAAAQIlJ1wvbts3G1kGms7Zyz+fKs5OHycrFZPtOMp/2PWcYRpO0Kxezub+Z2XzW95rBOL87zmRtLdPNzbRTZ62LZjLJZG0tu48OM3df66xpdrO8ejY7D+5nPvMd7WI0Hmd59WxmW4eJs9bduMn46aVsb29nPp/3vWYQRqNRVlZWcni4kbb1LOiqaSZZWlrP3cPjTFvf0S4mTZMLSwvZ//jDtDNnratmPMnJc1/K9NO9tHNnrYtm1GTy1OncOUymHgWdTUbJxaU2O4dHmbuvdTJqmiwvLWZr/2O/Qz+DM6fOZTx6fFZq2rb7SfzB63/Krbvb/9OwJ8m/L/0qufJucu27ycbf+p4zDOvfTK68m5d/93Lef/h+32sG4/rbX82lt97M7R/9OAfvvdf3nEE48dxzufTWm/ntL2/k/oe7fc8ZjJUzb+eV167mN7/4WT66/a++5wzCM5e+nFdeu5p7r9/M8d29vucMxsKFUzn/08u5du1aNjY2+p4zCOvr67ly5Upu3HgpO7u3+p4zGMunn88LL1zPi3/5Z/6x+2nfcwbh66efyjvf/lr+8OrlPPrgr33PGYwvfOVb+f6vb+b2O9dz+MmDvucMwtKZ1Vx68aV878/J33f6XjMc31hO/vid5I2bt/LR3n7fcwbhmVMn85PLz+fq71/NnYcf9D1nMH7+wzeyurz+2Ov81Q4AAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWatm3brhdvbn2ao2nny594zy58kqxcSLbvJrOjvucMw3gxWbmQe3v3cjw/7nvNYJzfW8jC2vkcb95Le+ysddEsLGZh7Xx2Hx1k5r7W2Wi0l+XVs9l5cD+z6bTvOYMwnkyyvHo2063DZDrve85wTEaZPL2U7e3tzGazvtcMwng8zsrKSg4ONtO2ngVdNc1iTpxYy8bBUY66vxY/0RabJusnFrN//z+Ze+/obLSwmJNnv5jj/b20c8+DLprRKAsnT+XuQXLkI+tscZRcOJHsHB5l5qx1Mh6Nsry0mK39+5nO/A7t6sypcxmPJo+97jOFJwAAAADoyl/tAAAAACghPAEAAABQQngCAAAAoITwBAAAAEAJ4QkAAACAEsITAAAAACWEJwAAAABKCE8AAAAAlBCeAAAAACjxX950HsC6wr47AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "palette = glasbey.extend_palette(\n", " \"tab10\", \n", " palette_size=15, \n", " colorblind_safe=True, \n", " cvd_severity=100\n", ")\n", "sns.palplot(palette)" ] }, { "cell_type": "code", "execution_count": 24, "id": "6c8b5043-34c2-49b4-83a5-804a0a76b68f", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "palette = glasbey.create_block_palette(\n", " [4, 3, 3, 2, 2],\n", " colorblind_safe=True, \n", " cvd_severity=100\n", ")\n", "sns.palplot(palette)" ] } ], "metadata": { "kernelspec": { "display_name": "glasbey", "language": "python", "name": "glasbey" }, "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.12.9" } }, "nbformat": 4, "nbformat_minor": 5 }