""" From categories =============== """ # %% # The :class:`ptvis.color.CategoricalColorConversion` class defines a # conversion from categories to colors. import plotly import ptvis.color elements = list(ptvis.Element) values = [str(i % 3) for i in range(len(elements))] fig = plotly.graph_objects.Figure() ptvis.attach_plain_cells( fig, elements, colors=values, color_conversion=ptvis.color.CategoricalColorConversion(), ) plotly.io.show(fig) # %% # Defining a conversion explicitly # -------------------------------- # %% # The `mapping` argument determines an explicit mapping from categories to # colors. import plotly import ptvis.color elements = list(ptvis.Element) values = [str(i % 3) for i in range(len(elements))] fig = plotly.graph_objects.Figure() ptvis.attach_plain_cells( fig, elements, colors=values, color_conversion=ptvis.color.CategoricalColorConversion( mapping={"0": "red", "1": "green", "2": "blue"}, ), ) plotly.io.show(fig) # %% # Colors for categories missing from the mapping # ---------------------------------------------- # %% # Categories missing from the `mapping` argument are converted using a preset # colorway. import plotly import ptvis.color elements = list(ptvis.Element) values = [str(i % 3) for i in range(len(elements))] fig = plotly.graph_objects.Figure() ptvis.attach_plain_cells( fig, elements, colors=values, color_conversion=ptvis.color.CategoricalColorConversion( mapping={"0": "red"}, ), ) plotly.io.show(fig) # %% # The colorway can be changed by the `missing_colors` argument. import plotly import ptvis.color elements = list(ptvis.Element) values = [str(i % 3) for i in range(len(elements))] fig = plotly.graph_objects.Figure() ptvis.attach_plain_cells( fig, elements, colors=values, color_conversion=ptvis.color.CategoricalColorConversion( mapping={"0": "red"}, missing_colors=["cyan", "magenta", "yellow"], ), ) plotly.io.show(fig) # %% # Color for N/A # ------------- # %% # A color for N/A is given by the `na_color` argument. import plotly import ptvis.color elements = list(ptvis.Element) values = [str(i % 3) if i % 10 else None for i in range(len(elements))] fig = plotly.graph_objects.Figure() ptvis.attach_plain_cells( fig, elements, colors=values, color_conversion=ptvis.color.CategoricalColorConversion( mapping={"0": "red", "1": "green", "2": "blue"}, na_color="white", ), ) plotly.io.show(fig)