{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n# From numerical values to discrete colors\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The :class:`ptvis.color.DiscreteColorConversion` class defines a conversion\nfrom numerical values to discrete colors. Values in an interval is converted\ninto the same color.\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = list(range(len(elements)))\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(),\n)\n\nplotly.io.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining a conversion with colors for evenly spaced levels\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Discrete colors are determined by discretizing a color scale. The `colors`\nargument determines colors at evenly spaced levels of the color scale.\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = list(range(len(elements)))\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(\n colors=[\"blue\", \"green\", \"red\"],\n ),\n)\n\nplotly.io.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining a conversion with colors at arbitrary levels\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The levels of the `colors` argument can be changed by the `levels` argument.\nThe arugment must be given in ascending order.\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = list(range(len(elements)))\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(\n colors=[\"blue\", \"green\", \"red\"],\n levels=[-1, -0.5, 1],\n ),\n)\n\nplotly.io.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of intervals\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The number of intervals or discrete colors can be changed by the\n`n_intervals` arguments.\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = list(range(len(elements)))\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(n_intervals=5),\n)\n\nplotly.io.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Clipping\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, the minimum and maximum values correspond with the lowest and\nhighest levels. Values corresponding with the lowest and highest levels can\nbe changed by the `value_min` and `value_max` arguments. Values out of range\nare converted into colors of the lowest and highest levels.\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = list(range(len(elements)))\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(\n colors=[\"blue\", \"green\", \"red\"],\n value_min=30,\n value_max=60,\n ),\n)\n\nplotly.io.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Colors for out-of-range values can be changed by the `lower_color` and\n`higher_color` argument.\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = list(range(len(elements)))\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(\n colors=[\"blue\", \"green\", \"red\"],\n value_min=30,\n value_max=60,\n lower_color=\"black\",\n higher_color=\"white\",\n ),\n)\n\nplotly.io.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Closed endpoint of an interval\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A closed endpoint of an interval can be changed by the `closed` argument.\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = [i % 3 for i in range(len(elements))]\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(\n n_intervals=2,\n closed=\"high\",\n ),\n)\n\nplotly.io.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `include_boundary` argument controls whether the higher (lower)\nendpoint of the highest (lowest) interval is closed when the `closed`\nargument is ``\"low\"`` (``\"high\"``).\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = [i % 3 for i in range(len(elements))]\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(\n n_intervals=2,\n closed=\"high\",\n include_boundary=False,\n lower_color=\"white\",\n ),\n)\n\nplotly.io.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Color for NaN\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A color for NaN can be changed by the `na_color` argument.\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import plotly\nimport ptvis.color\n\n\nelements = list(ptvis.Element)\nvalues = [i if i % 10 else float(\"nan\") for i in range(len(elements))]\n\nfig = plotly.graph_objects.Figure()\nptvis.attach_plain_cells(\n fig,\n elements,\n colors=values,\n color_conversion=ptvis.color.DiscreteColorConversion(\n colors=[\"blue\", \"green\", \"red\"],\n na_color=\"white\",\n ),\n)\n\nplotly.io.show(fig)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.13.3" } }, "nbformat": 4, "nbformat_minor": 0 }