From c27239e196e7ee6dae82a5d40233c82d6aed24f2 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 16:48:50 +0100 Subject: [PATCH 01/22] colorpalettes: Add module, deprecate colopalette and colorbrewer --- Orange/widgets/utils/colorbrewer.py | 6 + Orange/widgets/utils/colorpalette.py | 10 + Orange/widgets/utils/colorpalettes.py | 658 ++++++++++++++++ .../widgets/utils/tests/test_colorpalettes.py | 708 ++++++++++++++++++ 4 files changed, 1382 insertions(+) create mode 100644 Orange/widgets/utils/colorpalettes.py create mode 100644 Orange/widgets/utils/tests/test_colorpalettes.py diff --git a/Orange/widgets/utils/colorbrewer.py b/Orange/widgets/utils/colorbrewer.py index 234a7931e5e..46d6cd6008c 100644 --- a/Orange/widgets/utils/colorbrewer.py +++ b/Orange/widgets/utils/colorbrewer.py @@ -1,3 +1,9 @@ +import warnings + +warnings.warn("Module 'colorbrewer' is obsolete and will be removed.\n" + "Use palettes from 'Orange.misccolorpalettes'.", + DeprecationWarning) + colorSchemes = { 'diverging': { 'RdYlGn': {3: [(252, 141, 89), (255, 255, 191), (145, 207, 96)], diff --git a/Orange/widgets/utils/colorpalette.py b/Orange/widgets/utils/colorpalette.py index c9e579b77eb..590f62efbc3 100644 --- a/Orange/widgets/utils/colorpalette.py +++ b/Orange/widgets/utils/colorpalette.py @@ -3,6 +3,7 @@ import math from numbers import Number from collections import Iterable +import warnings import numpy as np @@ -391,6 +392,12 @@ def colorSchemaChange(self): class ColorPalleteListing(QDialog): def __init__(self, parent=None, windowTitle="Color Palette List", **kwargs): + # Import locally to prevent warning about using an obsolete module + # (This module itself is obsolete, but imported by its replacement, + # for backward compatibility, so importing colorbrewer globally would + # cause a warning.) + from Orange.widgets.utils import colorbrewer + super().__init__(parent, windowTitle=windowTitle, **kwargs) self.setLayout(QVBoxLayout()) self.layout().setContentsMargins(0, 0, 0, 0) @@ -1009,5 +1016,8 @@ def main(): # pragma: no cover a.exec() +warnings.warn( + "Module colorpalette is obsolete; use colorpalettes", DeprecationWarning) + if __name__ == "__main__": # pragma: no cover main() diff --git a/Orange/widgets/utils/colorpalettes.py b/Orange/widgets/utils/colorpalettes.py new file mode 100644 index 00000000000..85119ecd397 --- /dev/null +++ b/Orange/widgets/utils/colorpalettes.py @@ -0,0 +1,658 @@ +import colorsys +import warnings +from typing import Sequence + +import numpy as np + +from AnyQt.QtCore import Qt +from AnyQt.QtGui import QImage, QPixmap, QColor, QIcon + +from Orange.util import Enum, hex_to_color, color_to_hex + +NAN_COLOR = (128, 128, 128) + +__all__ = ["Palette", "IndexedPalette", + "DiscretePalette", "LimitedDiscretePalette", "DiscretePalettes", + "DefaultDiscretePalette", "DefaultDiscretePaletteName", + "DefaultRGBColors", "Dark2Colors", + "ContinuousPalette", "ContinuousPalettes", "BinnedContinuousPalette", + "DefaultContinuousPalette", "DefaultContinuousPaletteName", + "ColorIcon", "get_default_curve_colors", "patch_variable_colors", + "NAN_COLOR"] + + +class Palette: + """ + Base class for enumerable named categorized palettes used for visualization + of discrete and numeric data + + Attributes: + name (str): unique name + friendly_name (str): name to be shown in user interfaces + category (str): category for user interfaces + palette (np.ndarray): palette; an array of shape (n, 3) + nan_color (np.ndarray): an array of shape (1, 3) storing the colors used + for missing values + flags (Palette.Flags): flags describing palettes properties + - ColorBlindSafe: palette is color-blind safe + - Diverging: palette passes through some neutral color (white, + black) which appears in the middle. For binned continuous + palettes the pure neutral color does not need to appear in a bin + - Discrete: palette contains a small number of colors, like + palettes for discrete values and binned palettes + """ + Flags = Enum("PaletteFlags", + dict(NoFlags=0, + ColorBlindSafe=1, + Diverging=2, + Discrete=4), + type=int, + qualname="Palette.Flags") + NoFlags, ColorBlindSafe, Diverging, Discrete = Flags + + def __init__(self, friendly_name, name, palette, nan_color=NAN_COLOR, + *, category=None, flags=0): + self.name = name + self.friendly_name = friendly_name + self.category = category or name.split("_")[0].title() + self.palette = np.array(palette).astype(np.ubyte) + self.nan_color = nan_color + self.flags = flags + + # qcolors and qcolor_w_nan must not be cached because QColor is mutable + # and may be modified by the caller (and is, in many widgets) + @property + def qcolors(self): + """An array of QColors in the palette""" + return np.array([QColor(*col) for col in self.palette]) + + @property + def qcolors_w_nan(self): + """An array of QColors in the palette + the color for nan values""" + return np.array([QColor(*col) for col in self.palette] + + [QColor(*self.nan_color)]) + + def copy(self): + return type(self)(self.friendly_name, self.name, self.palette.copy(), + self.nan_color, + category=self.category, flags=self.flags) + + +class IndexedPalette(Palette): + def __len__(self): + return len(self.palette) + + def __getitem__(self, x): + if isinstance(x, (Sequence, np.ndarray)): + return self.values_to_qcolors(x) + elif isinstance(x, slice): + return [QColor(*col) for col in self.palette.__getitem__(x)] + else: + return self.value_to_qcolor(x) + + +class DiscretePalette(IndexedPalette): + def __init__(self, friendly_name, name, palette, nan_color=NAN_COLOR, + *, category=None, flags=Palette.Discrete): + super().__init__(friendly_name, name, palette, nan_color, + category=category, flags=flags) + + @classmethod + def from_colors(cls, palette): + """ + Create a palette from an (n x 3) array of ints in range (0, 255) + """ + return cls("Custom", "Custom", palette) + + @staticmethod + def _color_indices(x): + x = np.asanyarray(x) + nans = np.isnan(x) + if np.any(nans): + x = x.copy() + x[nans] = -1 + return x.astype(int), nans + + def values_to_colors(self, x): + """ + Map values x to colors; values may include nan's + + Args: + x (np.ndarray): an array of values between 0 and len(palette) - 1 + + Returns: + An array of ubytes of shape (len(x), 3), representing RGB triplets + """ + x, nans = self._color_indices(x) + colors = self.palette[x] + colors[nans, :] = self.nan_color + return colors + + def values_to_qcolors(self, x): + """ + Map values x to QColors; values may include nan's + + Args: + x (np.ndarray): an array of values between 0 and len(palette) - 1 + + Returns: + An array of len(x) QColors + """ + x, _ = self._color_indices(x) + return self.qcolors_w_nan[x] + + def value_to_color(self, x): + """ + Return an RGB triplet (as np.ndarray) corresponding to value x. + x may also be nan. + """ + if np.isnan(x): + return self.nan_color + return self.palette[int(x)] + + def value_to_qcolor(self, x): + """ + Return a QColor corresponding to value x. x may also be nan. + """ + color = self.nan_color if np.isnan(x) else self.palette[int(x)] + return QColor(*color) + + +class LimitedDiscretePalette(DiscretePalette): + """ + A palette derived from DiscretePalette that has the prescribed number of + colors. + + Colors are taken from DefaultRGBColors (the default discrete palette), + unless the desired number of colors is too large. In this case, colors + are generated by making a circle around the HSV space. + """ + def __init__(self, number_of_colors, nan_color=NAN_COLOR, + *, category=None, flags=Palette.Discrete, force_hsv=False): + if number_of_colors <= len(DefaultRGBColors) and not force_hsv: + palette = DefaultRGBColors.palette[:number_of_colors] + else: + hues = np.linspace(0, 1, number_of_colors, endpoint=False) + palette = 255 * np.array( + [colorsys.hsv_to_rgb(h, 1, 1) for h in hues]) + super().__init__("custom", "custom", palette, nan_color, + category=category, flags=flags) + + +class ContinuousPalette(Palette): + """ + Palette for continuous values + """ + def __init__(self, friendly_name, name, palette, nan_color=NAN_COLOR, + *, category=None, flags=Palette.NoFlags): + super().__init__( + friendly_name, name, + np.asarray(palette, dtype=np.ubyte), nan_color, + category=category, flags=flags) + + @staticmethod + def _color_indices(x, low=None, high=None): + x = np.asarray(x) + nans = np.isnan(x) + if np.all(nans): + return np.full(len(x), -1), nans + + if low is None: + low = np.nanmin(x) + if high is None: + high = np.nanmax(x) + diff = high - low + if diff == 0: + x = np.full(len(x), 128) + else: + x = 255 * (x - low) / diff + x = np.clip(x, 0, 255) + x[nans] = -1 + return np.round(x).astype(int), nans + + def values_to_colors(self, x, low=None, high=None): + """ + Return an array of colors assigned to given values by the palette + + Args: + x (np.array): colors to be mapped + low (float or None): minimal value; if None, determined from data + high (float or None): maximal value; if None, determined from data + + Returns: + an array of shape (len(x), 3) with RGB values for each point + """ + x, nans = self._color_indices(x, low, high) + colors = self.palette[x] + colors[nans, :] = self.nan_color + return colors + + def values_to_qcolors(self, x, low=None, high=None): + """ + Return an array of colors assigned to given values by the palette + + Args: + x (np.array): colors to be mapped + low (float or None): minimal value; if None, determined from data + high (float or None): maximal value; if None, determined from data + + Returns: + an array of shape (len(x), ) with QColors for each point + """ + x, _ = self._color_indices(x, low, high) + return self.qcolors_w_nan[x] + + @staticmethod + def _color_index(x, low=0, high=1): + if np.isnan(x): + return -1 + diff = high - low + if diff == 0: + return 128 + return int(np.clip(np.round(255 * (x - low) / diff), 0, 255)) + + def value_to_color(self, x, low=0, high=1): + """ + Return an RGB triplet (as np.ndarray) corresponding to value x. + x may also be nan. + """ + x = self._color_index(x, low, high) + if x == -1: + return NAN_COLOR + return self.palette[x] + + def value_to_qcolor(self, x, low=0, high=1): + """ + Return a QColor corresponding to value x. x may also be nan. + """ + if np.isnan(x): + color = self.nan_color + else: + x = self._color_index(x, low, high) + color = self.palette[x] + return QColor(*color) + + __getitem__ = value_to_qcolor + + def lookup_table(self, low=None, high=None): + """ + A lookup table for this pallette. + + Arguments `low` and `high` (between 0 and 255) can be used to use + just a part of palette. + + Args: + low (float or None): minimal value + high (float or None): maximal value + + Returns: + an array of shape (255, 3) with RGB values + """ + return self.values_to_colors(np.arange(256) / 256, low, high) + + def color_strip(self, strip_length, strip_width, orientation=Qt.Horizontal): + """ + Return a pixmap of given dimensions to be used for legends. + + Args: + strip_length (int): length of the strip; may be horizontal or vertical + strip_width (int): width of the strip + orientation: strip orientation + + Returns: + QPixmap with a strip + """ + points = np.linspace(0, 255, strip_length, dtype=np.uint8) + section = self.palette[np.newaxis, points, :].astype(np.ubyte) + img = np.vstack((section,) * strip_width) + if orientation == Qt.Horizontal: + width, height = strip_length, strip_width + else: + width, height = strip_width, strip_length + img = img.swapaxes(0, 1)[::-1].copy() + pad_width = (-img.strides[1]) % 4 + if pad_width: + padding = np.zeros((img.shape[0], pad_width, 3), np.ubyte) + img = np.hstack((img, padding)) + img = QImage(img, width, height, img.strides[0], QImage.Format_RGB888) + img = QPixmap.fromImage(img) + return img + + @classmethod + def from_colors(cls, color1, color2, pass_through=False): + """ + Deprecated constructor for tests and easier migration from + Variable.color. Constructs a palette that goes from color1 to color2. + + pass_throug can be a color through which the palette will pass, + or `True` to pass through black. Default is `False`. + """ + if pass_through is True: + colors = (color1, (0, 0, 0), color2) + xf = [0, 127, 255] + elif pass_through: + assert isinstance(pass_through, tuple) + colors = (color1, pass_through, color2) + xf = [0, 127, 255] + else: + colors = (color1, color2) + xf = [0, 255] + name = repr(colors) + friendly_name = "Custom" + x = np.arange(256) + r = np.interp(x, xf, np.array([color[0] for color in colors])) + g = np.interp(x, xf, np.array([color[1] for color in colors])) + b = np.interp(x, xf, np.array([color[2] for color in colors])) + palette = np.vstack((r, g, b)).T + return cls(friendly_name, name, palette, + flags=Palette.Diverging if pass_through else Palette.NoFlags) + + +class BinnedContinuousPalette(IndexedPalette): + """ + Continuous palettes that bins values. + + Besides the derived attributes, it has an attribute `bins` (np.ndarray), + which contains bin boundaries, including the lower and the higher + boundary, which are essentially ignored. + """ + def __init__(self, friendly_name, name, bin_colors, bins, + nan_color=NAN_COLOR, + *, category=None, flags=Palette.Discrete): + super().__init__(friendly_name, name, bin_colors, nan_color, + category=category, flags=flags) + self.bins = bins + + @classmethod + def from_palette(cls, palette, bins): + """ + Construct a `BinnedPalette` from `ContinuousPalette` by picking the + colors representing the centers of the bins. + + If given a `BinnedPalette`, the constructor returns a copy. + + Args: + palette (ContinuousPalette or BinnedPalette): original palette + bins (np.ndarray): bin boundaries + """ + if isinstance(palette, cls): + # Note that this silently ignores bins. This is done on purpose + # to let predefined binned palettes override bins. Plus, it is + # generally impossible to compute a binned palette with different + # bins. + return palette.copy() + if isinstance(palette, ContinuousPalette): + assert len(bins) >= 2 + mids = (bins[:-1] + bins[1:]) / 2 + bin_colors = palette.values_to_colors(mids, bins[0], bins[-1]) + return cls( + palette.friendly_name, palette.name, bin_colors, bins, + palette.nan_color, category=palette.category, + flags=palette.flags | Palette.Discrete) + raise TypeError(f"can't create palette from '{type(palette).__name__}'") + + def _bin_indices(self, x): + nans = np.isnan(x) + binx = np.digitize(x, self.bins[1:-1], right=True) + binx.clip(0, len(self.bins) - 1) + binx[nans] = -1 + return binx, nans + + def values_to_colors(self, x): + """ + Return an array of colors assigned to given values by the palette + + Args: + x (np.array): colors to be mapped + + Returns: + an array of shape (len(x), 3) with RGB values for each point + """ + + binx, nans = self._bin_indices(x) + colors = self.palette[binx] + colors[nans] = self.nan_color + return colors + + def values_to_qcolors(self, x): + """ + Return an array of colors assigned to given values by the palette + + Args: + x (np.array): colors to be mapped + + Returns: + an array of shape (len(x), ) with QColors for each point + """ + binx, _ = self._bin_indices(x) + return self.qcolors_w_nan[binx] + + def value_to_color(self, x): + """ + Return an RGB triplet (as np.ndarray) corresponding to value x. + x may also be nan. + """ + return self.values_to_colors([x])[0] + + def value_to_qcolor(self, x): + """ + Return a QColor corresponding to value x. x may also be nan. + """ + if np.isnan(x): + color = self.nan_color + else: + binx, _ = self._bin_indices([x]) + color = self.palette[binx[0]] + return QColor(*color) + + def copy(self): + return type(self)(self.friendly_name, self.name, self.palette.copy(), + self.bins.copy(), self.nan_color, + category=self.category, flags=self.flags) + + +DefaultRGBColors = DiscretePalette("Default", "Default", [ + [70, 190, 250], [237, 70, 47], [170, 242, 43], [245, 174, 50], + [255, 255, 0], [255, 0, 255], [0, 255, 255], [128, 0, 255], + [0, 128, 255], [255, 223, 128], [127, 111, 64], [92, 46, 0], + [0, 84, 0], [192, 192, 0], [0, 127, 127], [128, 0, 0], + [127, 0, 127]]) + +Dark2Colors = DiscretePalette("Dark", "Dark", [ + [27, 158, 119], [217, 95, 2], [117, 112, 179], [231, 41, 138], + [102, 166, 30], [230, 171, 2], [166, 118, 29], [102, 102, 102]]) + +DiscretePalettes = { + "default": DefaultRGBColors, + "dark": Dark2Colors +} + +DefaultDiscretePaletteName = "default" +DefaultDiscretePalette = DiscretePalettes[DefaultDiscretePaletteName] + + +# pylint: disable=line-too-long +ContinuousPalettes = { + 'diverging_bwr_40_95_c42': ContinuousPalette( + 'Coolwarm', 'diverging_bwr_40_95_c42', + [[33, 81, 219], [37, 82, 219], [42, 83, 219], [46, 84, 220], [49, 85, 220], [53, 86, 220], [56, 87, 220], [59, 88, 220], [62, 89, 221], [65, 91, 221], [67, 92, 221], [70, 93, 221], [72, 94, 221], [75, 95, 222], [77, 96, 222], [80, 97, 222], [82, 99, 222], [84, 100, 223], [86, 101, 223], [88, 102, 223], [90, 103, 223], [92, 104, 223], [94, 105, 224], [96, 107, 224], [98, 108, 224], [100, 109, 224], [102, 110, 224], [104, 111, 225], [105, 112, 225], [107, 114, 225], [109, 115, 225], [111, 116, 225], [112, 117, 226], [114, 118, 226], [116, 120, 226], [117, 121, 226], [119, 122, 226], [121, 123, 227], [122, 124, 227], [124, 126, 227], [125, 127, 227], [127, 128, 227], [129, 129, 228], [130, 130, 228], [132, 132, 228], [133, 133, 228], [135, 134, 228], [136, 135, 229], [138, 136, 229], [139, 138, 229], [141, 139, 229], [142, 140, 229], [143, 141, 229], [145, 143, 230], [146, 144, 230], [148, 145, 230], [149, 146, 230], [151, 148, 230], [152, 149, 231], [153, 150, 231], [155, 151, 231], [156, 153, 231], [158, 154, 231], [159, 155, 231], [160, 156, 232], [162, 158, 232], [163, 159, 232], [164, 160, 232], [166, 161, 232], [167, 163, 232], [168, 164, 233], [170, 165, 233], [171, 166, 233], [172, 168, 233], [174, 169, 233], [175, 170, 233], [176, 172, 234], [178, 173, 234], [179, 174, 234], [180, 175, 234], [181, 177, 234], [183, 178, 234], [184, 179, 235], [185, 180, 235], [187, 182, 235], [188, 183, 235], [189, 184, 235], [190, 186, 235], [192, 187, 235], [193, 188, 236], [194, 190, 236], [195, 191, 236], [197, 192, 236], [198, 193, 236], [199, 195, 236], [200, 196, 236], [202, 197, 237], [203, 199, 237], [204, 200, 237], [205, 201, 237], [207, 203, 237], [208, 204, 237], [209, 205, 237], [210, 207, 238], [211, 208, 238], [213, 209, 238], [214, 211, 238], [215, 212, 238], [216, 213, 238], [218, 215, 238], [219, 216, 238], [220, 217, 239], [221, 218, 239], [222, 220, 239], [224, 221, 239], [225, 222, 239], [226, 224, 239], [227, 225, 239], [228, 226, 239], [229, 227, 239], [230, 228, 238], [231, 229, 238], [232, 229, 238], [233, 230, 237], [234, 231, 237], [235, 231, 236], [236, 231, 235], [237, 231, 234], [238, 231, 233], [238, 231, 232], [239, 230, 231], [239, 230, 230], [240, 229, 228], [240, 228, 227], [241, 227, 225], [241, 226, 223], [241, 225, 221], [241, 224, 220], [241, 222, 218], [242, 221, 216], [242, 219, 214], [242, 218, 212], [242, 216, 210], [242, 215, 208], [242, 213, 206], [242, 212, 204], [242, 210, 203], [242, 209, 201], [242, 207, 199], [242, 206, 197], [242, 204, 195], [241, 203, 193], [241, 201, 191], [241, 199, 189], [241, 198, 187], [241, 196, 185], [241, 195, 183], [241, 193, 181], [241, 192, 180], [240, 190, 178], [240, 189, 176], [240, 187, 174], [240, 185, 172], [240, 184, 170], [240, 182, 168], [239, 181, 166], [239, 179, 165], [239, 178, 163], [239, 176, 161], [238, 175, 159], [238, 173, 157], [238, 172, 155], [238, 170, 153], [237, 168, 152], [237, 167, 150], [237, 165, 148], [237, 164, 146], [236, 162, 144], [236, 161, 142], [236, 159, 140], [235, 157, 139], [235, 156, 137], [235, 154, 135], [234, 153, 133], [234, 151, 131], [234, 150, 130], [233, 148, 128], [233, 147, 126], [232, 145, 124], [232, 143, 122], [232, 142, 121], [231, 140, 119], [231, 139, 117], [230, 137, 115], [230, 136, 113], [230, 134, 112], [229, 132, 110], [229, 131, 108], [228, 129, 106], [228, 128, 105], [227, 126, 103], [227, 124, 101], [226, 123, 99], [226, 121, 98], [225, 120, 96], [225, 118, 94], [224, 116, 92], [224, 115, 91], [223, 113, 89], [223, 111, 87], [222, 110, 85], [222, 108, 84], [221, 106, 82], [221, 105, 80], [220, 103, 79], [219, 102, 77], [219, 100, 75], [218, 98, 73], [218, 96, 72], [217, 95, 70], [216, 93, 68], [216, 91, 67], [215, 90, 65], [215, 88, 63], [214, 86, 62], [213, 84, 60], [213, 82, 58], [212, 81, 56], [211, 79, 55], [211, 77, 53], [210, 75, 51], [209, 73, 50], [209, 71, 48], [208, 69, 46], [207, 68, 45], [207, 66, 43], [206, 64, 41], [205, 61, 40], [205, 59, 38], [204, 57, 36], [203, 55, 34], [202, 53, 33], [202, 51, 31], [201, 48, 29], [200, 46, 27], [200, 43, 26], [199, 41, 24], [198, 38, 22], [197, 35, 20], [197, 32, 18], [196, 28, 16], [195, 25, 14], [194, 20, 12], [193, 15, 10], [193, 9, 8], [192, 2, 6]], + flags=Palette.Diverging + ), + 'diverging_gkr_60_10_c40': ContinuousPalette( + 'Green-Red', 'diverging_gkr_60_10_c40', + [[54, 166, 22], [54, 165, 23], [54, 164, 23], [54, 162, 24], [54, 161, 24], [54, 160, 24], [54, 159, 25], [54, 158, 25], [54, 157, 26], [54, 155, 26], [54, 154, 26], [54, 153, 27], [54, 152, 27], [54, 151, 27], [54, 149, 27], [54, 148, 28], [54, 147, 28], [54, 146, 28], [54, 145, 28], [54, 144, 29], [54, 142, 29], [54, 141, 29], [54, 140, 29], [54, 139, 30], [54, 138, 30], [54, 137, 30], [54, 135, 30], [54, 134, 30], [53, 133, 30], [53, 132, 31], [53, 131, 31], [53, 130, 31], [53, 129, 31], [53, 127, 31], [53, 126, 31], [53, 125, 32], [53, 124, 32], [53, 123, 32], [53, 122, 32], [52, 121, 32], [52, 119, 32], [52, 118, 32], [52, 117, 32], [52, 116, 32], [52, 115, 32], [52, 114, 33], [51, 113, 33], [51, 112, 33], [51, 110, 33], [51, 109, 33], [51, 108, 33], [51, 107, 33], [51, 106, 33], [50, 105, 33], [50, 104, 33], [50, 103, 33], [50, 102, 33], [50, 100, 33], [49, 99, 33], [49, 98, 33], [49, 97, 33], [49, 96, 33], [49, 95, 33], [48, 94, 33], [48, 93, 33], [48, 92, 33], [48, 91, 33], [48, 90, 33], [47, 88, 33], [47, 87, 33], [47, 86, 33], [47, 85, 33], [46, 84, 33], [46, 83, 33], [46, 82, 33], [46, 81, 33], [45, 80, 33], [45, 79, 33], [45, 78, 33], [45, 77, 33], [44, 76, 33], [44, 75, 33], [44, 74, 33], [44, 73, 33], [43, 71, 33], [43, 70, 33], [43, 69, 33], [42, 68, 33], [42, 67, 32], [42, 66, 32], [42, 65, 32], [41, 64, 32], [41, 63, 32], [41, 62, 32], [40, 61, 32], [40, 60, 32], [40, 59, 32], [39, 58, 32], [39, 57, 32], [39, 56, 31], [38, 55, 31], [38, 54, 31], [38, 53, 31], [37, 52, 31], [37, 51, 31], [37, 50, 31], [36, 49, 31], [36, 48, 31], [36, 47, 30], [35, 46, 30], [35, 45, 30], [35, 44, 30], [34, 43, 30], [34, 42, 30], [34, 41, 30], [33, 40, 30], [33, 39, 29], [33, 39, 29], [32, 38, 29], [32, 37, 29], [32, 36, 29], [32, 35, 29], [32, 35, 29], [32, 34, 29], [33, 34, 29], [33, 33, 29], [33, 33, 29], [34, 32, 29], [35, 32, 29], [35, 32, 29], [36, 32, 29], [37, 32, 29], [38, 32, 29], [40, 32, 29], [41, 33, 30], [42, 33, 30], [44, 33, 30], [45, 34, 30], [47, 34, 30], [48, 34, 31], [50, 35, 31], [51, 35, 31], [53, 36, 31], [54, 36, 32], [56, 37, 32], [58, 37, 32], [59, 38, 32], [61, 38, 33], [62, 39, 33], [64, 39, 33], [66, 40, 33], [67, 40, 34], [69, 41, 34], [71, 41, 34], [72, 42, 34], [74, 42, 34], [75, 43, 35], [77, 43, 35], [79, 44, 35], [80, 45, 35], [82, 45, 36], [84, 46, 36], [85, 46, 36], [87, 46, 36], [89, 47, 37], [90, 47, 37], [92, 48, 37], [94, 48, 37], [95, 49, 38], [97, 49, 38], [99, 50, 38], [100, 50, 38], [102, 51, 39], [104, 51, 39], [106, 52, 39], [107, 52, 39], [109, 53, 39], [111, 53, 40], [112, 54, 40], [114, 54, 40], [116, 55, 40], [117, 55, 41], [119, 56, 41], [121, 56, 41], [123, 57, 41], [124, 57, 42], [126, 58, 42], [128, 58, 42], [130, 59, 42], [131, 59, 42], [133, 59, 43], [135, 60, 43], [137, 60, 43], [138, 61, 43], [140, 61, 44], [142, 62, 44], [144, 62, 44], [145, 63, 44], [147, 63, 44], [149, 64, 45], [151, 64, 45], [152, 65, 45], [154, 65, 45], [156, 65, 46], [158, 66, 46], [160, 66, 46], [161, 67, 46], [163, 67, 46], [165, 68, 47], [167, 68, 47], [169, 69, 47], [170, 69, 47], [172, 70, 47], [174, 70, 48], [176, 70, 48], [178, 71, 48], [180, 71, 48], [181, 72, 49], [183, 72, 49], [185, 73, 49], [187, 73, 49], [189, 73, 49], [191, 74, 50], [192, 74, 50], [194, 75, 50], [196, 75, 50], [198, 76, 50], [200, 76, 51], [202, 76, 51], [204, 77, 51], [205, 77, 51], [207, 78, 52], [209, 78, 52], [211, 79, 52], [213, 79, 52], [215, 79, 52], [217, 80, 53], [219, 80, 53], [220, 81, 53], [222, 81, 53], [224, 82, 53], [226, 82, 54], [228, 82, 54], [230, 83, 54], [232, 83, 54], [234, 84, 54], [236, 84, 55], [238, 85, 55], [240, 85, 55], [241, 85, 55], [243, 86, 55], [245, 86, 56], [247, 87, 56], [249, 87, 56], [251, 87, 56], [253, 88, 56]], + flags=Palette.Diverging + ), + 'linear_bgyw_15_100_c68': ContinuousPalette( + 'Blue-Green-Yellow', 'linear_bgyw_15_100_c68', + [[26, 0, 134], [26, 0, 136], [26, 0, 137], [26, 0, 139], [26, 1, 141], [26, 1, 143], [26, 2, 145], [26, 3, 146], [26, 4, 148], [26, 4, 150], [26, 5, 152], [27, 6, 153], [27, 7, 155], [27, 8, 157], [27, 9, 158], [27, 10, 160], [27, 11, 162], [27, 12, 164], [27, 13, 165], [27, 14, 167], [27, 15, 168], [27, 16, 170], [27, 17, 172], [27, 19, 173], [27, 20, 175], [27, 21, 176], [27, 22, 178], [27, 23, 180], [27, 24, 181], [27, 25, 183], [27, 26, 184], [27, 27, 186], [27, 28, 187], [27, 29, 188], [27, 30, 190], [27, 31, 191], [27, 32, 193], [27, 33, 194], [27, 34, 195], [27, 35, 197], [27, 36, 198], [27, 37, 199], [27, 39, 200], [27, 40, 201], [28, 41, 203], [28, 42, 204], [28, 43, 205], [28, 44, 206], [28, 45, 207], [28, 47, 208], [28, 48, 209], [29, 49, 210], [29, 50, 210], [29, 52, 211], [29, 53, 212], [29, 54, 213], [30, 55, 213], [30, 57, 214], [30, 58, 214], [30, 59, 215], [31, 61, 215], [31, 62, 215], [31, 64, 215], [31, 65, 215], [32, 67, 215], [32, 68, 215], [32, 70, 215], [32, 71, 214], [33, 73, 214], [33, 75, 213], [33, 76, 212], [33, 78, 211], [33, 80, 209], [33, 82, 207], [33, 84, 205], [32, 86, 202], [32, 88, 199], [32, 90, 196], [32, 92, 193], [32, 94, 190], [32, 96, 187], [33, 98, 184], [33, 100, 181], [34, 101, 178], [35, 103, 175], [36, 105, 173], [37, 106, 170], [38, 108, 167], [39, 109, 164], [40, 111, 161], [41, 112, 159], [42, 113, 156], [43, 115, 153], [44, 116, 150], [45, 118, 148], [46, 119, 145], [47, 120, 142], [47, 121, 140], [48, 123, 137], [49, 124, 134], [50, 125, 132], [51, 126, 129], [52, 128, 126], [53, 129, 124], [54, 130, 121], [55, 131, 118], [55, 132, 116], [56, 134, 113], [57, 135, 110], [58, 136, 108], [59, 137, 105], [59, 138, 102], [60, 139, 100], [61, 140, 97], [62, 142, 94], [62, 143, 92], [63, 144, 89], [64, 145, 87], [65, 146, 85], [66, 147, 83], [67, 148, 80], [68, 149, 78], [68, 150, 76], [69, 151, 74], [70, 152, 72], [72, 153, 70], [73, 154, 68], [74, 155, 66], [75, 156, 65], [76, 157, 63], [77, 158, 61], [79, 159, 60], [80, 160, 58], [81, 161, 56], [83, 161, 55], [84, 162, 53], [86, 163, 52], [87, 164, 50], [89, 165, 49], [90, 166, 47], [92, 167, 46], [93, 168, 44], [95, 168, 43], [97, 169, 42], [98, 170, 41], [100, 171, 39], [102, 172, 38], [103, 173, 37], [105, 173, 36], [107, 174, 34], [109, 175, 33], [111, 176, 32], [113, 177, 31], [115, 177, 30], [116, 178, 29], [118, 179, 28], [120, 180, 28], [122, 180, 27], [124, 181, 26], [126, 182, 25], [128, 183, 25], [130, 183, 24], [132, 184, 23], [134, 185, 23], [136, 186, 23], [139, 186, 22], [141, 187, 22], [143, 188, 22], [145, 188, 22], [147, 189, 22], [149, 190, 22], [151, 190, 22], [154, 191, 23], [156, 192, 23], [158, 192, 23], [160, 193, 24], [162, 194, 24], [164, 194, 25], [166, 195, 25], [169, 196, 26], [171, 196, 26], [173, 197, 27], [175, 198, 28], [177, 198, 28], [179, 199, 29], [181, 200, 30], [183, 200, 31], [185, 201, 32], [187, 202, 33], [189, 202, 33], [191, 203, 34], [192, 204, 35], [194, 204, 36], [196, 205, 37], [198, 206, 38], [200, 206, 40], [202, 207, 41], [203, 208, 42], [205, 208, 43], [207, 209, 44], [209, 210, 46], [210, 210, 47], [212, 211, 48], [214, 212, 50], [215, 213, 51], [217, 213, 53], [218, 214, 54], [220, 215, 56], [222, 216, 57], [223, 216, 59], [224, 217, 61], [226, 218, 63], [227, 219, 64], [229, 220, 66], [230, 220, 68], [231, 221, 70], [232, 222, 72], [233, 223, 74], [234, 224, 77], [235, 225, 79], [236, 226, 82], [237, 227, 84], [238, 228, 87], [238, 229, 90], [239, 230, 93], [239, 231, 96], [239, 232, 99], [240, 233, 103], [240, 234, 106], [240, 235, 110], [241, 236, 114], [241, 237, 118], [242, 238, 122], [242, 239, 126], [243, 240, 131], [243, 241, 135], [244, 242, 140], [245, 243, 145], [245, 244, 150], [246, 244, 155], [247, 245, 160], [247, 246, 165], [248, 247, 171], [249, 247, 176], [249, 248, 182], [250, 249, 188], [250, 250, 194], [251, 250, 200], [252, 251, 207], [252, 252, 213], [253, 252, 220], [253, 253, 226], [254, 253, 233], [254, 254, 240], [255, 254, 248], [255, 255, 255]], + ), + 'linear_bmy_10_95_c78': ContinuousPalette( + 'Blue-Magenta-Yellow', 'linear_bmy_10_95_c78', + [[0, 12, 125], [0, 13, 126], [0, 13, 128], [0, 14, 130], [0, 14, 132], [0, 14, 134], [0, 15, 135], [0, 15, 137], [0, 16, 139], [0, 16, 140], [0, 17, 142], [0, 17, 144], [0, 17, 145], [0, 18, 147], [0, 18, 148], [0, 18, 150], [0, 19, 151], [0, 19, 153], [0, 19, 154], [0, 20, 155], [0, 20, 157], [0, 20, 158], [0, 20, 159], [0, 21, 160], [0, 21, 161], [0, 21, 162], [0, 21, 163], [0, 21, 164], [0, 21, 165], [0, 22, 166], [0, 22, 167], [0, 22, 167], [0, 22, 168], [0, 22, 169], [0, 22, 169], [0, 22, 169], [10, 22, 170], [21, 22, 170], [29, 21, 170], [35, 21, 170], [41, 21, 170], [47, 21, 169], [52, 20, 169], [57, 20, 168], [62, 19, 167], [67, 19, 166], [71, 18, 165], [76, 18, 164], [80, 17, 163], [83, 17, 162], [87, 16, 161], [90, 15, 160], [94, 15, 159], [97, 14, 159], [100, 14, 158], [103, 13, 157], [106, 13, 156], [108, 12, 155], [111, 11, 154], [114, 11, 153], [116, 10, 153], [119, 10, 152], [121, 9, 151], [124, 8, 151], [126, 8, 150], [128, 7, 149], [130, 7, 149], [133, 6, 148], [135, 6, 147], [137, 6, 147], [139, 5, 146], [141, 5, 146], [143, 4, 145], [145, 4, 145], [147, 4, 144], [149, 3, 144], [151, 3, 143], [153, 3, 143], [155, 2, 142], [157, 2, 142], [159, 2, 142], [161, 1, 141], [163, 1, 141], [165, 1, 140], [167, 1, 140], [169, 0, 139], [171, 0, 139], [172, 0, 138], [174, 0, 138], [176, 0, 137], [178, 0, 137], [180, 0, 136], [182, 0, 136], [184, 0, 135], [185, 0, 135], [187, 0, 135], [189, 0, 134], [191, 0, 134], [193, 0, 133], [195, 0, 133], [196, 0, 132], [198, 0, 132], [200, 0, 131], [202, 0, 131], [204, 0, 130], [206, 0, 130], [207, 0, 129], [209, 0, 129], [211, 0, 128], [213, 0, 128], [214, 0, 127], [216, 0, 127], [218, 0, 126], [219, 0, 126], [221, 0, 125], [222, 0, 124], [224, 1, 124], [226, 2, 123], [227, 4, 123], [229, 6, 122], [230, 8, 122], [232, 11, 121], [233, 13, 120], [234, 16, 120], [236, 18, 119], [237, 20, 119], [238, 22, 118], [240, 24, 117], [241, 26, 117], [242, 28, 116], [244, 30, 115], [245, 32, 115], [246, 34, 114], [247, 36, 113], [248, 38, 113], [249, 40, 112], [251, 42, 111], [252, 44, 111], [253, 46, 110], [254, 48, 109], [255, 50, 108], [255, 52, 108], [255, 54, 107], [255, 56, 106], [255, 58, 106], [255, 61, 105], [255, 63, 104], [255, 65, 103], [255, 67, 102], [255, 69, 102], [255, 71, 101], [255, 73, 100], [255, 75, 99], [255, 77, 98], [255, 80, 98], [255, 82, 97], [255, 84, 96], [255, 86, 95], [255, 88, 94], [255, 90, 93], [255, 93, 92], [255, 95, 91], [255, 97, 91], [255, 99, 90], [255, 101, 89], [255, 103, 88], [255, 106, 87], [255, 108, 86], [255, 110, 85], [255, 112, 84], [255, 114, 83], [255, 116, 82], [255, 118, 81], [255, 120, 80], [255, 122, 78], [255, 124, 77], [255, 126, 76], [255, 127, 75], [255, 129, 74], [255, 131, 73], [255, 133, 72], [255, 135, 71], [255, 136, 69], [255, 138, 68], [255, 140, 67], [255, 142, 66], [255, 143, 64], [255, 145, 63], [255, 147, 62], [255, 149, 60], [255, 150, 59], [255, 152, 57], [255, 154, 56], [255, 155, 54], [255, 157, 53], [255, 159, 51], [255, 160, 50], [255, 162, 48], [255, 163, 47], [255, 165, 46], [255, 166, 44], [255, 168, 43], [255, 169, 42], [255, 171, 41], [255, 172, 40], [255, 174, 39], [255, 175, 38], [255, 177, 38], [255, 178, 37], [255, 180, 36], [255, 181, 35], [255, 182, 35], [255, 184, 34], [255, 185, 34], [255, 187, 33], [255, 188, 32], [255, 189, 32], [255, 191, 31], [255, 192, 31], [255, 194, 31], [255, 195, 30], [255, 196, 30], [255, 198, 30], [255, 199, 29], [255, 200, 29], [255, 202, 29], [255, 203, 29], [255, 204, 29], [255, 206, 29], [255, 207, 28], [255, 208, 28], [255, 210, 28], [255, 211, 28], [255, 212, 28], [255, 214, 28], [255, 215, 29], [255, 216, 29], [255, 218, 29], [255, 219, 29], [255, 220, 29], [255, 222, 29], [255, 223, 30], [255, 224, 30], [255, 226, 30], [255, 227, 30], [255, 228, 31], [255, 230, 31], [255, 231, 31], [255, 232, 32], [255, 233, 32], [255, 235, 33], [255, 236, 33], [255, 237, 34], [255, 239, 34], [255, 240, 35], [255, 241, 35]], + ), + 'linear_grey_10_95_c0': ContinuousPalette( + 'Dim gray', 'linear_grey_10_95_c0', + [[27, 27, 27], [28, 28, 28], [29, 29, 29], [29, 29, 29], [30, 30, 30], [31, 31, 31], [31, 31, 31], [32, 32, 32], [33, 33, 33], [34, 34, 34], [34, 34, 34], [35, 35, 35], [36, 36, 36], [36, 36, 36], [37, 37, 37], [38, 38, 38], [38, 38, 38], [39, 39, 39], [40, 40, 40], [40, 40, 40], [41, 41, 41], [42, 42, 42], [43, 43, 43], [43, 43, 43], [44, 44, 44], [45, 45, 45], [45, 45, 45], [46, 46, 46], [47, 47, 47], [48, 48, 48], [48, 48, 48], [49, 49, 49], [50, 50, 50], [50, 50, 50], [51, 51, 51], [52, 52, 52], [53, 53, 53], [53, 53, 53], [54, 54, 54], [55, 55, 55], [56, 56, 56], [56, 56, 56], [57, 57, 57], [58, 58, 58], [59, 59, 59], [59, 59, 59], [60, 60, 60], [61, 61, 61], [62, 62, 62], [62, 62, 62], [63, 63, 63], [64, 64, 64], [65, 65, 65], [65, 65, 65], [66, 66, 66], [67, 67, 67], [68, 68, 68], [68, 68, 68], [69, 69, 69], [70, 70, 70], [71, 71, 71], [71, 71, 71], [72, 72, 72], [73, 73, 73], [74, 74, 74], [74, 74, 74], [75, 75, 75], [76, 76, 76], [77, 77, 77], [78, 78, 78], [78, 78, 78], [79, 79, 79], [80, 80, 80], [81, 81, 81], [81, 82, 82], [82, 82, 82], [83, 83, 83], [84, 84, 84], [85, 85, 85], [85, 85, 85], [86, 86, 86], [87, 87, 87], [88, 88, 88], [89, 89, 89], [89, 89, 89], [90, 90, 90], [91, 91, 91], [92, 92, 92], [93, 93, 93], [93, 93, 93], [94, 94, 94], [95, 95, 95], [96, 96, 96], [97, 97, 97], [97, 97, 97], [98, 98, 98], [99, 99, 99], [100, 100, 100], [101, 101, 101], [102, 102, 102], [102, 102, 102], [103, 103, 103], [104, 104, 104], [105, 105, 105], [106, 106, 106], [106, 106, 106], [107, 107, 107], [108, 108, 108], [109, 109, 109], [110, 110, 110], [111, 111, 111], [111, 111, 111], [112, 112, 112], [113, 113, 113], [114, 114, 114], [115, 115, 115], [116, 116, 116], [116, 116, 116], [117, 117, 117], [118, 118, 118], [119, 119, 119], [120, 120, 120], [121, 121, 121], [121, 121, 121], [122, 122, 122], [123, 123, 123], [124, 124, 124], [125, 125, 125], [126, 126, 126], [126, 127, 127], [127, 127, 127], [128, 128, 128], [129, 129, 129], [130, 130, 130], [131, 131, 131], [132, 132, 132], [132, 132, 132], [133, 133, 133], [134, 134, 134], [135, 135, 135], [136, 136, 136], [137, 137, 137], [138, 138, 138], [138, 138, 138], [139, 139, 139], [140, 140, 140], [141, 141, 141], [142, 142, 142], [143, 143, 143], [144, 144, 144], [145, 145, 145], [145, 145, 145], [146, 146, 146], [147, 147, 147], [148, 148, 148], [149, 149, 149], [150, 150, 150], [151, 151, 151], [152, 152, 152], [152, 152, 152], [153, 153, 153], [154, 154, 154], [155, 155, 155], [156, 156, 156], [157, 157, 157], [158, 158, 158], [159, 159, 159], [159, 159, 159], [160, 160, 160], [161, 161, 161], [162, 162, 162], [163, 163, 163], [164, 164, 164], [165, 165, 165], [166, 166, 166], [167, 167, 167], [167, 167, 167], [168, 168, 168], [169, 169, 169], [170, 170, 170], [171, 171, 171], [172, 172, 172], [173, 173, 173], [174, 174, 174], [175, 175, 175], [176, 176, 176], [176, 176, 176], [177, 177, 177], [178, 178, 178], [179, 179, 179], [180, 180, 180], [181, 181, 181], [182, 182, 182], [183, 183, 183], [184, 184, 184], [185, 185, 185], [185, 186, 186], [186, 186, 186], [187, 187, 187], [188, 188, 188], [189, 189, 189], [190, 190, 190], [191, 191, 191], [192, 192, 192], [193, 193, 193], [194, 194, 194], [195, 195, 195], [196, 196, 196], [196, 196, 196], [197, 197, 197], [198, 198, 198], [199, 199, 199], [200, 200, 200], [201, 201, 201], [202, 202, 202], [203, 203, 203], [204, 204, 204], [205, 205, 205], [206, 206, 206], [207, 207, 207], [208, 208, 208], [208, 209, 209], [209, 209, 209], [210, 210, 210], [211, 211, 211], [212, 212, 212], [213, 213, 213], [214, 214, 214], [215, 215, 215], [216, 216, 216], [217, 217, 217], [218, 218, 218], [219, 219, 219], [220, 220, 220], [221, 221, 221], [222, 222, 222], [223, 223, 223], [223, 224, 223], [224, 224, 224], [225, 225, 225], [226, 226, 226], [227, 227, 227], [228, 228, 228], [229, 229, 229], [230, 230, 230], [231, 231, 231], [232, 232, 232], [233, 233, 233], [234, 234, 234], [235, 235, 235], [236, 236, 236], [237, 237, 237], [238, 238, 238], [239, 239, 239], [240, 240, 240], [241, 241, 241]], + ), + 'linear_kryw_0_100_c71': ContinuousPalette( + 'Fire', 'linear_kryw_0_100_c71', + [[0, 0, 0], [7, 0, 0], [13, 0, 0], [18, 0, 0], [22, 0, 0], [26, 0, 0], [29, 0, 0], [32, 0, 0], [34, 0, 0], [37, 0, 0], [39, 0, 0], [41, 0, 0], [43, 0, 0], [45, 0, 0], [47, 0, 0], [49, 0, 0], [50, 0, 0], [52, 0, 0], [54, 1, 0], [55, 1, 0], [57, 0, 0], [58, 0, 0], [60, 0, 0], [61, 0, 0], [63, 0, 0], [64, 0, 0], [66, 1, 0], [67, 1, 0], [69, 1, 0], [70, 1, 0], [72, 1, 0], [73, 1, 0], [75, 1, 0], [76, 1, 0], [78, 1, 0], [79, 1, 0], [81, 1, 0], [82, 1, 0], [84, 1, 0], [85, 1, 0], [87, 1, 0], [88, 1, 0], [90, 1, 0], [92, 1, 0], [93, 1, 0], [95, 1, 0], [96, 1, 0], [98, 1, 0], [99, 1, 0], [101, 1, 0], [103, 1, 0], [104, 1, 0], [106, 1, 0], [107, 2, 0], [109, 2, 0], [111, 2, 0], [112, 2, 0], [114, 2, 0], [116, 2, 0], [117, 2, 0], [119, 2, 0], [121, 2, 0], [122, 2, 0], [124, 2, 0], [126, 2, 0], [127, 2, 0], [129, 2, 0], [131, 2, 0], [132, 3, 0], [134, 3, 0], [136, 3, 0], [137, 3, 0], [139, 3, 0], [141, 3, 0], [142, 3, 0], [144, 3, 0], [146, 3, 0], [147, 3, 0], [149, 3, 0], [151, 4, 0], [153, 4, 0], [154, 4, 0], [156, 4, 0], [158, 4, 0], [159, 4, 0], [161, 4, 0], [163, 4, 0], [165, 5, 0], [166, 5, 0], [168, 5, 0], [170, 5, 0], [172, 5, 0], [173, 5, 0], [175, 5, 0], [177, 6, 0], [179, 6, 0], [180, 6, 0], [182, 6, 0], [184, 6, 0], [186, 7, 0], [188, 7, 0], [189, 7, 0], [191, 7, 0], [193, 7, 0], [195, 8, 0], [197, 8, 0], [198, 8, 0], [200, 8, 0], [202, 9, 0], [204, 9, 0], [206, 9, 0], [207, 9, 0], [209, 10, 0], [211, 10, 0], [213, 11, 0], [215, 11, 0], [216, 11, 0], [218, 12, 0], [220, 12, 0], [222, 13, 0], [224, 13, 0], [225, 14, 0], [227, 14, 0], [229, 15, 0], [231, 16, 0], [232, 17, 0], [234, 18, 0], [236, 19, 0], [237, 21, 0], [239, 23, 0], [240, 25, 0], [242, 27, 0], [243, 30, 0], [244, 32, 0], [245, 35, 0], [246, 38, 0], [247, 41, 0], [248, 44, 0], [248, 47, 0], [249, 50, 0], [250, 53, 0], [250, 56, 0], [251, 59, 0], [251, 62, 0], [252, 65, 0], [252, 68, 0], [252, 70, 0], [253, 73, 0], [253, 76, 0], [253, 78, 0], [253, 81, 0], [254, 84, 0], [254, 86, 0], [254, 89, 0], [254, 91, 0], [254, 93, 0], [254, 96, 0], [254, 98, 0], [254, 100, 0], [255, 103, 0], [255, 105, 0], [255, 107, 0], [255, 109, 0], [255, 111, 0], [255, 114, 0], [255, 116, 0], [255, 118, 0], [255, 120, 0], [255, 122, 0], [255, 124, 0], [255, 126, 0], [255, 128, 0], [255, 130, 0], [255, 132, 0], [255, 134, 0], [255, 136, 0], [255, 138, 0], [255, 140, 0], [255, 142, 0], [255, 143, 0], [255, 145, 0], [255, 147, 0], [255, 149, 0], [255, 151, 0], [255, 153, 0], [255, 154, 0], [255, 156, 1], [255, 158, 1], [255, 160, 1], [255, 161, 1], [255, 163, 1], [255, 165, 1], [255, 167, 1], [255, 168, 1], [255, 170, 1], [255, 172, 1], [255, 173, 2], [255, 175, 2], [255, 177, 2], [255, 178, 2], [255, 180, 2], [255, 182, 2], [255, 183, 3], [255, 185, 3], [255, 187, 3], [255, 188, 3], [255, 190, 3], [255, 192, 4], [255, 193, 4], [255, 195, 4], [255, 196, 4], [255, 198, 5], [255, 200, 5], [255, 201, 5], [255, 203, 5], [255, 204, 6], [255, 206, 6], [255, 208, 6], [255, 209, 7], [255, 211, 7], [255, 212, 8], [255, 214, 8], [255, 215, 9], [255, 217, 9], [255, 219, 10], [255, 220, 10], [255, 222, 11], [255, 223, 11], [255, 225, 12], [255, 226, 13], [255, 228, 13], [255, 229, 14], [255, 231, 15], [255, 233, 16], [255, 234, 17], [255, 236, 19], [255, 237, 21], [255, 239, 23], [255, 240, 26], [255, 242, 31], [255, 243, 36], [255, 245, 43], [255, 246, 51], [255, 247, 60], [255, 249, 71], [255, 250, 84], [255, 251, 98], [255, 252, 114], [255, 253, 132], [255, 254, 150], [255, 254, 168], [255, 254, 187], [255, 255, 205], [255, 255, 222], [255, 255, 239], [255, 255, 255]], + ), + 'diverging_protanopic_deuteranopic_bwy_60_95_c32': ContinuousPalette( + 'Diverging protanopic', 'diverging_protanopic_deuteranopic_bwy_60_95_c32', + [[58, 144, 254], [62, 145, 254], [65, 146, 254], [68, 146, 254], [70, 147, 254], [73, 148, 254], [76, 148, 254], [78, 149, 254], [80, 150, 254], [83, 151, 253], [85, 151, 253], [87, 152, 253], [89, 153, 253], [91, 153, 253], [94, 154, 253], [96, 155, 253], [97, 155, 253], [99, 156, 253], [101, 157, 253], [103, 158, 253], [105, 158, 253], [107, 159, 253], [109, 160, 252], [110, 160, 252], [112, 161, 252], [114, 162, 252], [115, 163, 252], [117, 163, 252], [119, 164, 252], [120, 165, 252], [122, 165, 252], [124, 166, 252], [125, 167, 252], [127, 168, 251], [128, 168, 251], [130, 169, 251], [131, 170, 251], [133, 171, 251], [134, 171, 251], [136, 172, 251], [137, 173, 251], [139, 173, 251], [140, 174, 251], [141, 175, 251], [143, 176, 250], [144, 176, 250], [146, 177, 250], [147, 178, 250], [148, 179, 250], [150, 179, 250], [151, 180, 250], [152, 181, 250], [154, 182, 250], [155, 182, 250], [156, 183, 250], [158, 184, 249], [159, 185, 249], [160, 185, 249], [161, 186, 249], [163, 187, 249], [164, 187, 249], [165, 188, 249], [166, 189, 249], [168, 190, 249], [169, 191, 249], [170, 191, 248], [171, 192, 248], [173, 193, 248], [174, 194, 248], [175, 194, 248], [176, 195, 248], [177, 196, 248], [179, 197, 248], [180, 197, 248], [181, 198, 247], [182, 199, 247], [183, 200, 247], [185, 200, 247], [186, 201, 247], [187, 202, 247], [188, 203, 247], [189, 203, 247], [190, 204, 247], [192, 205, 246], [193, 206, 246], [194, 206, 246], [195, 207, 246], [196, 208, 246], [197, 209, 246], [198, 210, 246], [199, 210, 246], [201, 211, 246], [202, 212, 245], [203, 213, 245], [204, 213, 245], [205, 214, 245], [206, 215, 245], [207, 216, 245], [208, 217, 245], [209, 217, 245], [211, 218, 244], [212, 219, 244], [213, 220, 244], [214, 220, 244], [215, 221, 244], [216, 222, 244], [217, 223, 244], [218, 224, 244], [219, 224, 243], [220, 225, 243], [221, 226, 243], [222, 227, 243], [223, 228, 243], [224, 228, 243], [226, 229, 243], [227, 230, 242], [228, 231, 242], [229, 231, 242], [230, 232, 242], [231, 233, 242], [232, 234, 241], [233, 234, 241], [234, 235, 241], [234, 236, 240], [235, 236, 240], [236, 236, 239], [236, 237, 238], [237, 237, 237], [237, 237, 236], [238, 237, 235], [238, 236, 234], [238, 236, 232], [238, 236, 231], [238, 235, 229], [237, 234, 228], [237, 234, 226], [237, 233, 224], [236, 232, 223], [236, 231, 221], [236, 231, 219], [235, 230, 218], [235, 229, 216], [234, 228, 214], [234, 228, 213], [233, 227, 211], [233, 226, 209], [233, 225, 208], [232, 224, 206], [232, 224, 204], [231, 223, 202], [231, 222, 201], [230, 221, 199], [230, 220, 197], [229, 220, 196], [229, 219, 194], [228, 218, 192], [228, 217, 191], [227, 216, 189], [227, 216, 187], [226, 215, 186], [226, 214, 184], [226, 213, 182], [225, 213, 181], [225, 212, 179], [224, 211, 177], [224, 210, 176], [223, 209, 174], [223, 209, 172], [222, 208, 171], [222, 207, 169], [221, 206, 167], [220, 206, 166], [220, 205, 164], [219, 204, 162], [219, 203, 161], [218, 203, 159], [218, 202, 157], [217, 201, 156], [217, 200, 154], [216, 199, 152], [216, 199, 151], [215, 198, 149], [215, 197, 148], [214, 196, 146], [214, 196, 144], [213, 195, 143], [212, 194, 141], [212, 193, 139], [211, 193, 138], [211, 192, 136], [210, 191, 134], [210, 190, 133], [209, 190, 131], [208, 189, 129], [208, 188, 128], [207, 187, 126], [207, 187, 125], [206, 186, 123], [206, 185, 121], [205, 184, 120], [204, 184, 118], [204, 183, 116], [203, 182, 115], [203, 181, 113], [202, 181, 111], [201, 180, 110], [201, 179, 108], [200, 178, 106], [199, 178, 105], [199, 177, 103], [198, 176, 102], [198, 175, 100], [197, 175, 98], [196, 174, 97], [196, 173, 95], [195, 172, 93], [194, 172, 92], [194, 171, 90], [193, 170, 88], [193, 169, 87], [192, 169, 85], [191, 168, 83], [191, 167, 81], [190, 166, 80], [189, 166, 78], [189, 165, 76], [188, 164, 75], [187, 164, 73], [187, 163, 71], [186, 162, 69], [185, 161, 68], [185, 161, 66], [184, 160, 64], [183, 159, 62], [183, 159, 60], [182, 158, 59], [181, 157, 57], [180, 156, 55], [180, 156, 53], [179, 155, 51], [178, 154, 49], [178, 153, 47], [177, 153, 45], [176, 152, 43], [176, 151, 41], [175, 151, 39], [174, 150, 36], [173, 149, 34], [173, 149, 32], [172, 148, 29], [171, 147, 26], [171, 146, 23], [170, 146, 20], [169, 145, 17], [168, 144, 13], [168, 144, 8]], + category="Color blind", flags=Palette.ColorBlindSafe | Palette.Diverging + ), + 'diverging_tritanopic_cwr_75_98_c20': ContinuousPalette( + 'Diverging tritanopic', 'diverging_tritanopic_cwr_75_98_c20', + [[41, 202, 231], [46, 202, 231], [50, 202, 231], [54, 203, 231], [57, 203, 231], [60, 203, 232], [64, 204, 232], [67, 204, 232], [70, 205, 232], [72, 205, 232], [75, 205, 232], [78, 206, 232], [80, 206, 233], [83, 207, 233], [85, 207, 233], [87, 207, 233], [89, 208, 233], [92, 208, 233], [94, 208, 234], [96, 209, 234], [98, 209, 234], [100, 210, 234], [102, 210, 234], [104, 210, 234], [106, 211, 234], [108, 211, 235], [110, 211, 235], [111, 212, 235], [113, 212, 235], [115, 213, 235], [117, 213, 235], [119, 213, 235], [120, 214, 236], [122, 214, 236], [124, 214, 236], [125, 215, 236], [127, 215, 236], [129, 216, 236], [130, 216, 236], [132, 216, 237], [134, 217, 237], [135, 217, 237], [137, 217, 237], [138, 218, 237], [140, 218, 237], [141, 219, 237], [143, 219, 238], [144, 219, 238], [146, 220, 238], [147, 220, 238], [149, 220, 238], [150, 221, 238], [152, 221, 238], [153, 222, 239], [155, 222, 239], [156, 222, 239], [158, 223, 239], [159, 223, 239], [160, 223, 239], [162, 224, 239], [163, 224, 240], [165, 225, 240], [166, 225, 240], [167, 225, 240], [169, 226, 240], [170, 226, 240], [172, 226, 240], [173, 227, 241], [174, 227, 241], [176, 228, 241], [177, 228, 241], [178, 228, 241], [180, 229, 241], [181, 229, 241], [182, 229, 242], [184, 230, 242], [185, 230, 242], [186, 230, 242], [188, 231, 242], [189, 231, 242], [190, 232, 242], [191, 232, 243], [193, 232, 243], [194, 233, 243], [195, 233, 243], [197, 233, 243], [198, 234, 243], [199, 234, 243], [200, 235, 244], [202, 235, 244], [203, 235, 244], [204, 236, 244], [205, 236, 244], [207, 236, 244], [208, 237, 244], [209, 237, 245], [210, 237, 245], [212, 238, 245], [213, 238, 245], [214, 239, 245], [215, 239, 245], [216, 239, 245], [218, 240, 246], [219, 240, 246], [220, 240, 246], [221, 241, 246], [223, 241, 246], [224, 241, 246], [225, 242, 246], [226, 242, 247], [227, 243, 247], [229, 243, 247], [230, 243, 247], [231, 244, 247], [232, 244, 247], [233, 244, 247], [235, 245, 247], [236, 245, 248], [237, 245, 248], [238, 246, 248], [239, 246, 248], [240, 246, 248], [242, 247, 248], [243, 247, 248], [244, 247, 248], [245, 247, 248], [246, 247, 247], [246, 247, 247], [247, 247, 247], [248, 246, 246], [248, 246, 246], [249, 246, 245], [249, 245, 244], [250, 245, 244], [250, 244, 243], [250, 243, 242], [250, 243, 241], [251, 242, 241], [251, 241, 240], [251, 241, 239], [251, 240, 238], [251, 239, 237], [251, 239, 237], [251, 238, 236], [252, 237, 235], [252, 237, 234], [252, 236, 233], [252, 235, 233], [252, 235, 232], [252, 234, 231], [252, 233, 230], [252, 232, 229], [252, 232, 229], [253, 231, 228], [253, 230, 227], [253, 230, 226], [253, 229, 225], [253, 228, 224], [253, 228, 224], [253, 227, 223], [253, 226, 222], [253, 226, 221], [253, 225, 220], [253, 224, 220], [254, 224, 219], [254, 223, 218], [254, 222, 217], [254, 221, 216], [254, 221, 216], [254, 220, 215], [254, 219, 214], [254, 219, 213], [254, 218, 212], [254, 217, 212], [254, 217, 211], [254, 216, 210], [254, 215, 209], [254, 215, 208], [254, 214, 208], [254, 213, 207], [255, 213, 206], [255, 212, 205], [255, 211, 204], [255, 210, 204], [255, 210, 203], [255, 209, 202], [255, 208, 201], [255, 208, 201], [255, 207, 200], [255, 206, 199], [255, 206, 198], [255, 205, 197], [255, 204, 197], [255, 204, 196], [255, 203, 195], [255, 202, 194], [255, 202, 193], [255, 201, 193], [255, 200, 192], [255, 199, 191], [255, 199, 190], [255, 198, 190], [255, 197, 189], [255, 197, 188], [255, 196, 187], [255, 195, 186], [255, 195, 186], [255, 194, 185], [255, 193, 184], [255, 193, 183], [255, 192, 182], [255, 191, 182], [255, 190, 181], [255, 190, 180], [255, 189, 179], [255, 188, 179], [255, 188, 178], [255, 187, 177], [255, 186, 176], [255, 186, 175], [255, 185, 175], [255, 184, 174], [255, 184, 173], [255, 183, 172], [255, 182, 172], [255, 181, 171], [255, 181, 170], [255, 180, 169], [255, 179, 169], [254, 179, 168], [254, 178, 167], [254, 177, 166], [254, 177, 165], [254, 176, 165], [254, 175, 164], [254, 174, 163], [254, 174, 162], [254, 173, 162], [254, 172, 161], [254, 172, 160], [254, 171, 159], [254, 170, 159], [254, 170, 158], [254, 169, 157], [254, 168, 156], [254, 167, 156], [254, 167, 155], [253, 166, 154], [253, 165, 153], [253, 165, 153], [253, 164, 152], [253, 163, 151], [253, 163, 150], [253, 162, 150], [253, 161, 149], [253, 160, 148]], + category="Color blind", flags=Palette.ColorBlindSafe | Palette.Diverging + ), + 'linear_protanopic_deuteranopic_kbw_5_98_c40': ContinuousPalette( + 'Linear protanopic', 'linear_protanopic_deuteranopic_kbw_5_98_c40', + [[17, 17, 17], [17, 18, 19], [18, 19, 21], [19, 19, 23], [19, 20, 24], [20, 21, 26], [20, 22, 28], [20, 23, 29], [21, 23, 31], [21, 24, 33], [21, 25, 34], [22, 25, 36], [22, 26, 38], [22, 27, 39], [22, 27, 41], [22, 28, 43], [22, 29, 45], [22, 30, 46], [23, 30, 48], [23, 31, 50], [23, 32, 52], [23, 33, 54], [23, 33, 55], [23, 34, 57], [23, 35, 59], [22, 36, 61], [22, 36, 63], [22, 37, 64], [22, 38, 66], [22, 39, 68], [22, 39, 70], [21, 40, 72], [21, 41, 74], [21, 42, 75], [20, 43, 77], [20, 43, 79], [20, 44, 81], [19, 45, 83], [19, 46, 84], [19, 46, 86], [18, 47, 88], [18, 48, 90], [18, 49, 91], [17, 50, 93], [17, 50, 95], [17, 51, 96], [16, 52, 98], [16, 53, 99], [16, 54, 101], [16, 54, 103], [16, 55, 104], [16, 56, 106], [16, 57, 107], [15, 58, 109], [15, 59, 110], [15, 59, 112], [15, 60, 113], [15, 61, 115], [15, 62, 116], [15, 63, 118], [15, 63, 119], [15, 64, 121], [15, 65, 122], [15, 66, 124], [15, 67, 126], [15, 68, 127], [15, 68, 129], [15, 69, 130], [15, 70, 132], [15, 71, 133], [15, 72, 135], [15, 73, 136], [15, 73, 138], [15, 74, 139], [15, 75, 141], [15, 76, 142], [15, 77, 144], [15, 78, 146], [15, 79, 147], [15, 79, 149], [14, 80, 150], [14, 81, 152], [14, 82, 153], [14, 83, 155], [14, 84, 157], [14, 85, 158], [14, 86, 160], [14, 86, 161], [13, 87, 163], [13, 88, 165], [13, 89, 166], [13, 90, 168], [13, 91, 169], [13, 92, 171], [12, 92, 173], [12, 93, 174], [12, 94, 176], [12, 95, 178], [11, 96, 179], [11, 97, 181], [11, 98, 182], [10, 99, 184], [10, 100, 186], [10, 100, 187], [9, 101, 189], [9, 102, 191], [9, 103, 192], [8, 104, 194], [8, 105, 196], [7, 106, 197], [7, 107, 199], [7, 108, 201], [6, 109, 202], [6, 109, 204], [5, 110, 206], [5, 111, 207], [4, 112, 209], [4, 113, 211], [3, 114, 212], [3, 115, 214], [2, 116, 216], [2, 117, 217], [1, 118, 219], [1, 119, 221], [0, 120, 222], [0, 120, 224], [0, 121, 226], [1, 122, 227], [1, 123, 229], [2, 124, 230], [3, 125, 232], [5, 126, 233], [7, 127, 235], [11, 128, 236], [14, 129, 237], [18, 130, 238], [22, 131, 239], [26, 132, 240], [31, 132, 241], [35, 133, 242], [40, 134, 242], [45, 135, 242], [49, 136, 242], [54, 137, 242], [59, 138, 242], [64, 139, 241], [69, 140, 240], [74, 141, 239], [79, 141, 238], [84, 142, 236], [89, 143, 234], [93, 144, 232], [98, 145, 230], [103, 146, 228], [107, 147, 226], [111, 148, 223], [115, 149, 220], [119, 150, 217], [123, 151, 214], [127, 152, 212], [131, 153, 208], [134, 154, 205], [137, 155, 202], [141, 155, 199], [144, 156, 196], [147, 157, 193], [150, 158, 189], [152, 159, 186], [155, 160, 183], [158, 161, 180], [160, 162, 177], [163, 163, 174], [165, 164, 170], [168, 165, 167], [170, 166, 164], [172, 167, 161], [175, 168, 158], [177, 169, 155], [179, 170, 152], [181, 171, 149], [183, 172, 146], [185, 173, 143], [187, 174, 140], [189, 175, 137], [191, 176, 134], [193, 177, 131], [195, 178, 128], [197, 179, 125], [199, 180, 122], [201, 181, 119], [202, 182, 116], [204, 183, 113], [206, 184, 109], [208, 184, 106], [209, 185, 103], [211, 186, 100], [213, 187, 96], [214, 188, 93], [216, 189, 90], [218, 190, 86], [219, 191, 82], [221, 192, 79], [222, 193, 75], [224, 194, 72], [225, 195, 68], [227, 196, 64], [228, 197, 60], [229, 198, 57], [231, 199, 53], [232, 200, 49], [233, 201, 46], [235, 202, 42], [236, 203, 39], [237, 204, 37], [239, 205, 35], [240, 206, 34], [241, 207, 34], [242, 208, 35], [243, 209, 37], [244, 210, 39], [245, 211, 43], [246, 212, 47], [247, 214, 52], [248, 215, 57], [249, 216, 62], [250, 217, 68], [251, 218, 74], [251, 219, 80], [252, 220, 86], [253, 221, 93], [253, 222, 99], [254, 223, 106], [254, 224, 112], [255, 225, 119], [255, 226, 126], [255, 227, 132], [255, 228, 139], [255, 229, 146], [255, 230, 152], [255, 231, 159], [255, 232, 165], [255, 233, 171], [255, 235, 177], [255, 236, 183], [254, 237, 189], [254, 238, 195], [254, 239, 201], [253, 240, 206], [253, 241, 211], [253, 242, 216], [253, 243, 221], [252, 245, 226], [252, 246, 231], [252, 247, 235], [252, 248, 239], [252, 249, 243]], + category="Color blind", flags=Palette.ColorBlindSafe + ), + 'linear_tritanopic_krjcw_5_95_c24': ContinuousPalette( + 'Linear tritanopic', 'linear_tritanopic_krjcw_5_95_c24', + [[17, 17, 17], [20, 17, 17], [22, 18, 17], [24, 18, 17], [26, 18, 17], [28, 19, 17], [30, 19, 17], [32, 19, 17], [34, 20, 17], [35, 20, 17], [37, 20, 17], [39, 20, 17], [41, 21, 17], [42, 21, 18], [44, 21, 18], [46, 21, 18], [47, 22, 18], [49, 22, 18], [51, 22, 18], [52, 22, 18], [54, 22, 19], [56, 22, 19], [57, 23, 19], [59, 23, 19], [61, 23, 19], [62, 23, 19], [64, 23, 20], [65, 24, 20], [67, 24, 20], [68, 24, 20], [70, 24, 21], [71, 25, 21], [73, 25, 21], [75, 25, 21], [76, 25, 22], [78, 26, 22], [79, 26, 22], [81, 26, 22], [82, 26, 23], [83, 27, 23], [85, 27, 23], [86, 27, 24], [88, 28, 24], [89, 28, 24], [91, 28, 25], [92, 29, 25], [93, 29, 25], [95, 30, 26], [96, 30, 26], [97, 31, 27], [99, 31, 27], [100, 32, 28], [101, 32, 28], [102, 33, 29], [104, 33, 29], [105, 34, 30], [106, 35, 30], [107, 35, 31], [108, 36, 31], [110, 36, 32], [111, 37, 33], [112, 38, 33], [113, 39, 34], [114, 39, 35], [115, 40, 35], [116, 41, 36], [117, 42, 37], [118, 43, 37], [119, 44, 38], [120, 45, 39], [121, 46, 40], [122, 46, 41], [122, 47, 41], [123, 48, 42], [124, 49, 43], [125, 51, 44], [125, 52, 45], [126, 53, 46], [127, 54, 47], [127, 55, 48], [128, 56, 49], [128, 57, 50], [129, 58, 51], [129, 60, 53], [130, 61, 54], [130, 62, 55], [130, 63, 56], [131, 65, 57], [131, 66, 59], [131, 67, 60], [131, 69, 61], [131, 70, 63], [131, 72, 64], [131, 73, 66], [131, 74, 67], [131, 76, 69], [131, 77, 70], [131, 79, 72], [131, 80, 73], [130, 81, 75], [130, 83, 76], [130, 84, 78], [130, 85, 79], [130, 87, 81], [129, 88, 82], [129, 89, 84], [129, 91, 86], [129, 92, 87], [128, 93, 89], [128, 95, 90], [128, 96, 92], [128, 97, 93], [127, 99, 95], [127, 100, 97], [126, 101, 98], [126, 103, 100], [126, 104, 101], [125, 105, 103], [125, 106, 105], [124, 108, 106], [124, 109, 108], [123, 110, 110], [123, 112, 111], [122, 113, 113], [122, 114, 115], [121, 115, 116], [120, 117, 118], [120, 118, 120], [119, 119, 121], [118, 121, 123], [118, 122, 125], [117, 123, 126], [116, 124, 128], [115, 126, 130], [114, 127, 132], [114, 128, 133], [113, 129, 135], [112, 131, 137], [111, 132, 139], [110, 133, 140], [109, 134, 142], [107, 136, 144], [106, 137, 146], [105, 138, 147], [104, 140, 149], [103, 141, 151], [101, 142, 153], [100, 143, 155], [98, 145, 156], [97, 146, 158], [95, 147, 160], [94, 148, 162], [92, 150, 164], [90, 151, 166], [88, 152, 167], [86, 153, 169], [84, 155, 171], [82, 156, 173], [80, 157, 175], [77, 158, 177], [75, 160, 179], [72, 161, 181], [69, 162, 182], [66, 164, 184], [63, 165, 186], [60, 166, 188], [56, 167, 190], [53, 168, 192], [50, 170, 193], [46, 171, 195], [43, 172, 197], [40, 173, 198], [36, 174, 200], [33, 175, 201], [29, 177, 203], [26, 178, 204], [23, 179, 206], [19, 180, 207], [16, 181, 208], [13, 182, 210], [11, 183, 211], [9, 184, 212], [8, 185, 213], [8, 186, 215], [9, 187, 216], [11, 188, 217], [13, 189, 218], [16, 190, 219], [19, 191, 220], [22, 192, 221], [26, 193, 222], [29, 194, 223], [33, 195, 224], [36, 196, 225], [40, 197, 226], [43, 198, 227], [47, 199, 227], [50, 200, 228], [54, 201, 229], [57, 202, 230], [61, 203, 230], [64, 203, 231], [68, 204, 232], [71, 205, 233], [75, 206, 233], [78, 207, 234], [81, 208, 234], [85, 209, 235], [88, 209, 235], [92, 210, 236], [95, 211, 236], [98, 212, 237], [102, 213, 237], [105, 213, 238], [108, 214, 238], [112, 215, 239], [115, 216, 239], [118, 217, 239], [121, 217, 240], [125, 218, 240], [128, 219, 240], [131, 220, 241], [135, 220, 241], [138, 221, 241], [141, 222, 241], [144, 223, 242], [148, 223, 242], [151, 224, 242], [154, 225, 242], [157, 225, 242], [160, 226, 242], [164, 227, 243], [167, 227, 243], [170, 228, 243], [173, 229, 243], [177, 229, 243], [180, 230, 243], [183, 231, 243], [186, 231, 243], [189, 232, 243], [193, 232, 243], [196, 233, 243], [199, 234, 243], [202, 234, 243], [205, 235, 243], [209, 235, 242], [212, 236, 242], [215, 236, 242], [218, 237, 242], [221, 238, 242], [225, 238, 242], [228, 239, 241], [231, 239, 241], [234, 240, 241], [237, 240, 241], [241, 241, 241]], + category="Color blind", flags=Palette.ColorBlindSafe + ), + 'isoluminant_cgo_80_c38': ContinuousPalette( + 'Isoluminant', 'isoluminant_cgo_80_c38', + [[112, 209, 255], [112, 210, 255], [112, 210, 255], [112, 210, 255], [112, 210, 255], [112, 210, 254], [112, 210, 254], [112, 210, 253], [112, 210, 252], [112, 210, 251], [112, 210, 250], [112, 210, 250], [113, 211, 249], [113, 211, 248], [113, 211, 247], [113, 211, 247], [113, 211, 246], [113, 211, 245], [113, 211, 244], [113, 211, 243], [113, 211, 243], [113, 211, 242], [113, 211, 241], [114, 212, 240], [114, 212, 239], [114, 212, 238], [114, 212, 238], [114, 212, 237], [114, 212, 236], [114, 212, 235], [114, 212, 234], [115, 212, 234], [115, 212, 233], [115, 212, 232], [115, 212, 231], [115, 212, 230], [115, 213, 229], [115, 213, 229], [116, 213, 228], [116, 213, 227], [116, 213, 226], [116, 213, 225], [116, 213, 225], [116, 213, 224], [116, 213, 223], [117, 213, 222], [117, 213, 221], [117, 213, 220], [117, 213, 219], [117, 213, 219], [118, 213, 218], [118, 214, 217], [118, 214, 216], [118, 214, 215], [118, 214, 214], [119, 214, 214], [119, 214, 213], [119, 214, 212], [119, 214, 211], [119, 214, 210], [120, 214, 209], [120, 214, 208], [120, 214, 208], [120, 214, 207], [121, 214, 206], [121, 214, 205], [121, 214, 204], [122, 214, 203], [122, 214, 202], [122, 214, 201], [122, 214, 201], [123, 214, 200], [123, 215, 199], [123, 215, 198], [124, 215, 197], [124, 215, 196], [124, 215, 195], [125, 215, 194], [125, 215, 193], [125, 215, 193], [126, 215, 192], [126, 215, 191], [126, 215, 190], [127, 215, 189], [127, 215, 188], [128, 215, 187], [128, 215, 186], [129, 215, 185], [129, 215, 184], [129, 215, 184], [130, 215, 183], [130, 215, 182], [131, 215, 181], [131, 215, 180], [132, 215, 179], [132, 215, 178], [133, 215, 177], [133, 215, 176], [134, 215, 175], [134, 215, 174], [135, 215, 173], [136, 215, 172], [136, 215, 172], [137, 215, 171], [137, 215, 170], [138, 215, 169], [139, 215, 168], [139, 215, 167], [140, 215, 166], [141, 214, 165], [141, 214, 164], [142, 214, 163], [143, 214, 162], [144, 214, 161], [144, 214, 160], [145, 214, 160], [146, 214, 159], [147, 214, 158], [147, 214, 157], [148, 214, 156], [149, 214, 155], [150, 214, 154], [151, 213, 153], [152, 213, 153], [153, 213, 152], [154, 213, 151], [154, 213, 150], [155, 213, 149], [156, 213, 148], [157, 213, 148], [158, 212, 147], [159, 212, 146], [160, 212, 145], [161, 212, 144], [162, 212, 144], [163, 212, 143], [164, 211, 142], [165, 211, 142], [166, 211, 141], [167, 211, 140], [168, 211, 140], [169, 211, 139], [170, 210, 138], [171, 210, 138], [172, 210, 137], [173, 210, 136], [174, 210, 136], [175, 209, 135], [176, 209, 135], [177, 209, 134], [178, 209, 134], [179, 209, 133], [180, 208, 133], [181, 208, 132], [182, 208, 132], [183, 208, 131], [184, 207, 131], [185, 207, 130], [186, 207, 130], [187, 207, 129], [188, 207, 129], [189, 206, 128], [190, 206, 128], [191, 206, 127], [192, 206, 127], [193, 205, 127], [194, 205, 126], [195, 205, 126], [196, 205, 125], [197, 204, 125], [197, 204, 125], [198, 204, 124], [199, 204, 124], [200, 203, 124], [201, 203, 123], [202, 203, 123], [203, 203, 123], [204, 202, 122], [205, 202, 122], [206, 202, 122], [207, 202, 121], [208, 201, 121], [209, 201, 121], [209, 201, 121], [210, 201, 120], [211, 200, 120], [212, 200, 120], [213, 200, 120], [214, 199, 119], [215, 199, 119], [216, 199, 119], [217, 199, 119], [217, 198, 119], [218, 198, 119], [219, 198, 118], [220, 197, 118], [221, 197, 118], [222, 197, 118], [223, 197, 118], [224, 196, 118], [224, 196, 118], [225, 196, 118], [226, 195, 118], [227, 195, 118], [228, 195, 118], [229, 194, 118], [229, 194, 118], [230, 194, 118], [231, 194, 118], [232, 193, 118], [233, 193, 118], [233, 193, 118], [234, 192, 118], [235, 192, 118], [236, 192, 118], [237, 191, 118], [237, 191, 118], [238, 191, 118], [239, 190, 118], [240, 190, 119], [241, 190, 119], [241, 189, 119], [242, 189, 119], [243, 189, 119], [244, 188, 119], [244, 188, 120], [245, 188, 120], [246, 188, 120], [247, 187, 120], [247, 187, 121], [248, 187, 121], [249, 186, 121], [249, 186, 121], [250, 186, 122], [251, 185, 122], [252, 185, 122], [252, 185, 122], [253, 184, 123], [254, 184, 123], [254, 184, 123], [255, 183, 124], [255, 183, 124], [255, 183, 124], [255, 182, 125], [255, 182, 125], [255, 182, 125], [255, 181, 126], [255, 181, 126], [255, 181, 127], [255, 180, 127], [255, 180, 127], [255, 180, 128], [255, 179, 128], [255, 179, 129], [255, 179, 129], [255, 178, 129]], + category="Other" + ), + 'rainbow_bgyr_35_85_c73': ContinuousPalette( + 'Rainbow', 'rainbow_bgyr_35_85_c73', + [[0, 53, 249], [0, 56, 246], [0, 58, 243], [0, 61, 240], [0, 63, 237], [0, 66, 234], [0, 68, 231], [0, 71, 228], [0, 73, 225], [0, 75, 223], [0, 77, 220], [0, 79, 217], [0, 81, 214], [0, 83, 211], [0, 85, 208], [0, 87, 205], [0, 89, 202], [0, 91, 199], [0, 92, 196], [0, 94, 194], [0, 96, 191], [0, 98, 188], [0, 99, 185], [0, 101, 182], [0, 103, 179], [0, 104, 176], [0, 106, 174], [0, 108, 171], [0, 109, 168], [0, 111, 165], [0, 112, 163], [0, 113, 160], [0, 115, 157], [0, 116, 155], [0, 117, 152], [0, 118, 150], [7, 119, 147], [14, 120, 145], [20, 122, 142], [24, 123, 140], [28, 124, 137], [32, 125, 135], [35, 126, 133], [38, 127, 130], [41, 128, 128], [43, 129, 126], [45, 130, 123], [47, 131, 121], [49, 132, 118], [51, 133, 116], [52, 134, 114], [53, 135, 111], [55, 136, 109], [56, 137, 106], [57, 138, 104], [58, 139, 101], [59, 140, 99], [59, 141, 96], [60, 142, 94], [61, 143, 91], [61, 144, 88], [62, 145, 86], [62, 146, 83], [62, 147, 80], [63, 148, 78], [63, 149, 75], [63, 150, 72], [63, 152, 69], [63, 153, 66], [63, 154, 63], [63, 155, 60], [63, 156, 57], [63, 157, 53], [63, 158, 50], [63, 159, 47], [63, 160, 43], [63, 161, 40], [64, 162, 36], [64, 163, 33], [65, 164, 30], [66, 165, 27], [68, 166, 24], [70, 166, 21], [72, 167, 19], [74, 168, 17], [77, 169, 16], [79, 169, 15], [82, 170, 14], [85, 171, 13], [88, 171, 13], [90, 172, 13], [93, 172, 14], [96, 173, 14], [99, 174, 14], [101, 174, 14], [104, 175, 15], [106, 175, 15], [109, 176, 16], [112, 177, 16], [114, 177, 16], [117, 178, 17], [119, 178, 17], [122, 179, 17], [124, 180, 18], [126, 180, 18], [129, 181, 19], [131, 181, 19], [134, 182, 19], [136, 182, 20], [138, 183, 20], [141, 183, 20], [143, 184, 21], [145, 185, 21], [148, 185, 21], [150, 186, 22], [152, 186, 22], [154, 187, 23], [157, 187, 23], [159, 188, 23], [161, 188, 24], [163, 189, 24], [166, 189, 24], [168, 190, 25], [170, 191, 25], [172, 191, 26], [175, 192, 26], [177, 192, 26], [179, 193, 27], [181, 193, 27], [183, 194, 27], [186, 194, 28], [188, 195, 28], [190, 195, 28], [192, 196, 29], [194, 196, 29], [196, 197, 30], [199, 197, 30], [201, 198, 30], [203, 198, 31], [205, 199, 31], [207, 199, 31], [209, 200, 32], [211, 200, 32], [214, 201, 33], [216, 201, 33], [218, 202, 33], [220, 202, 34], [222, 203, 34], [224, 203, 34], [226, 203, 35], [229, 204, 35], [231, 204, 35], [233, 205, 36], [235, 205, 36], [237, 205, 36], [239, 205, 37], [241, 205, 37], [242, 205, 37], [244, 205, 37], [245, 205, 37], [247, 204, 37], [248, 204, 36], [249, 203, 36], [250, 202, 36], [251, 201, 35], [251, 200, 35], [252, 199, 34], [252, 197, 34], [253, 196, 33], [253, 195, 33], [253, 193, 32], [253, 192, 32], [254, 191, 31], [254, 189, 30], [254, 188, 30], [254, 187, 29], [254, 185, 29], [255, 184, 28], [255, 182, 27], [255, 181, 27], [255, 180, 26], [255, 178, 25], [255, 177, 25], [255, 176, 24], [255, 174, 24], [255, 173, 23], [255, 171, 22], [255, 170, 22], [255, 168, 21], [255, 167, 20], [255, 166, 20], [255, 164, 19], [255, 163, 18], [255, 161, 18], [255, 160, 17], [255, 158, 16], [255, 157, 16], [255, 156, 15], [255, 154, 14], [255, 153, 13], [255, 151, 13], [255, 150, 12], [255, 148, 11], [255, 147, 10], [255, 145, 10], [255, 144, 9], [255, 142, 8], [255, 141, 7], [255, 139, 7], [255, 138, 6], [255, 136, 5], [255, 134, 5], [255, 133, 4], [255, 131, 3], [255, 130, 3], [255, 128, 2], [255, 127, 2], [255, 125, 1], [255, 123, 1], [255, 122, 0], [255, 120, 0], [255, 118, 0], [255, 117, 0], [255, 115, 0], [255, 113, 0], [255, 112, 0], [255, 110, 0], [255, 108, 0], [255, 106, 0], [255, 104, 0], [255, 103, 0], [255, 101, 0], [255, 99, 0], [255, 97, 0], [255, 95, 0], [255, 93, 0], [255, 91, 0], [255, 89, 0], [255, 87, 0], [255, 85, 0], [255, 83, 0], [255, 81, 0], [255, 79, 0], [255, 76, 0], [255, 74, 0], [255, 72, 0], [255, 69, 0], [255, 67, 0], [255, 64, 0], [255, 61, 0], [255, 59, 0], [255, 56, 0], [255, 53, 0], [255, 49, 0], [255, 46, 0], [255, 42, 0]], + category="Other" + ), +} + + +DefaultContinuousPaletteName = "linear_bgyw_15_100_c68" +DefaultContinuousPalette = ContinuousPalettes[DefaultContinuousPaletteName] + + +class ColorIcon(QIcon): + def __init__(self, color, size=12): + p = QPixmap(size, size) + p.fill(color) + super().__init__(p) + + +def get_default_curve_colors(n): + if n <= len(Dark2Colors): + return list(Dark2Colors)[:n] + if n <= len(DefaultRGBColors): + return list(DefaultRGBColors)[:n] + else: + return list(LimitedDiscretePalette(n)) + + +def patch_variable_colors(): + # This function patches Variable with properties and private attributes: + # pylint: disable=protected-access + from Orange.data import Variable, DiscreteVariable, ContinuousVariable + + def get_colors(var): + return var._colors + + def set_colors(var, colors): + var._colors = colors + var._palette = None + var.attributes["colors"] = [ + color_to_hex(color) if isinstance(color, (Sequence, np.ndarray)) + else color + for color in colors] + if "palette" in var.attributes: + del var.attributes["palette"] + + def get_palette(var): + return var._palette + + def set_palette(var, palette): + var._palette = palette + var.attributes["palette"] = palette.name + var._colors = None + if "colors" in var.attributes: + del var.attributes["colors"] + + def continuous_get_colors(var): + warnings.warn("ContinuousVariable.color is deprecated; " + "use ContinuousVariable.palette", + DeprecationWarning, stacklevel=2) + if var._colors is None: + try: + col1, col2, black = var.attributes["colors"] + var._colors = (hex_to_color(col1), hex_to_color(col2), black) + except (KeyError, ValueError): # unavailable or invalid + if var._palette or "palette" in var.attributes: + palette = var.palette + col1 = tuple(palette.palette[0]) + col2 = tuple(palette.palette[-1]) + black = bool(palette.flags & palette.Diverging) + var._colors = col1, col2, black + else: + var._colors = ((0, 0, 255), (255, 255, 0), False) + return var._colors + + def continuous_get_palette(var): + if var._palette is None: + if "palette" in var.attributes: + var._palette = ContinuousPalettes.get(var.attributes["palette"], + DefaultContinuousPalette) + elif var._colors is not None or "colors" in var.attributes: + col1, col2, black = var.colors + var._palette = ContinuousPalette.from_colors(col1, col2, black) + else: + var._palette = DefaultContinuousPalette + return var._palette + + def discrete_get_colors(var): + if var._colors is None or len(var._colors) < len(var.values): + if var._palette is not None or "palette" in var.attributes: + var._colors = var.palette.palette[:len(var.values)] + else: + var._colors = np.empty((0, 3), dtype=object) + colors = var.attributes.get("colors") + if colors: + try: + var._colors = np.vstack( + ([hex_to_color(color) for color in colors], + var._colors[len(colors):])) + except ValueError: + pass + if len(var._colors) < len(var.values): + var._colors = LimitedDiscretePalette(len(var.values)).palette + var._colors.flags.writeable = False + return var._colors + + def discrete_set_colors(var, colors): + colors = colors.copy() + colors.flags.writeable = False + set_colors(var, colors) + + def discrete_get_palette(var): + if var._palette is None: + if "palette" in var.attributes: + var._palette = DiscretePalettes.get(var.attributes["palette"], + DefaultDiscretePalette) + elif var._colors is not None or "colors" in var.attributes: + var._palette = DiscretePalette.from_colors(var.colors) + else: + var._palette = LimitedDiscretePalette(len(var.values)) + return var._palette + + Variable._colors = None + Variable._palette = None + Variable.colors = property(get_colors, set_colors) + Variable.palette = property(get_palette, set_palette) + + DiscreteVariable.colors = property(discrete_get_colors, discrete_set_colors) + DiscreteVariable.palette = property(discrete_get_palette, set_palette) + + ContinuousVariable.colors = property(continuous_get_colors, set_colors) + ContinuousVariable.palette = property(continuous_get_palette, set_palette) diff --git a/Orange/widgets/utils/tests/test_colorpalettes.py b/Orange/widgets/utils/tests/test_colorpalettes.py new file mode 100644 index 00000000000..c35172133e7 --- /dev/null +++ b/Orange/widgets/utils/tests/test_colorpalettes.py @@ -0,0 +1,708 @@ +# pylint: disable=protected-access +import unittest +from unittest.mock import Mock, patch + +import numpy as np +from AnyQt.QtCore import Qt +from AnyQt.QtGui import QImage, QColor, QIcon + +from orangewidget.tests.base import GuiTest +from Orange.data import DiscreteVariable, ContinuousVariable, Variable +# pylint: disable=wildcard-import,unused-wildcard-import +from Orange.widgets.utils.colorpalettes import * + + +class PaletteTest(unittest.TestCase): + def test_copy(self): + palette = DiscretePalette( + "custom", "c123", [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12)]) + copy = palette.copy() + self.assertEqual(copy.friendly_name, "custom") + self.assertEqual(copy.name, "c123") + np.testing.assert_equal(palette.palette, copy.palette) + copy.palette[0, 0] += 1 + self.assertEqual(palette.palette[0, 0], 1) + + def test_qcolors(self): + palcolors = [(1, 2, 3), (4, 5, 6)] + nan_color = (7, 8, 9) + palette = DiscretePalette( + "custom", "c123", palcolors, nan_color=nan_color) + self.assertEqual([col.getRgb()[:3] for col in palette.qcolors], + palcolors) + self.assertEqual([col.getRgb()[:3] for col in palette.qcolors_w_nan], + palcolors + [nan_color]) + + +class IndexPaletteTest(unittest.TestCase): + """Tested through DiscretePalette because IndexedPalette is too abstract""" + def setUp(self) -> None: + self.palette = DiscretePalette( + "custom", "c123", [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12)]) + + def test_len(self): + self.assertEqual(len(self.palette), 4) + + def test_getitem(self): + self.assertEqual(self.palette[1].getRgb()[:3], (4, 5, 6)) + self.assertEqual([col.getRgb()[:3] for col in self.palette[1:3]], + [(4, 5, 6), (7, 8, 9)]) + self.assertEqual([col.getRgb()[:3] for col in self.palette[0, 3, 0]], + [(1, 2, 3), (10, 11, 12), (1, 2, 3)]) + self.assertEqual([col.getRgb()[:3] + for col in self.palette[np.array([0, 3, 0])]], + [(1, 2, 3), (10, 11, 12), (1, 2, 3)]) + + +class DiscretePaletteTest(unittest.TestCase): + def setUp(self) -> None: + self.palette = DiscretePalette.from_colors( + [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12)]) + + def test_from_colors(self): + self.assertEqual(self.palette[2].getRgb()[:3], (7, 8, 9)) + + def test_color_indices(self): + a, nans = DiscretePalette._color_indices([1, 2, 3]) + self.assertIsInstance(a, np.ndarray) + self.assertEqual(a.dtype, int) + np.testing.assert_equal(a, [1, 2, 3]) + np.testing.assert_equal(nans, [False, False, False]) + + a, nans = DiscretePalette._color_indices([1, 2.0, np.nan]) + self.assertIsInstance(a, np.ndarray) + self.assertEqual(a.dtype, int) + np.testing.assert_equal(a, [1, 2, -1]) + np.testing.assert_equal(nans, [False, False, True]) + + a, nans = DiscretePalette._color_indices(np.array([1, 2, 3])) + self.assertIsInstance(a, np.ndarray) + self.assertEqual(a.dtype, int) + np.testing.assert_equal(a, [1, 2, 3]) + np.testing.assert_equal(nans, [False, False, False]) + + x = np.array([1, 2.0, np.nan]) + a, nans = DiscretePalette._color_indices(x) + self.assertIsInstance(a, np.ndarray) + self.assertEqual(a.dtype, int) + np.testing.assert_equal(a, [1, 2, -1]) + np.testing.assert_equal(nans, [False, False, True]) + self.assertTrue(np.isnan(x[2])) + + x = np.array([]) + a, nans = DiscretePalette._color_indices(x) + self.assertIsInstance(a, np.ndarray) + self.assertEqual(a.dtype, int) + np.testing.assert_equal(a, []) + np.testing.assert_equal(nans, []) + + def test_values_to_colors(self): + palette = self.palette + + x = np.array([1, 2.0, np.nan]) + colors = palette.values_to_colors(x) + np.testing.assert_equal(colors, [[4, 5, 6], [7, 8, 9], NAN_COLOR]) + + x = [1, 2.0, np.nan] + colors = palette.values_to_colors(x) + np.testing.assert_equal(colors, [[4, 5, 6], [7, 8, 9], NAN_COLOR]) + + def test_values_to_qcolors(self): + palette = self.palette + + x = np.array([1, 2.0, np.nan]) + colors = palette.values_to_qcolors(x) + self.assertEqual([col.getRgb()[:3] for col in colors], + [(4, 5, 6), (7, 8, 9), NAN_COLOR]) + + x = [1, 2.0, np.nan] + colors = palette.values_to_qcolors(x) + self.assertEqual([col.getRgb()[:3] for col in colors], + [(4, 5, 6), (7, 8, 9), NAN_COLOR]) + + def test_value_to_color(self): + palette = self.palette + np.testing.assert_equal(palette.value_to_color(0), [1, 2, 3]) + np.testing.assert_equal(palette.value_to_color(1.), [4, 5, 6]) + np.testing.assert_equal(palette.value_to_color(np.nan), NAN_COLOR) + + def test_value_to_qcolor(self): + palette = self.palette + np.testing.assert_equal( + palette.value_to_qcolor(0).getRgb(), (1, 2, 3, 255)) + np.testing.assert_equal( + palette.value_to_qcolor(1.).getRgb(), (4, 5, 6, 255)) + np.testing.assert_equal( + palette.value_to_qcolor(np.nan).getRgb()[:3], NAN_COLOR) + + def test_default(self): + self.assertIs(DefaultDiscretePalette, + DiscretePalettes[DefaultDiscretePaletteName]) + + +class LimitedDiscretePaletteTest(unittest.TestCase): + def test_small_palettes(self): + palette = LimitedDiscretePalette(3) + np.testing.assert_equal(palette.palette, DefaultRGBColors.palette[:3]) + + palette = LimitedDiscretePalette(len(DefaultRGBColors.palette)) + np.testing.assert_equal(palette.palette, DefaultRGBColors.palette) + + palette = LimitedDiscretePalette(len(DefaultRGBColors.palette) + 1) + self.assertFalse(np.all(np.array(palette.palette[:-1]) + == np.array(DefaultRGBColors.palette))) + + def test_large_palettes(self): + n = len(DefaultRGBColors.palette) + 1 + palette = LimitedDiscretePalette(n) + self.assertEqual(len({tuple(col) for col in palette.palette}), n) + + palette = LimitedDiscretePalette(100) + self.assertEqual(len({tuple(col) for col in palette.palette}), 100) + + def test_forced_hsv_palettes(self): + palette = LimitedDiscretePalette(5, force_hsv=True) + self.assertFalse(np.all(np.array(palette.palette) + == np.array(DefaultRGBColors.palette[:5]))) + + +class ContinuousPaletteTest(GuiTest): + @staticmethod + def assert_equal_within(a, b, diff): + a = a.astype(float) # make sure a is a signed type + np.testing.assert_array_less(np.abs(a - b), diff) + + @staticmethod + def test_color_indices(): + x = [0, 1, 2, 1, 0, np.nan, 1] + a, nans = ContinuousPalette._color_indices(x) + np.testing.assert_equal(a, [0, 128, 255, 128, 0, -1, 128]) + np.testing.assert_equal(nans, [False] * 5 + [True, False]) + + x = [np.nan, np.nan, np.nan] + a, nans = ContinuousPalette._color_indices(x) + np.testing.assert_equal(a, [-1, -1, -1]) + np.testing.assert_equal(nans, [True, True, True]) + + x = [] + a, nans = ContinuousPalette._color_indices(x) + np.testing.assert_equal(a, []) + np.testing.assert_equal(nans, []) + + @staticmethod + def test_color_indices_low_high(): + x = [0, 1, 2, 1, 4, np.nan, 3] + a, nans = ContinuousPalette._color_indices(x) + np.testing.assert_equal(a, [0, 64, 128, 64, 255, -1, 191]) + np.testing.assert_equal(nans, [False] * 5 + [True, False]) + + x = [0, 1, 2, 1, 4, np.nan, 3] + a, nans = ContinuousPalette._color_indices(x, low=2) + np.testing.assert_equal(a, [0, 0, 0, 0, 255, -1, 128]) + np.testing.assert_equal(nans, [False] * 5 + [True, False]) + + x = [0, 1, 2, 1, 4, np.nan, 3] + a, nans = ContinuousPalette._color_indices(x, high=2) + np.testing.assert_equal(a, [0, 128, 255, 128, 255, -1, 255]) + np.testing.assert_equal(nans, [False] * 5 + [True, False]) + + x = [0, 1, 2, 1, 4, np.nan, 3] + a, nans = ContinuousPalette._color_indices(x, low=1, high=3) + np.testing.assert_equal(a, [0, 0, 128, 0, 255, -1, 255]) + np.testing.assert_equal(nans, [False] * 5 + [True, False]) + + x = [0, 1, 2, 1, 4, np.nan, 3] + a, nans = ContinuousPalette._color_indices(x, low=0, high=8) + np.testing.assert_equal(a, [0, 32, 64, 32, 128, -1, 96]) + np.testing.assert_equal(nans, [False] * 5 + [True, False]) + + x = [1, 1, 1, np.nan] + a, nans = ContinuousPalette._color_indices(x) + np.testing.assert_equal(a, [128, 128, 128, -1]) + np.testing.assert_equal(nans, [False] * 3 + [True]) + + x = [np.nan, np.nan, np.nan] + a, nans = ContinuousPalette._color_indices(x) + np.testing.assert_equal(a, [-1, -1, -1]) + np.testing.assert_equal(nans, [True, True, True]) + + x = [] + a, nans = ContinuousPalette._color_indices(x) + np.testing.assert_equal(a, []) + np.testing.assert_equal(nans, []) + + def test_values_to_colors(self): + def assert_equal_colors(x, indices, **args): + expected = [palette.palette[idx] if idx >= 0 else NAN_COLOR + for idx in indices] + np.testing.assert_equal( + palette.values_to_colors(x, **args), + expected) + np.testing.assert_equal( + [col.getRgb()[:3] + for col in palette.values_to_qcolors(x, **args)], + expected) + + palette = list(ContinuousPalettes.values())[-1] + assert_equal_colors( + [0, 1, 2, 1, 4, np.nan, 3], + [0, 64, 128, 64, 255, -1, 191]) + + assert_equal_colors( + [0, 1, 2, 1, 4, np.nan, 3], + [0, 0, 0, 0, 255, -1, 128], low=2) + + assert_equal_colors( + [0, 1, 2, 1, 4, np.nan, 3], + [0, 128, 255, 128, 255, -1, 255], high=2) + + assert_equal_colors( + [0, 1, 2, 1, 4, np.nan, 3], + [0, 0, 128, 0, 255, -1, 255], low=1, high=3) + + assert_equal_colors( + [0, 1, 2, 1, 4, np.nan, 3], + [0, 32, 64, 32, 128, -1, 96], low=0, high=8) + + assert_equal_colors( + [1, 1, 1, np.nan], + [128, 128, 128, -1]) + + assert_equal_colors( + [np.nan, np.nan, np.nan], + [-1, -1, -1]) + + self.assertEqual(len(palette.values_to_colors([])), 0) + self.assertEqual(len(palette.values_to_qcolors([])), 0) + + def test_value_to_color(self): + def assert_equal_color(x, index, **args): + self.assertEqual(palette._color_index(x, **args), index) + expected = palette.palette[index] if index != -1 else NAN_COLOR + np.testing.assert_equal( + palette.value_to_color(x, **args), + expected) + np.testing.assert_equal( + palette.value_to_qcolor(x, **args).getRgb()[:3], + expected) + if not args: + np.testing.assert_equal( + palette[x].getRgb()[:3], + expected) + + palette = list(ContinuousPalettes.values())[-1] + + assert_equal_color(1, 255) + assert_equal_color(1, 128, high=2) + assert_equal_color(0, 128, low=5, high=-5) + assert_equal_color(5, 128, high=10) + assert_equal_color(-15, 128, low=-20, high=-10) + assert_equal_color(-10, 255, low=-20, high=-10) + assert_equal_color(-20, 0, low=-20, high=-10) + assert_equal_color(0, 128, low=13, high=13) + + assert_equal_color(2, 255) + assert_equal_color(-1, 0) + assert_equal_color(0, 0, low=0.5) + assert_equal_color(1, 255, high=0.5) + + assert_equal_color(np.nan, -1) + assert_equal_color(np.nan, -1, high=2) + assert_equal_color(np.nan, -1, low=5, high=-5) + assert_equal_color(np.nan, -1, low=5, high=5) + assert_equal_color(np.nan, -1, low=5) + + def test_lookup_table(self): + palette = list(ContinuousPalettes.values())[-1] + np.testing.assert_equal(palette.lookup_table(), palette.palette) + + indices = np.r_[[0] * 12, np.arange(0, 255, 2), [255] * 116] + colors = palette.palette[indices] + self.assert_equal_within( + palette.lookup_table(12 / 256, 140 / 256), colors, 5) + + def test_color_strip_horizontal(self): + palette = list(ContinuousPalettes.values())[-1] + img = palette.color_strip(57, 17) + self.assertEqual(img.width(), 57) + self.assertEqual(img.height(), 17) + + img = palette.color_strip(256, 3) + img = img.toImage().convertToFormat(QImage.Format_RGB888) + for i in range(3): + ptr = img.scanLine(i) + ptr.setsize(256 * 3) + a = np.array(ptr).reshape(256, 3) + np.testing.assert_equal(a, palette.palette) + + img = palette.color_strip(64, 3) + img = img.toImage().convertToFormat(QImage.Format_RGB888) + for i in range(3): + ptr = img.scanLine(i) + ptr.setsize(64 * 3) + a = np.array(ptr).reshape(64, 3) + # Colors differ due to rounding when computing indices + self.assert_equal_within(a, palette.palette[::4], 15) + + def test_color_strip_vertical(self): + palette = list(ContinuousPalettes.values())[-1] + img = palette.color_strip(57, 13, Qt.Vertical) + self.assertEqual(img.width(), 13) + self.assertEqual(img.height(), 57) + + img = palette.color_strip(256, 3, Qt.Vertical) + img = img.toImage().convertToFormat(QImage.Format_RGB888) + for i in range(256): + ptr = img.scanLine(i) + ptr.setsize(3 * 3) + a = np.array(ptr).reshape(3, 3) + self.assertTrue(np.all(a == palette.palette[255 - i])) + + + def test_from_colors(self): + palette = ContinuousPalette.from_colors((255, 255, 0), (0, 255, 255)) + colors = palette.palette + np.testing.assert_equal(colors[:, 0], np.arange(255, -1, -1)) + np.testing.assert_equal(colors[:, 1], 255) + np.testing.assert_equal(colors[:, 2], np.arange(256)) + + palette = ContinuousPalette.from_colors((127, 0, 0), (0, 0, 255), True) + colors = palette.palette + line = np.r_[np.arange(127, -1, -1), np.zeros(128)] + self.assert_equal_within(colors[:, 0], line, 2) + np.testing.assert_equal(colors[:, 1], 0) + self.assert_equal_within(colors[:, 2], 2 * line[::-1], 2) + + palette = ContinuousPalette.from_colors((255, 0, 0), (0, 0, 255), + pass_through=(255, 255, 0)) + colors = palette.palette + self.assert_equal_within( + colors[:, 0], + np.r_[[255] * 128, np.arange(255, 0, -2)], 3) + self.assert_equal_within( + colors[:, 1], + np.r_[np.arange(0, 255, 2), np.arange(255, 0, -2)], 3) + self.assert_equal_within( + colors[:, 2], + np.r_[[0] * 128, np.arange(0, 255, 2)], 3) + + def test_default(self): + self.assertIs(DefaultContinuousPalette, + ContinuousPalettes[DefaultContinuousPaletteName]) + + +class BinnedPaletteTest(unittest.TestCase): + def setUp(self): + self.palette = list(ContinuousPalettes.values())[-1] + self.bins = np.arange(10, 101, 10) + self.binned = BinnedContinuousPalette.from_palette( + self.palette, self.bins) + + def test_from_palette_continuous(self): + np.testing.assert_equal(self.binned.bins, self.bins) + np.testing.assert_equal( + self.binned.palette, + self.palette.values_to_colors([15, 25, 35, 45, 55, 65, 75, 85, 95], + low=10, high=100) + ) + + bins = np.array([100, 200]) + binned = BinnedContinuousPalette.from_palette(self.palette, bins) + np.testing.assert_equal(binned.bins, bins) + np.testing.assert_equal(binned.palette, [self.palette.palette[128]]) + + def test_from_palette_binned(self): + binned2 = BinnedContinuousPalette.from_palette( + self.binned, np.arange(10)) + + self.assertIsNot(self.binned, binned2) + np.testing.assert_equal(binned2.bins, self.bins) + np.testing.assert_equal( + binned2.palette, + self.palette.values_to_colors([15, 25, 35, 45, 55, 65, 75, 85, 95], + low=10, high=100) + ) + + def test_from_palette_discrete(self): + self.assertRaises( + TypeError, + BinnedContinuousPalette.from_palette, DefaultRGBColors, [1, 2, 3]) + + def test_bin_indices(self): + for x in ([15, 61, 150, np.nan, -5], + np.array([15, 61, 150, np.nan, -5])): + indices, nans = self.binned._bin_indices(x) + np.testing.assert_equal(indices, [0, 5, 8, -1, 0]) + np.testing.assert_equal(nans, [False, False, False, True, False]) + + def test_values_to_colors(self): + for x in ([15, 61, 150, np.nan, -5], + np.array([15, 61, 150, np.nan, -5])): + expected = [self.binned.palette[idx] if idx >= 0 else NAN_COLOR + for idx in [0, 5, 8, -1, 0]] + np.testing.assert_equal( + self.binned.values_to_colors(x), + expected) + np.testing.assert_equal( + [col.getRgb()[:3] + for col in self.binned.values_to_qcolors(x)], + expected) + + for col, exp in zip(x, expected): + np.testing.assert_equal( + self.binned.value_to_color(col), exp) + np.testing.assert_equal( + self.binned.value_to_qcolor(col).getRgb()[:3], exp) + + def test_copy(self): + copy = self.binned.copy() + np.testing.assert_equal(self.binned.palette, copy.palette) + np.testing.assert_equal(self.binned.bins, copy.bins) + copy.palette[0, 0] += 1 + self.assertNotEqual(self.binned.palette[0, 0], copy.palette[0, 0]) + copy.bins[0] += 1 + self.assertNotEqual(self.bins[0], copy.bins[0]) + + +class UtilsTest(GuiTest): + def test_coloricon(self): + color = QColor(1, 2, 3) + icon = ColorIcon(color, 16) + self.assertIsInstance(icon, QIcon) + sizes = icon.availableSizes() + self.assertEqual(len(sizes), 1) + size = sizes[0] + self.assertEqual(size.width(), 16) + self.assertEqual(size.height(), 16) + pixmap = icon.pixmap(size) + img = pixmap.toImage().convertToFormat(QImage.Format_RGB888) + ptr = img.bits() + ptr.setsize(16 * 16 * 3) + a = np.array(ptr).reshape(256, 3) + self.assertTrue(np.all(a == [1, 2, 3])) + + def test_get_default_curve_colors(self): + def equal_colors(n, palette): + colors = get_default_curve_colors(n) + self.assertEqual(len(colors), n) + self.assertTrue(all(color.getRgb() == palcol.getRgb() + for color, palcol in zip(colors, palette))) + + n_dark = len(Dark2Colors) + n_rgb = len(DefaultRGBColors) + equal_colors(2, Dark2Colors) + equal_colors(n_dark, Dark2Colors) + equal_colors(n_dark + 1, DefaultRGBColors) + equal_colors(n_rgb, DefaultRGBColors) + + colors = get_default_curve_colors(n_rgb + 1) + self.assertTrue( + all(color.getRgb() == palcol.getRgb() + for color, palcol in zip(colors, + LimitedDiscretePalette(n_rgb + 1)))) + + +class PatchedVariableTest(unittest.TestCase): + def test_colors(self): + var = Variable("x") + colors = [Mock(), Mock()] + var.colors = colors + self.assertIs(var.colors, colors) + + def test_palette(self): + var = Variable("x") + palette = Mock() + var.palette = palette + self.assertIs(var.palette, palette) + + def test_exclusive(self): + var = Variable("x") + colors = [Mock(), Mock()] + palette = Mock() + var.colors = colors + var.palette = palette + self.assertIsNone(var.colors) + self.assertTrue("palette" in var.attributes) + self.assertFalse("colors" in var.attributes) + + var.colors = colors + self.assertIsNone(var.palette) + self.assertTrue("colors" in var.attributes) + self.assertFalse("palette" in var.attributes) + + +class PatchedDiscreteVariableTest(unittest.TestCase): + def test_colors(self): + var = DiscreteVariable.make("a", values=["F", "M"]) + self.assertIsNone(var._colors) + self.assertEqual(var.colors.shape, (2, 3)) + self.assertFalse(var.colors.flags.writeable) + + var.colors = np.arange(6).reshape((2, 3)) + np.testing.assert_almost_equal(var.colors, [[0, 1, 2], [3, 4, 5]]) + self.assertEqual(var.attributes["colors"], ["#000102", "#030405"]) + self.assertFalse(var.colors.flags.writeable) + with self.assertRaises(ValueError): + var.colors[0] = [42, 41, 40] + + var = DiscreteVariable.make("x", values=["A", "B"]) + var.attributes["colors"] = ['#0a0b0c', '#0d0e0f'] + np.testing.assert_almost_equal(var.colors, [[10, 11, 12], [13, 14, 15]]) + + # Test ncolors adapts to nvalues + var = DiscreteVariable.make('foo', values=['d', 'r']) + self.assertEqual(len(var.colors), 2) + var.add_value('e') + self.assertEqual(len(var.colors), 3) + var.add_value('k') + self.assertEqual(len(var.colors), 4) + + def test_colors_fallback_to_palette(self): + var = DiscreteVariable.make("a", values=["F", "M"]) + var.palette = Dark2Colors + colors = var.colors + self.assertEqual(len(colors), 2) + for color, palcol in zip(colors, Dark2Colors): + np.testing.assert_equal(color, palcol.getRgb()[:3]) + + var = DiscreteVariable.make("a", values=[f"{i}" for i in range(40)]) + var.palette = Dark2Colors + colors = var.colors + self.assertEqual(len(colors), 40) + for color, palcol in zip(colors, LimitedDiscretePalette(40)): + np.testing.assert_equal(color, palcol.getRgb()[:3]) + + def test_colors_default(self): + var = DiscreteVariable.make("a", values=["F", "M"]) + colors = var.colors + self.assertEqual(len(colors), 2) + for color, palcol in zip(colors, DefaultRGBColors): + np.testing.assert_equal(color, palcol.getRgb()[:3]) + + var = DiscreteVariable.make("a", values=[f"{i}" for i in range(40)]) + colors = var.colors + self.assertEqual(len(colors), 40) + for color, palcol in zip(colors, LimitedDiscretePalette(40)): + np.testing.assert_equal(color, palcol.getRgb()[:3]) + + var = DiscreteVariable.make("a", values=["M", "F"]) + var.attributes["colors"] = "foo" + colors = var.colors + self.assertEqual(len(colors), 2) + for color, palcol in zip(colors, DefaultRGBColors): + np.testing.assert_equal(color, palcol.getRgb()[:3]) + + def test_colors_no_values(self): + var = DiscreteVariable.make("a", values=[]) + colors = var.colors + self.assertEqual(len(colors), 0) + + var = DiscreteVariable.make("a", values=[]) + var.palette = DefaultRGBColors + colors = var.colors + self.assertEqual(len(colors), 0) + + def test_get_palette(self): + var = DiscreteVariable.make("a", values=["M", "F"]) + palette = var.palette + self.assertEqual(len(palette), 2) + np.testing.assert_equal(palette.palette, DefaultRGBColors.palette[:2]) + + var = DiscreteVariable.make("a", values=["M", "F"]) + var.attributes["palette"] = "dark" + palette = var.palette + self.assertIs(palette, Dark2Colors) + + var = DiscreteVariable.make("a", values=["M", "F"]) + var.attributes["colors"] = ['#0a0b0c', '#0d0e0f'] + palette = var.palette + np.testing.assert_equal(palette.palette, [[10, 11, 12], [13, 14, 15]]) + + +class PatchedContinuousVariableTest(unittest.TestCase): + def test_colors(self): + with self.assertWarns(DeprecationWarning): + a = ContinuousVariable("a") + self.assertEqual(a.colors, ((0, 0, 255), (255, 255, 0), False)) + + a = ContinuousVariable("a") + a.attributes["colors"] = ['#010203', '#040506', True] + self.assertEqual(a.colors, ((1, 2, 3), (4, 5, 6), True)) + + a.colors = ((3, 2, 1), (6, 5, 4), True) + self.assertEqual(a.colors, ((3, 2, 1), (6, 5, 4), True)) + + def test_colors_from_palette(self): + with self.assertWarns(DeprecationWarning): + a = ContinuousVariable("a") + a.palette = palette = ContinuousPalettes["rainbow_bgyr_35_85_c73"] + colors = a.colors + self.assertEqual(colors, (tuple(palette.palette[0]), + tuple(palette.palette[255]), + False)) + + a = ContinuousVariable("a") + a.attributes["palette"] = "rainbow_bgyr_35_85_c73" + colors = a.colors + self.assertEqual(colors, (tuple(palette.palette[0]), + tuple(palette.palette[255]), + False)) + + a = ContinuousVariable("a") + a.palette = palette = ContinuousPalettes["diverging_bwr_40_95_c42"] + colors = a.colors + self.assertEqual(colors, (tuple(palette.palette[0]), + tuple(palette.palette[255]), + True)) + + def test_palette(self): + palette = ContinuousPalettes["rainbow_bgyr_35_85_c73"] + + a = ContinuousVariable("a") + a.palette = palette + self.assertIs(a.palette, palette) + + a = ContinuousVariable("a") + a.attributes["palette"] = palette.name + self.assertIs(a.palette, palette) + + a = ContinuousVariable("a") + self.assertIs(a.palette, DefaultContinuousPalette) + + with patch.object(ContinuousPalette, "from_colors") as from_colors: + a = ContinuousVariable("a") + a.attributes["colors"] = ('#0a0b0c', '#0d0e0f', False) + palette = a.palette + from_colors.assert_called_with((10, 11, 12), (13, 14, 15), False) + self.assertIs(palette, from_colors.return_value) + + with patch.object(ContinuousPalette, "from_colors") as from_colors: + a = ContinuousVariable("a") + a.colors = (10, 11, 12), (13, 14, 15), False + palette = a.palette + from_colors.assert_called_with((10, 11, 12), (13, 14, 15), False) + self.assertIs(palette, from_colors.return_value) + + + def test_proxy_has_separate_colors(self): + abc = ContinuousVariable("abc") + abc1 = abc.make_proxy() + abc2 = abc1.make_proxy() + + with self.assertWarns(DeprecationWarning): + original_colors = abc.colors + red_to_green = (255, 0, 0), (0, 255, 0), False + blue_to_red = (0, 0, 255), (255, 0, 0), False + + abc1.colors = red_to_green + abc2.colors = blue_to_red + with self.assertWarns(DeprecationWarning): + self.assertEqual(abc.colors, original_colors) + self.assertEqual(abc1.colors, red_to_green) + self.assertEqual(abc2.colors, blue_to_red) + + +patch_variable_colors() + +if __name__ == "__main__": + unittest.main() From 483e0a134a5e966a572c5cee57e1c77e7b5eccd1 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 16:49:54 +0100 Subject: [PATCH 02/22] Variable: Remove colors --- Orange/data/tests/test_variable.py | 51 ------------------------------ Orange/data/variable.py | 45 +++----------------------- Orange/widgets/gui.py | 4 +++ 3 files changed, 8 insertions(+), 92 deletions(-) diff --git a/Orange/data/tests/test_variable.py b/Orange/data/tests/test_variable.py index 8299270aa29..286268f83e5 100644 --- a/Orange/data/tests/test_variable.py +++ b/Orange/data/tests/test_variable.py @@ -190,31 +190,6 @@ def test_repr(self): repr(var), "DiscreteVariable(name='a', values=['1', '2', '3', '4', '5', '6', '7'])") - @unittest.skipUnless(is_on_path("PyQt4") or is_on_path("PyQt5"), "PyQt is not importable") - def test_colors(self): - var = DiscreteVariable.make("a", values=["F", "M"]) - self.assertIsNone(var._colors) - self.assertEqual(var.colors.shape, (2, 3)) - self.assertFalse(var.colors.flags.writeable) - - var.colors = np.arange(6).reshape((2, 3)) - np.testing.assert_almost_equal(var.colors, [[0, 1, 2], [3, 4, 5]]) - self.assertFalse(var.colors.flags.writeable) - with self.assertRaises(ValueError): - var.colors[0] = [42, 41, 40] - - var = DiscreteVariable.make("x", values=["A", "B"]) - var.attributes["colors"] = ['#0a0b0c', '#0d0e0f'] - np.testing.assert_almost_equal(var.colors, [[10, 11, 12], [13, 14, 15]]) - - # Test ncolors adapts to nvalues - var = DiscreteVariable.make('foo', values=['d', 'r']) - self.assertEqual(len(var.colors), 2) - var.add_value('e') - self.assertEqual(len(var.colors), 3) - var.add_value('k') - self.assertEqual(len(var.colors), 4) - def test_no_nonstringvalues(self): self.assertRaises(TypeError, DiscreteVariable, "foo", values=["a", 42]) a = DiscreteVariable("foo", values=["a", "b", "c"]) @@ -423,17 +398,6 @@ def test_adjust_decimals(self): a.val_from_str_add("5.1234") self.assertEqual(a.str_val(4.65432), "4.6543") - def test_colors(self): - a = ContinuousVariable("a") - self.assertEqual(a.colors, ((0, 0, 255), (255, 255, 0), False)) - - a = ContinuousVariable("a") - a.attributes["colors"] = ['#010203', '#040506', True] - self.assertEqual(a.colors, ((1, 2, 3), (4, 5, 6), True)) - - a.colors = ((3, 2, 1), (6, 5, 4), True) - self.assertEqual(a.colors, ((3, 2, 1), (6, 5, 4), True)) - def varcls_modified(self, name): var = super().varcls_modified(name) var.number_of_decimals = 5 @@ -621,21 +585,6 @@ def test_make_proxy_cont(self): self.assertEqual(hash(abc), hash(abc1)) self.assertEqual(hash(abc1), hash(abc2)) - def test_proxy_has_separate_colors(self): - abc = ContinuousVariable("abc") - abc1 = abc.make_proxy() - abc2 = abc1.make_proxy() - - original_colors = abc.colors - red_to_green = (255, 0, 0), (0, 255, 0), False - blue_to_red = (0, 0, 255), (255, 0, 0), False - - abc1.colors = red_to_green - abc2.colors = blue_to_red - self.assertEqual(abc.colors, original_colors) - self.assertEqual(abc1.colors, red_to_green) - self.assertEqual(abc2.colors, blue_to_red) - def test_proxy_has_separate_attributes(self): image = StringVariable("image") image1 = image.make_proxy() diff --git a/Orange/data/variable.py b/Orange/data/variable.py index f2391520665..8e59592d938 100644 --- a/Orange/data/variable.py +++ b/Orange/data/variable.py @@ -11,8 +11,8 @@ import scipy.sparse as sp from Orange.data import _variable -from Orange.util import Registry, hex_to_color, Reprable,\ - OrangeDeprecationWarning +from Orange.util import Registry, Reprable, OrangeDeprecationWarning + __all__ = ["Unknown", "MISSING_VALUES", "make_variable", "is_discrete_values", "Value", "Variable", "ContinuousVariable", "DiscreteVariable", @@ -323,20 +323,11 @@ def __init__(self, name="", compute_value=None, *, sparse=False): self.source_variable = None self.sparse = sparse self.attributes = {} - self._colors = None @property def name(self): return self._name - @property - def colors(self): # unreachable; pragma: no cover - return self._colors - - @colors.setter - def colors(self, value): - self._colors = value - def make_proxy(self): """ Copy the variable and set the master to `self.master` or to `self`. @@ -519,17 +510,6 @@ def format_str(self): def format_str(self, value): self._format_str = value - @Variable.colors.getter - def colors(self): - if self._colors is not None: - return self._colors - try: - col1, col2, black = self.attributes["colors"] - return (hex_to_color(col1), hex_to_color(col2), black) - except (KeyError, ValueError): - # User-provided colors were not available or invalid - return ((0, 0, 255), (255, 255, 0), False) - # noinspection PyAttributeOutsideInit @number_of_decimals.setter def number_of_decimals(self, x): @@ -696,22 +676,6 @@ def mapper(value, col_idx=None): return mapper - @Variable.colors.getter - def colors(self): - if self._colors is not None: - colors = np.array(self._colors) - elif not self.values: - colors = np.zeros((0, 3)) # to match additional colors in vstacks - else: - from Orange.widgets.utils.colorpalette import ColorPaletteGenerator - default = tuple(ColorPaletteGenerator.palette(self)) - colors = self.attributes.get('colors', ()) - colors = tuple(hex_to_color(color) for color in colors) \ - + default[len(colors):] - colors = np.array(colors) - colors.flags.writeable = False - return colors - def to_val(self, s): """ Convert the given argument to a value of the variable (`float`). @@ -744,7 +708,6 @@ def add_value(self, s): if not isinstance(s, str): raise TypeError("values of DiscreteVariables must be strings") self.values.append(s) - self._colors = None def val_from_str_add(self, s): """ @@ -787,9 +750,9 @@ def __reduce__(self): self.values, self.ordered), \ __dict__ - def copy(self, compute_value=None, *, name=None, **_): + def copy(self, compute_value=None, *, name=None, values=None, **_): return super().copy(compute_value=compute_value, name=name, - values=self.values, ordered=self.ordered) + values=values or self.values, ordered=self.ordered) class StringVariable(Variable): diff --git a/Orange/widgets/gui.py b/Orange/widgets/gui.py index ff157f68eca..d4aa031111d 100644 --- a/Orange/widgets/gui.py +++ b/Orange/widgets/gui.py @@ -859,3 +859,7 @@ def paint(self, painter, option, index): text = str(index.data(Qt.DisplayRole)) self.drawDisplay(painter, option, text_rect, text) painter.restore() + + +from Orange.widgets.utils.colorpalettes import patch_variable_colors +patch_variable_colors() From a6de10b8f8c808982c2951abe7c63213faadbcda Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 16:51:18 +0100 Subject: [PATCH 03/22] gui: Add palette_combo_box --- Orange/widgets/gui.py | 14 ++- Orange/widgets/utils/itemmodels.py | 65 ++++++++++- Orange/widgets/utils/tests/test_itemmodels.py | 104 +++++++++++++++++- 3 files changed, 178 insertions(+), 5 deletions(-) diff --git a/Orange/widgets/gui.py b/Orange/widgets/gui.py index d4aa031111d..4ed4665e9de 100644 --- a/Orange/widgets/gui.py +++ b/Orange/widgets/gui.py @@ -12,7 +12,7 @@ Qt, QSize, QItemSelection, ) from AnyQt.QtGui import QColor -from AnyQt.QtWidgets import QWidget, QItemDelegate, QListView +from AnyQt.QtWidgets import QWidget, QItemDelegate, QListView, QComboBox # re-export relevant objects from orangewidget.utils.combobox import ComboBox as OrangeComboBox @@ -79,13 +79,23 @@ "createAttributePixmap", "attributeIconDict", "attributeItem", "listView", "ListViewWithSizeHint", "listBox", "OrangeListBox", "TableValueRole", "TableClassValueRole", "TableDistribution", - "TableVariable", "TableBarItem" + "TableVariable", "TableBarItem", "palette_combo_box" ] log = logging.getLogger(__name__) +def palette_combo_box(initial_palette): + from Orange.widgets.utils import itemmodels + cb = QComboBox() + model = itemmodels.ContinuousPalettesModel() + cb.setModel(model) + cb.setCurrentIndex(model.indexOf(initial_palette)) + cb.setIconSize(QSize(64, 16)) + return cb + + def createAttributePixmap(char, background=Qt.black, color=Qt.white): """ Create a QIcon with a given character. The icon is 13 pixels high and wide. diff --git a/Orange/widgets/utils/itemmodels.py b/Orange/widgets/utils/itemmodels.py index 547ec078abb..ea20c55424e 100644 --- a/Orange/widgets/utils/itemmodels.py +++ b/Orange/widgets/utils/itemmodels.py @@ -10,8 +10,8 @@ from xml.sax.saxutils import escape from AnyQt.QtCore import ( - Qt, QObject, QAbstractListModel, QAbstractTableModel, QModelIndex, - QItemSelectionModel, QMimeData, QT_VERSION + Qt, QObject, QAbstractListModel, QModelIndex, + QItemSelectionModel ) from AnyQt.QtCore import pyqtSignal as Signal from AnyQt.QtGui import QColor @@ -25,6 +25,7 @@ PyListModel, AbstractSortTableModel as _AbstractSortTableModel ) +from Orange.widgets.utils.colorpalettes import ContinuousPalettes, ContinuousPalette from Orange.data import Variable, Storage, DiscreteVariable, ContinuousVariable from Orange.data.domain import filter_visible from Orange.widgets import gui @@ -570,6 +571,66 @@ def safe_text(text): return text +class ContinuousPalettesModel(QAbstractListModel): + """ + Model for combo boxes + """ + def __init__(self, parent=None, categories=None, icon_width=64): + super().__init__(parent) + self.icon_width = icon_width + + palettes = list(ContinuousPalettes.values()) + if categories is None: + # Use dict, not set, to keep order of categories + categories = dict.fromkeys(palette.category for palette in palettes) + + self.items = [] + for category in categories: + self.items.append(category) + self.items += [palette for palette in palettes + if palette.category == category] + if len(categories) == 1: + del self.items[0] + + def rowCount(self, parent): + return 0 if parent.isValid() else len(self.items) + + @staticmethod + def columnCount(parent): + return 0 if parent.isValid() else 1 + + def data(self, index, role): + item = self.items[index.row()] + if isinstance(item, str): + if role in [Qt.EditRole, Qt.DisplayRole]: + return item + else: + if role in [Qt.EditRole, Qt.DisplayRole]: + return item.friendly_name + if role == Qt.DecorationRole: + return item.color_strip(self.icon_width, 16) + if role == Qt.UserRole: + return item + return None + + def flags(self, index): + item = self.items[index.row()] + if isinstance(item, ContinuousPalette): + return Qt.ItemIsEnabled | Qt.ItemIsSelectable + else: + return Qt.ItemIsEnabled + + def indexOf(self, x): + if isinstance(x, str): + for i, item in enumerate(self.items): + if not isinstance(item, str) \ + and x in (item.name, item.friendly_name): + return i + elif isinstance(x, ContinuousPalette): + return self.items.index(x) + return None + + class ListSingleSelectionModel(QItemSelectionModel): """ Item selection model for list item models with single selection. diff --git a/Orange/widgets/utils/tests/test_itemmodels.py b/Orange/widgets/utils/tests/test_itemmodels.py index 85ef07d48e9..da691df0bf1 100644 --- a/Orange/widgets/utils/tests/test_itemmodels.py +++ b/Orange/widgets/utils/tests/test_itemmodels.py @@ -11,11 +11,13 @@ from Orange.data import \ Domain, \ ContinuousVariable, DiscreteVariable, StringVariable, TimeVariable +from Orange.widgets.utils import colorpalettes from Orange.widgets.utils.itemmodels import \ AbstractSortTableModel, PyTableModel,\ - PyListModel, VariableListModel, DomainModel,\ + PyListModel, VariableListModel, DomainModel, ContinuousPalettesModel, \ _as_contiguous_range from Orange.widgets.gui import TableVariable +from orangewidget.tests.base import GuiTest class TestUtils(unittest.TestCase): @@ -336,5 +338,105 @@ def test_read_only(self): self.assertSequenceEqual(model, domain) +class TestContinuousPalettesModel(GuiTest): + def setUp(self): + self.palette1, self.palette2 = \ + list(colorpalettes.ContinuousPalettes.values())[:2] + + def test_all_categories(self): + model = ContinuousPalettesModel() + shown = {palette.name for palette in model.items + if isinstance(palette, colorpalettes.Palette)} + expected = {palette.name + for palette in colorpalettes.ContinuousPalettes.values()} + self.assertEqual(expected, shown) + + shown = {name for name in model.items if isinstance(name, str)} + expected = {palette.category + for palette in colorpalettes.ContinuousPalettes.values()} + self.assertEqual(expected, shown) + + def test_category_selection(self): + categories = ('Diverging', 'Linear') + model = ContinuousPalettesModel(categories=categories) + shown = {palette.name + for palette in model.items + if isinstance(palette, colorpalettes.Palette)} + expected = {palette.name + for palette in colorpalettes.ContinuousPalettes.values() + if palette.category in categories} + self.assertEqual(expected, shown) + self.assertIn("Diverging", model.items) + self.assertIn("Linear", model.items) + + def test_single_category(self): + category = 'Diverging' + model = ContinuousPalettesModel(categories=(category, )) + shown = {palette.name + for palette in model.items + if isinstance(palette, colorpalettes.Palette)} + expected = {palette.name + for palette in colorpalettes.ContinuousPalettes.values() + if palette.category == category} + self.assertEqual(expected, shown) + self.assertEqual(len(model.items), len(shown)) + + def test_count(self): + model = ContinuousPalettesModel() + model.items = [self.palette1, self.palette1] + self.assertEqual(model.rowCount(QModelIndex()), 2) + self.assertEqual(model.columnCount(QModelIndex()), 1) + + def test_data(self): + model = ContinuousPalettesModel() + model.items = ["Palettes", self.palette1, self.palette2] + data = model.data + index = model.index + + self.assertEqual(data(index(0, 0), Qt.EditRole), "Palettes") + self.assertEqual(data(index(1, 0), Qt.EditRole), + self.palette1.friendly_name) + self.assertEqual(data(index(2, 0), Qt.EditRole), + self.palette2.friendly_name) + + self.assertEqual(data(index(0, 0), Qt.DisplayRole), "Palettes") + self.assertEqual(data(index(1, 0), Qt.DisplayRole), + self.palette1.friendly_name) + self.assertEqual(data(index(2, 0), Qt.DisplayRole), + self.palette2.friendly_name) + + self.assertIsNone(data(index(0, 0), Qt.DecorationRole)) + with patch.object(self.palette1, "color_strip") as color_strip: + self.assertIs(data(index(1, 0), Qt.DecorationRole), + color_strip.return_value) + with patch.object(self.palette2, "color_strip") as color_strip: + self.assertIs(data(index(2, 0), Qt.DecorationRole), + color_strip.return_value) + + self.assertIsNone(data(index(0, 0), Qt.UserRole)) + self.assertIs(data(index(1, 0), Qt.UserRole), self.palette1) + self.assertIs(data(index(2, 0), Qt.UserRole), self.palette2) + + self.assertIsNone(data(index(2, 0), Qt.FontRole)) + + def test_select_flags(self): + model = ContinuousPalettesModel() + model.items = ["Palettes", self.palette1, self.palette2] + self.assertFalse(model.flags(model.index(0, 0)) & Qt.ItemIsSelectable) + self.assertTrue(model.flags(model.index(1, 0)) & Qt.ItemIsSelectable) + self.assertTrue(model.flags(model.index(2, 0)) & Qt.ItemIsSelectable) + + def testIndexOf(self): + model = ContinuousPalettesModel() + model.items = ["Palettes", self.palette1, self.palette2] + self.assertEqual(model.indexOf(self.palette1), 1) + self.assertEqual(model.indexOf(self.palette1.name), 1) + self.assertEqual(model.indexOf(self.palette1.friendly_name), 1) + self.assertEqual(model.indexOf(self.palette2), 2) + self.assertEqual(model.indexOf(self.palette2.name), 2) + self.assertEqual(model.indexOf(self.palette2.friendly_name), 2) + self.assertIsNone(model.indexOf(42)) + + if __name__ == "__main__": unittest.main() From ceb74bf9380bc6f7be25142162bed8dc17998daa Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 16:54:57 +0100 Subject: [PATCH 04/22] OWColor: Port widget to new palettes --- Orange/widgets/data/owcolor.py | 466 ++++++++++------- Orange/widgets/data/tests/test_owcolor.py | 484 +++++++++++++++--- .../widgets/data/tests/test_oweditdomain.py | 16 +- 3 files changed, 708 insertions(+), 258 deletions(-) diff --git a/Orange/widgets/data/owcolor.py b/Orange/widgets/data/owcolor.py index 40000df8195..8e184dc379a 100644 --- a/Orange/widgets/data/owcolor.py +++ b/Orange/widgets/data/owcolor.py @@ -1,79 +1,154 @@ -""" -Widget for assigning colors to variables -""" from itertools import chain import numpy as np -from AnyQt.QtCore import Qt, QSize, QAbstractTableModel, QModelIndex -from AnyQt.QtGui import QColor, QFont, QImage, QBrush, qRgb -from AnyQt.QtWidgets import QHeaderView, QColorDialog, QTableView + +from AnyQt.QtCore import Qt, QSize, QAbstractTableModel, QModelIndex, QTimer +from AnyQt.QtGui import QColor, QFont, QBrush +from AnyQt.QtWidgets import QHeaderView, QColorDialog, QTableView, QComboBox import Orange +from Orange.util import color_to_hex from Orange.widgets import widget, settings, gui from Orange.widgets.gui import HorizontalGridDelegate -from Orange.widgets.utils.colorpalette import \ - ContinuousPaletteGenerator, ColorPaletteDlg +from Orange.widgets.utils import itemmodels, colorpalettes from Orange.widgets.utils.widgetpreview import WidgetPreview from Orange.widgets.widget import Input, Output +from orangewidget.settings import IncompatibleContext ColorRole = next(gui.OrangeUserRole) +StripRole = next(gui.OrangeUserRole) class AttrDesc: - def __init__(self, var, name=None, colors=None, values=None): + """ + Describes modifications that will be applied to variable. + + Provides methods that return either the modified value or the original + + Attributes: + var (Variable): an instance of variable + new_name (str or `None`): a changed name or `None` + """ + def __init__(self, var): self.var = var - self.name = name - self.colors = colors - self.values = values + self.new_name = None + + @property + def name(self): + return self.new_name or self.var.name + + @name.setter + def name(self, name): + self.new_name = name + + +class DiscAttrDesc(AttrDesc): + """ + Describes modifications that will be applied to variable. + + Provides methods that return either the modified value or the original + + Attributes: + var (DiscreteVariable): an instance of variable + name (str or `None`): a changed name or `None` + new_colors (list of tuple or None): new colors as tuples (R, G, B) + new_values (list of str or None): new names for values, if changed + """ + def __init__(self, var): + super().__init__(var) + self.new_colors = None + self.new_values = None + + @property + def colors(self): + if self.new_colors is None: + return self.var.colors + else: + return self.new_colors - def get_name(self): - return self.name or self.var.name + def set_color(self, i, color): + if self.new_colors is None: + self.new_colors = list(self.var.colors) + self.new_colors[i] = color - def get_colors(self): - return self.colors or self.var.colors + @property + def values(self): + return tuple(self.new_values or self.var.values) - def get_values(self): - return self.values or self.var.values + def set_value(self, i, value): + if not self.new_values: + self.new_values = self.var.values.copy() + self.new_values[i] = value + + def create_variable(self): + new_var = self.var.copy(name=self.name, values=self.values) + new_var.colors = np.asarray(self.colors) + return new_var + + +class ContAttrDesc(AttrDesc): + """ + Describes modifications that will be applied to variable. + + Provides methods that return either the modified value or the original + + Attributes: + var (ContinuousVariable): an instance of variable + name (str or `None`): a changed name or `None` + palette_name (str or None): name of palette or None if unmodified + """ + def __init__(self, var): + super().__init__(var) + if var.palette.name not in colorpalettes.ContinuousPalettes: + self.new_palette_name = colorpalettes.DefaultContinuousPaletteName + else: + self.new_palette_name = None + + @property + def palette_name(self): + return self.new_palette_name or self.var.palette.name + + @palette_name.setter + def palette_name(self, palette_name): + self.new_palette_name = palette_name + + def create_variable(self): + new_var = self.var.copy(name=self.name) + new_var.attributes["palette"] = self.palette_name + return new_var -# noinspection PyMethodOverriding class ColorTableModel(QAbstractTableModel): - """Base color model for discrete and continuous attributes. The model - handles the first column; other columns are handled in the derived classes """ + Base color model for discrete and continuous variables. The model handles: + - the first column - variable name (including setData) + - flags + - row count, computed as len(attrdescs) + Attribute: + attrdescs (list of AttrDesc): attrdescs with user-defined changes + """ def __init__(self): QAbstractTableModel.__init__(self) - self.variables = [] + self.attrdescs = [] @staticmethod - def _encode_color(color): - return "#{}{}{}".format(*[("0" + hex(x)[2:])[-2:] for x in color]) - - @staticmethod - def flags(_): + def flags(_): # pragma: no cover return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable - def set_data(self, variables): + def set_data(self, attrdescs): self.modelAboutToBeReset.emit() - self.variables = variables + self.attrdescs = attrdescs self.modelReset.emit() def rowCount(self, parent=QModelIndex()): - return 0 if parent.isValid() else self.n_rows() - - def columnCount(self, parent=QModelIndex()): - return 0 if parent.isValid() else self.n_columns() - - def n_rows(self): - return len(self.variables) + return 0 if parent.isValid() else len(self.attrdescs) def data(self, index, role=Qt.DisplayRole): - # pylint: disable=missing-docstring - # Only valid for the first column + # Only valid for the first column; derived classes implement the rest row = index.row() if role in (Qt.DisplayRole, Qt.EditRole): - return self.variables[row].get_name() + return self.attrdescs[row].name if role == Qt.FontRole: font = QFont() font.setBold(True) @@ -83,10 +158,9 @@ def data(self, index, role=Qt.DisplayRole): return None def setData(self, index, value, role): - # pylint: disable=missing-docstring - # Only valid for the first column + # Only valid for the first column; derived classes implement the rest if role == Qt.EditRole: - self.variables[index.row()].name = value + self.attrdescs[index.row()].name = value else: return False self.dataChanged.emit(index, index) @@ -94,48 +168,47 @@ def setData(self, index, value, role): class DiscColorTableModel(ColorTableModel): - """A model that stores the colors corresponding to values of discrete - variables. Colors are shown as decorations.""" - - # The class only overloads the methods from the base class - # pylint: disable=missing-docstring - def n_columns(self): - return bool(self.variables) and \ - 1 + max(len(row.var.values) for row in self.variables) + """ + A model that stores the colors corresponding to values of discrete + variables. Colors are shown as decorations. + """ + def columnCount(self, parent=QModelIndex()): + if parent.isValid(): + return 0 + return 1 + max((len(row.var.values) for row in self.attrdescs), + default=0) def data(self, index, role=Qt.DisplayRole): # pylint: disable=too-many-return-statements row, col = index.row(), index.column() if col == 0: - return ColorTableModel.data(self, index, role) - desc = self.variables[row] + return super().data(index, role) + + desc = self.attrdescs[row] if col > len(desc.var.values): return None if role in (Qt.DisplayRole, Qt.EditRole): - return desc.get_values()[col - 1] - color = desc.get_colors()[col - 1] + return desc.values[col - 1] + + color = desc.colors[col - 1] if role == Qt.DecorationRole: return QColor(*color) if role == Qt.ToolTipRole: - return self._encode_color(color) + return color_to_hex(color) if role == ColorRole: return color return None - # noinspection PyMethodOverriding def setData(self, index, value, role): row, col = index.row(), index.column() if col == 0: - return ColorTableModel.setData(self, index, value, role) - desc = self.variables[row] + return super().setData(index, value, role) + + desc = self.attrdescs[row] if role == ColorRole: - if not desc.colors: - desc.colors = desc.var.colors.tolist() - desc.colors[col - 1] = value[:3] + desc.set_color(col - 1, value[:3]) elif role == Qt.EditRole: - if not desc.values: - desc.values = list(desc.var.values) - desc.values[col - 1] = value + desc.set_value(col - 1, value) else: return False self.dataChanged.emit(index, index) @@ -144,38 +217,36 @@ def setData(self, index, value, role): class ContColorTableModel(ColorTableModel): """A model that stores the colors corresponding to values of discrete - variables. Colors are shown as decorations.""" + variables. Colors are shown as decorations. + + Attributes: + mouse_row (int): the row over which the mouse is hovering + """ + def __init__(self): + super().__init__() + self.mouse_row = None + + def set_mouse_row(self, row): + self.mouse_row = row - # The class only overloads the methods from the base class, except - # copy_to_all that is documented - # pylint: disable=missing-docstring @staticmethod - def n_columns(): - return 3 + def columnCount(parent=QModelIndex()): + return 0 if parent.isValid() else 3 def data(self, index, role=Qt.DisplayRole): def _column0(): return ColorTableModel.data(self, index, role) def _column1(): - if role == Qt.DecorationRole: - continuous_palette = \ - ContinuousPaletteGenerator(*desc.get_colors()) - line = continuous_palette.getRGB(np.arange(0, 1, 1 / 256)) - data = np.arange(0, 256, dtype=np.int8). \ - reshape((1, 256)). \ - repeat(16, 0) - img = QImage(data, 256, 16, QImage.Format_Indexed8) - img.setColorCount(256) - img.setColorTable([qRgb(*x) for x in line]) - img.data = data - return img + palette = colorpalettes.ContinuousPalettes[desc.palette_name] if role == Qt.ToolTipRole: - colors = desc.get_colors() - return f"{self._encode_color(colors[0])} " \ - f"- {self._encode_color(colors[1])}" + return palette.friendly_name if role == ColorRole: - return desc.get_colors() + return palette + if role == StripRole: + return palette.color_strip(128, 16) + if role == Qt.SizeHintRole: + return QSize(150, 16) return None def _column2(): @@ -188,7 +259,7 @@ def _column2(): return None row, col = index.row(), index.column() - desc = self.variables[row] + desc = self.attrdescs[row] if 0 <= col <= 2: return [_column0, _column1, _column2][col]() @@ -196,34 +267,77 @@ def _column2(): def setData(self, index, value, role): row, col = index.row(), index.column() if col == 0: - return ColorTableModel.setData(self, index, value, role) + return super().setData(index, value, role) if role == ColorRole: - self.variables[row].colors = value + self.attrdescs[row].palette_name = value.name else: return False self.dataChanged.emit(index, index) return True def copy_to_all(self, index): - colors = self.variables[index.row()].get_colors() - for desc in self.variables: - desc.colors = colors - self.dataChanged.emit(self.index(0, 1), self.index(self.n_rows(), 1)) + palette_name = self.attrdescs[index.row()].palette_name + for desc in self.attrdescs: + desc.palette_name = palette_name + self.dataChanged.emit(self.index(0, 1), self.index(self.rowCount(), 1)) + + +class ColorStripDelegate(HorizontalGridDelegate): + def __init__(self, view): + super().__init__() + self.view = view + + def createEditor(self, parent, option, index): + class Combo(QComboBox): + def __init__(self, parent, initial_data): + super().__init__(parent) + model = itemmodels.ContinuousPalettesModel(icon_width=128) + self.setModel(model) + self.setCurrentIndex(model.indexOf(initial_data)) + self.setIconSize(QSize(128, 16)) + QTimer.singleShot(0, self.showPopup) + + def hidePopup(self): + super().hidePopup() + view.closeEditor(self, ColorStripDelegate.NoHint) + + def select(i): + self.view.model().setData( + index, + combo.model().index(i, 0).data(Qt.UserRole), + ColorRole) + + view = self.view + combo = Combo(parent, index.data(ColorRole)) + combo.currentIndexChanged[int].connect(select) + return combo + + def paint(self, painter, option, index): + strip = index.data(StripRole) + rect = option.rect + painter.drawPixmap( + rect.x() + 13, rect.y() + (rect.height() - strip.height()) / 2, + strip) + super().paint(painter, option, index) class ColorTable(QTableView): - """The base table view for discrete and continuous attributes.""" + """ + The base table view for discrete and continuous attributes. - # pylint: disable=missing-docstring + Sets the basic properties of the table and implementes mouseRelease that + calls handle_click with appropriate index. It also prepares a grid_deleagte + that is used in derived classes. + """ def __init__(self, model): QTableView.__init__(self) self.horizontalHeader().hide() self.verticalHeader().hide() self.setShowGrid(False) self.setSelectionMode(QTableView.NoSelection) - self.setEditTriggers(QTableView.NoEditTriggers) - self.setItemDelegate(HorizontalGridDelegate()) self.setModel(model) + # View doesn't take ownership of delegates, so we store it here + self.grid_delegate = HorizontalGridDelegate() def mouseReleaseEvent(self, event): index = self.indexAt(event.pos()) @@ -235,10 +349,18 @@ def mouseReleaseEvent(self, event): class DiscreteTable(ColorTable): """Table view for discrete variables""" + def __init__(self, model): + super().__init__(model) + self.horizontalHeader().setSectionResizeMode( + QHeaderView.ResizeToContents) + self.setItemDelegate(self.grid_delegate) + self.setEditTriggers(QTableView.NoEditTriggers) def handle_click(self, index, x_offset): - """Handle click events for the first column (call the inherited - edit method) and the second (call method for changing the palette)""" + """ + Handle click events for the first column (call the edit method) + and the second (call method for changing the palette) + """ if self.model().data(index, Qt.EditRole) is None: return if index.column() == 0 or x_offset > 24: @@ -260,51 +382,37 @@ def change_color(self, index): class ContinuousTable(ColorTable): """Table view for continuous variables""" - def __init__(self, master, model): - ColorTable.__init__(self, model) - self.master = master + def __init__(self, model): + super().__init__(model) self.viewport().setMouseTracking(True) - self.model().mouse_row = None + # View doesn't take ownership of delegates, so we must store it + self.color_delegate = ColorStripDelegate(self) + self.setItemDelegateForColumn(0, self.grid_delegate) + self.setItemDelegateForColumn(1, self.color_delegate) + self.setColumnWidth(1, 256) + self.setEditTriggers( + QTableView.SelectedClicked | QTableView.DoubleClicked) def mouseMoveEvent(self, event): """Store the hovered row index in the model, trigger viewport update""" pos = event.pos() ind = self.indexAt(pos) - self.model().mouse_row = ind.row() + self.model().set_mouse_row(ind.row()) super().mouseMoveEvent(event) self.viewport().update() def leaveEvent(self, _): """Remove the stored the hovered row index, trigger viewport update""" - self.model().mouse_row = None + self.model().set_mouse_row(None) self.viewport().update() def handle_click(self, index, _): """Call the specific methods for handling clicks for each column""" - if index.column() == 0: + if index.column() < 2: self.edit(index) - elif index.column() == 1: - self.change_color(index) elif index.column() == 2: self.model().copy_to_all(index) - def change_color(self, index): - """Invoke palette editor and set the color""" - from_c, to_c, black = self.model().data(index, ColorRole) - master = self.master - dlg = ColorPaletteDlg(master) - dlg.createContinuousPalette("", "Gradient palette", black, - QColor(*from_c), QColor(*to_c)) - dlg.setColorSchemas(master.color_settings, master.selected_schema_index) - if dlg.exec(): - self.model().setData(index, - (dlg.contLeft.getColor().getRgb(), - dlg.contRight.getColor().getRgb(), - dlg.contpassThroughBlack), - ColorRole) - master.color_settings = dlg.getColorSchemas() - master.selected_schema_index = dlg.selectedSchemaIndex - class OWColor(widget.OWWidget): name = "Color" @@ -319,92 +427,82 @@ class Outputs: settingsHandler = settings.PerfectDomainContextHandler( match_values=settings.PerfectDomainContextHandler.MATCH_VALUES_ALL) - disc_colors = settings.ContextSetting([]) - cont_colors = settings.ContextSetting([]) + disc_descs = settings.ContextSetting([]) + cont_descs = settings.ContextSetting([]) color_settings = settings.Setting(None) selected_schema_index = settings.Setting(0) auto_apply = settings.Setting(True) + settings_version = 2 + want_main_area = False def __init__(self): super().__init__() self.data = None self.orig_domain = self.domain = None - self.disc_dict = {} - self.cont_dict = {} box = gui.hBox(self.controlArea, "Discrete Variables") self.disc_model = DiscColorTableModel() - disc_view = self.disc_view = DiscreteTable(self.disc_model) - disc_view.horizontalHeader().setSectionResizeMode( - QHeaderView.ResizeToContents) + self.disc_view = DiscreteTable(self.disc_model) self.disc_model.dataChanged.connect(self._on_data_changed) - box.layout().addWidget(disc_view) + box.layout().addWidget(self.disc_view) box = gui.hBox(self.controlArea, "Numeric Variables") self.cont_model = ContColorTableModel() - cont_view = self.cont_view = ContinuousTable(self, self.cont_model) - cont_view.setColumnWidth(1, 256) + self.cont_view = ContinuousTable(self.cont_model) self.cont_model.dataChanged.connect(self._on_data_changed) - box.layout().addWidget(cont_view) + box.layout().addWidget(self.cont_view) box = gui.auto_apply(self.controlArea, self, "auto_apply") box.button.setFixedWidth(180) box.layout().insertStretch(0) @staticmethod - def sizeHint(): + def sizeHint(): # pragma: no cover return QSize(500, 570) @Inputs.data def set_data(self, data): - """Handle data input signal""" self.closeContext() - self.disc_colors = [] - self.cont_colors = [] + self.disc_descs = [] + self.cont_descs = [] if data is None: self.data = self.domain = None else: self.data = data for var in chain(data.domain.variables, data.domain.metas): if var.is_discrete: - self.disc_colors.append(AttrDesc(var)) + self.disc_descs.append(DiscAttrDesc(var)) elif var.is_continuous: - self.cont_colors.append(AttrDesc(var)) + self.cont_descs.append(ContAttrDesc(var)) - self.disc_model.set_data(self.disc_colors) - self.cont_model.set_data(self.cont_colors) + self.disc_model.set_data(self.disc_descs) + self.cont_model.set_data(self.cont_descs) + self.openContext(data) self.disc_view.resizeColumnsToContents() self.cont_view.resizeColumnsToContents() - self.openContext(data) - self.disc_dict = {k.var.name: k for k in self.disc_colors} - self.cont_dict = {k.var.name: k for k in self.cont_colors} self.unconditional_commit() - def _on_data_changed(self, *args): + def _on_data_changed(self): self.commit() def commit(self): - def make(vars): + def make(variables): new_vars = [] - for var in vars: - source = self.disc_dict if var.is_discrete else self.cont_dict + for var in variables: + source = disc_dict if var.is_discrete else cont_dict desc = source.get(var.name) - if desc: - name = desc.get_name() - if var.is_discrete: - var = var.copy(name=name, values=desc.get_values()) - else: - var = var.copy(name=name) - var.colors = desc.colors - new_vars.append(var) + new_vars.append(desc.create_variable() if desc else var) return new_vars if self.data is None: self.Outputs.data.send(None) return + disc_dict = {desc.var.name: desc for desc in self.disc_descs} + cont_dict = {desc.var.name: desc for desc in self.cont_descs} + dom = self.data.domain new_domain = Orange.data.Domain( make(dom.attributes), make(dom.class_vars), make(dom.metas)) @@ -419,56 +517,52 @@ def _report_variables(variables): def was(n, o): return n if n == o else f"{n} (was: {o})" - # definition of td element for continuous gradient - # with support for pre-standard css (needed at least for Qt 4.8) max_values = max( (len(var.values) for var in variables if var.is_discrete), default=1) - defs = ("-webkit-", "-o-", "-moz-", "") - cont_tpl = '' \ - '' rows = "" + disc_dict = {k.var.name: k for k in self.disc_descs} + cont_dict = {k.var.name: k for k in self.cont_descs} for var in variables: if var.is_discrete: - desc = self.disc_dict[var.name] - values = " \n".join( - "{} {}". - format(square(*color), was(value, old_value)) + desc = disc_dict[var.name] + value_cols = " \n".join( + f"{square(*color)} {was(value, old_value)}" for color, value, old_value in - zip(desc.get_colors(), desc.get_values(), var.values)) + zip(desc.colors, desc.values, var.values)) elif var.is_continuous: - desc = self.cont_dict[var.name] - col = desc.get_colors() - colors = col[0][:3] + ("black, " * col[2], ) + col[1][:3] - values = cont_tpl.format(*colors * len(defs)) + desc = cont_dict[var.name] + pal = colorpalettes.ContinuousPalettes[desc.palette_name] + value_cols = f'' \ + f'{pal.friendly_name}' else: continue - names = was(desc.get_name(), desc.var.name) + names = was(desc.name, desc.var.name) rows += '\n' \ - ' {}{}\n\n'. \ - format(names, values) + f' {names}' \ + f' {value_cols}\n' \ + '\n' return rows if not self.data: return dom = self.data.domain sections = ( - (name, _report_variables(vars)) - for name, vars in ( + (name, _report_variables(variables)) + for name, variables in ( ("Features", dom.attributes), ("Outcome" + "s" * (len(dom.class_vars) > 1), dom.class_vars), ("Meta attributes", dom.metas))) - table = "".join("{}{}".format(name, rows) + table = "".join(f"{name}{rows}" for name, rows in sections if rows) if table: - self.report_raw("{}
".format(table)) + self.report_raw(r"{table}
") + + @classmethod + def migrate_context(cls, context, version): + if not version or version < 2: + raise IncompatibleContext if __name__ == "__main__": # pragma: no cover diff --git a/Orange/widgets/data/tests/test_owcolor.py b/Orange/widgets/data/tests/test_owcolor.py index 738ecf8ea22..3feb5727ab9 100644 --- a/Orange/widgets/data/tests/test_owcolor.py +++ b/Orange/widgets/data/tests/test_owcolor.py @@ -4,32 +4,418 @@ from unittest.mock import patch, Mock import numpy as np -from AnyQt.QtCore import Qt -from AnyQt.QtGui import QColor +from AnyQt.QtCore import Qt, QSize, QRect +from AnyQt.QtGui import QBrush -from Orange.data import Table, ContinuousVariable, Domain -from Orange.widgets.data.owcolor import OWColor, ColorRole, DiscColorTableModel +from Orange.data import Table, ContinuousVariable, DiscreteVariable, Domain +from Orange.util import color_to_hex +from Orange.widgets.utils import colorpalettes +from Orange.widgets.data import owcolor +from Orange.widgets.data.owcolor import ColorRole from Orange.widgets.tests.base import WidgetTest +from orangewidget.tests.base import GuiTest + + +class AttrDescTest(unittest.TestCase): + def test_name(self): + x = ContinuousVariable("x") + desc = owcolor.AttrDesc(x) + self.assertEqual(desc.name, "x") + desc.name = "y" + self.assertEqual(desc.name, "y") + desc.name = None + self.assertEqual(desc.name, "x") + + +class DiscAttrTest(unittest.TestCase): + def setUp(self): + x = DiscreteVariable("x", ["a", "b", "c"]) + self.desc = owcolor.DiscAttrDesc(x) + + def test_colors(self): + desc = self.desc + colors = desc.colors.copy() + desc.set_color(2, (0, 0, 0)) + colors[2] = 0 + np.testing.assert_equal(desc.colors, colors) + + def test_values(self): + desc = self.desc + self.assertEqual(desc.values, ("a", "b", "c")) + desc.set_value(1, "d") + self.assertEqual(desc.values, ("a", "d", "c")) + + def test_create_variable(self): + desc = self.desc + desc.set_color(0, [1, 2, 3]) + desc.set_color(1, [4, 5, 6]) + desc.set_color(2, [7, 8, 9]) + desc.name = "z" + desc.set_value(1, "d") + var = desc.create_variable() + self.assertIsInstance(var, DiscreteVariable) + self.assertEqual(var.name, "z") + self.assertEqual(var.values, ["a", "d", "c"]) + np.testing.assert_equal(var.colors, [[1, 2, 3], [4, 5, 6], [7, 8, 9]]) + + palette = desc.var.attributes["palette"] = object() + var = desc.create_variable() + self.assertIs(desc.var.attributes["palette"], palette) + self.assertFalse(hasattr(var.attributes, "palette")) + + +class ContAttrDesc(unittest.TestCase): + def setUp(self): + x = ContinuousVariable("x") + self.desc = owcolor.ContAttrDesc(x) + + def test_palette(self): + desc = self.desc + palette = desc.palette_name + self.assertIsInstance(palette, str) + desc.palette_name = "foo" + self.assertEqual(desc.palette_name, "foo") + desc.palette_name = None + self.assertEqual(desc.palette_name, palette) + + def test_create_variable(self): + desc = self.desc + desc.name = "z" + palette_name = _find_other_palette( + colorpalettes.ContinuousPalettes[desc.palette_name]).name + desc.palette_name = palette_name + var = desc.create_variable() + self.assertIsInstance(var, ContinuousVariable) + self.assertEqual(var.name, "z") + self.assertEqual(var.palette.name, palette_name) + + colors = desc.var.attributes["colors"] = object() + var = desc.create_variable() + self.assertIs(desc.var.attributes["colors"], colors) + self.assertFalse(hasattr(var.attributes, "colors")) + + +class BaseTestColorTableModel: + def test_row_count(self): + model = self.model + + self.assertEqual(model.rowCount(), 0) + model.set_data(self.descs) + self.assertEqual(model.rowCount(), len(self.descs)) + self.assertEqual(model.rowCount(self.model.index(0, 0)), 0) + + def test_data(self): + self.model.set_data(self.descs) + data = self.model.data + + index = self.model.index(1, 0) + self.assertEqual(data(index, Qt.DisplayRole), self.descs[1].name) + self.assertEqual(data(index, Qt.EditRole), self.descs[1].name) + self.assertTrue(data(index, Qt.FontRole).bold()) + self.assertTrue(data(index, Qt.TextAlignmentRole) & Qt.AlignRight) + + self.descs[1].name = "bar" + self.assertEqual(data(index), "bar") + + index = self.model.index(2, 0) + self.assertEqual(data(index, Qt.DisplayRole), self.descs[2].name) + + + def test_set_data(self): + emit = Mock() + try: + self.model.dataChanged.connect(emit) + self.model.set_data(self.descs) + data = self.model.data + setData = self.model.setData + + index = self.model.index(1, 0) + assert self.descs[1].name != "foo" + self.assertFalse(setData(index, "foo", Qt.DisplayRole)) + emit.assert_not_called() + self.assertEqual(data(index, Qt.DisplayRole), self.descs[1].name) + self.assertTrue(setData(index, "foo", Qt.EditRole)) + emit.assert_called() + self.assertEqual(data(index, Qt.DisplayRole), "foo") + self.assertEqual(self.descs[1].name, "foo") + finally: + self.model.dataChanged.disconnect(emit) + + +class TestDiscColorTableModel(GuiTest, BaseTestColorTableModel): + def setUp(self): + x = DiscreteVariable("x", list("abc")) + y = DiscreteVariable("y", list("def")) + z = DiscreteVariable("z", list("ghijk")) + self.descs = [owcolor.DiscAttrDesc(v) for v in (x, y, z)] + self.model = owcolor.DiscColorTableModel() + + def test_column_count(self): + model = self.model + + self.assertEqual(model.columnCount(), 1) + model.set_data(self.descs[:2]) + self.assertEqual(model.columnCount(), 4) + model.set_data(self.descs) + self.assertEqual(model.columnCount(), 6) + + self.assertEqual(model.columnCount(model.index(0, 0)), 0) + + def test_data(self): + super().test_data() + + model = self.model + + self.assertIsNone(model.data(model.index(0, 4))) + + index = model.index(1, 2) + self.assertEqual(model.data(index, Qt.DisplayRole), "e") + self.assertEqual(model.data(index, Qt.EditRole), "e") + font = model.data(index, Qt.FontRole) + self.assertTrue(font is None or not font.bold()) + + var_colors = self.descs[1].var.colors[1] + color = model.data(index, Qt.DecorationRole) + np.testing.assert_equal(color.getRgb()[:3], var_colors) + + color = model.data(index, owcolor.ColorRole) + np.testing.assert_equal(color, var_colors) + + self.assertEqual( + model.data(index, Qt.ToolTipRole), color_to_hex(var_colors)) + + self.assertIsNone(model.data(model.index(0, 4))) + + index = model.index(2, 5) + self.assertEqual(model.data(index, Qt.DisplayRole), "k") + self.assertEqual(model.data(index, Qt.EditRole), "k") + font = model.data(index, Qt.FontRole) + self.assertTrue(font is None or not font.bold()) + + var_colors = self.descs[2].var.colors[4] + color = model.data(index, Qt.DecorationRole) + np.testing.assert_equal(color.getRgb()[:3], var_colors) + + color = model.data(index, owcolor.ColorRole) + np.testing.assert_equal(color, var_colors) + + self.assertEqual( + model.data(index, Qt.ToolTipRole), color_to_hex(var_colors)) + + self.descs[2].set_value(4, "foo") + self.assertEqual(model.data(index, Qt.DisplayRole), "foo") + + def test_set_data(self): + super().test_set_data() + + model = self.model + emit = Mock() + try: + model.dataChanged.connect(emit) + + index = model.index(2, 5) + + self.assertEqual(model.data(index, Qt.DisplayRole), "k") + self.assertEqual(model.data(index, Qt.EditRole), "k") + self.assertFalse(model.setData(index, "foo", Qt.DisplayRole)) + emit.assert_not_called() + self.assertEqual(model.data(index, Qt.DisplayRole), "k") + self.assertTrue(model.setData(index, "foo", Qt.EditRole)) + emit.assert_called() + emit.reset_mock() + self.assertEqual(model.data(index, Qt.DisplayRole), "foo") + self.assertEqual(self.descs[2].values, ("g", "h", "i", "j", "foo")) + + new_color = [0, 1, 2] + self.assertTrue(model.setData(index, new_color + [255], ColorRole)) + emit.assert_called() + emit.reset_mock() + color = model.data(index, Qt.DecorationRole) + rgb = [color.red(), color.green(), color.blue()] + self.assertEqual(rgb, new_color) + + color = model.data(index, owcolor.ColorRole) + self.assertEqual(list(color), new_color) + + self.assertEqual( + model.data(index, Qt.ToolTipRole), color_to_hex(new_color)) + + np.testing.assert_equal(self.descs[2].colors[4], rgb) + finally: + model.dataChanged.disconnect(emit) + + +def _find_other_palette(initial): + for palette in colorpalettes.ContinuousPalettes.values(): + if palette.name != initial.name: + return palette + return None # pragma: no cover + + +class TestContColorTableModel(GuiTest, BaseTestColorTableModel): + def setUp(self): + z = ContinuousVariable("z") + w = ContinuousVariable("w") + u = ContinuousVariable("u") + self.descs = [owcolor.ContAttrDesc(v) for v in (z, w, u)] + self.model = owcolor.ContColorTableModel() + + def test_column_count(self): + model = self.model + + model.set_data(self.descs) + self.assertEqual(model.columnCount(), 3) + self.assertEqual(model.columnCount(model.index(0, 0)), 0) + + def test_data(self): + super().test_data() + + model = self.model + index = model.index(1, 1) + palette = colorpalettes.ContinuousPalettes[self.descs[1].palette_name] + self.assertEqual(model.data(index, Qt.ToolTipRole), + palette.friendly_name) + self.assertEqual(model.data(index, ColorRole), palette) + with patch.object(palette, "color_strip") as color_strip: + strip = model.data(index, owcolor.StripRole) + self.assertIs(strip, color_strip.return_value) + color_strip.assert_called_with(128, 16) + self.assertIsInstance(model.data(index, Qt.SizeHintRole), QSize) + self.assertIsNone(model.data(index, Qt.FontRole)) + + palette = _find_other_palette(self.descs[1]) + self.descs[1].palette_name = palette.name + self.assertIs(model.data(index, ColorRole), palette) + + index = self.model.index(1, 2) + self.assertIsNone(model.data(index, Qt.ToolTipRole)) + self.assertIsInstance(model.data(index, Qt.SizeHintRole), QSize) + self.assertIsInstance(model.data(index, Qt.ForegroundRole), QBrush) + self.assertIsNone(model.data(index, Qt.DisplayRole)) + model.set_mouse_row(0) + self.assertIsNone(model.data(index, Qt.DisplayRole)) + model.set_mouse_row(1) + self.assertEqual(model.data(index, Qt.DisplayRole), "Copy to all") + + def test_set_data(self): + super().test_set_data() + + model = self.model + index = model.index(1, 1) + index2 = model.index(2, 1) + initial = model.data(index, ColorRole) + initial2 = model.data(index, ColorRole) + assert initial.name == initial2.name + palette = _find_other_palette(initial) + + emit = Mock() + try: + model.dataChanged.connect(emit) + + self.assertFalse(model.setData(index, None, Qt.DisplayRole)) + emit.assert_not_called() + + self.assertTrue(model.setData(index, palette, ColorRole)) + emit.assert_called() + self.assertIs(model.data(index2, ColorRole), initial2) + + self.assertEqual(model.data(index, Qt.ToolTipRole), + palette.friendly_name) + self.assertEqual(model.data(index, ColorRole), palette) + self.assertEqual(self.descs[1].palette_name, palette.name) + with patch.object(palette, "color_strip") as color_strip: + strip = model.data(index, owcolor.StripRole) + self.assertIs(strip, color_strip.return_value) + color_strip.assert_called_with(128, 16) + finally: + model.dataChanged.disconnect(emit) + + def test_copy_to_all(self): + super().test_set_data() + + model = self.model + index = model.index(1, 1) + initial = model.data(index, ColorRole) + palette = _find_other_palette(initial) + + emit = Mock() + try: + model.dataChanged.connect(emit) + model.setData(index, palette, ColorRole) + emit.assert_called() + emit.reset_mock() + + model.copy_to_all(index) + emit.assert_called_once() + for row, desc in enumerate(self.descs): + self.assertEqual( + model.data(model.index(row, 1), ColorRole).name, + palette.name) + self.assertEqual(desc.palette_name, palette.name) + finally: + model.dataChanged.disconnect(emit) + + +class TestColorStripDelegate(GuiTest): + def setUp(self): + z = ContinuousVariable("z") + w = ContinuousVariable("w") + u = ContinuousVariable("u") + self.descs = [owcolor.ContAttrDesc(v) for v in (z, w, u)] + self.model = owcolor.ContColorTableModel() + self.model.set_data(self.descs) + self.table = owcolor.ContinuousTable(self.model) + + def test_color_combo(self): + model = self.model + index = model.index(1, 1) + initial = model.data(index, ColorRole) + palette = _find_other_palette(initial) + model.setData(index, palette, ColorRole) + self.assertEqual(self.descs[1].palette_name, palette.name) + + combo = self.table.color_delegate.createEditor(None, Mock(), index) + self.assertEqual(combo.currentText(), palette.friendly_name) + palette = _find_other_palette(palette) + combo.setCurrentIndex(combo.findText(palette.friendly_name)) + self.assertEqual(self.descs[1].palette_name, palette.name) + + with patch.object(self.table, "closeEditor") as closeEditor: + combo.hidePopup() + closeEditor.assert_called() + + @patch.object(owcolor.HorizontalGridDelegate, "paint") + def test_paint(self, _): + model = self.model + index = model.index(1, 1) + painter = Mock() + option = Mock() + option.rect = QRect(10, 20, 30, 40) + index.data = Mock() + index.data.return_value = Mock() + index.data.return_value.height = Mock(return_value=42) + self.table.color_delegate.paint(painter, option, index) + self.assertIs(painter.drawPixmap.call_args[0][2], + index.data.return_value) class TestOWColor(WidgetTest): def setUp(self): - self.widget = self.create_widget(OWColor) + self.widget = self.create_widget(owcolor.OWColor) self.iris = Table("iris") def test_reuse_old_settings(self): self.send_signal(self.widget.Inputs.data, self.iris) - assert isinstance(self.widget, OWColor) + assert isinstance(self.widget, owcolor.OWColor) self.widget.saveSettings() - w = self.create_widget(OWColor, reset_default_settings=False) + w = self.create_widget(owcolor.OWColor, reset_default_settings=False) self.send_signal(self.widget.Inputs.data, self.iris, widget=w) def test_invalid_input_colors(self): a = ContinuousVariable("a") a.attributes["colors"] = "invalid" - _ = a.colors t = Table.from_domain(Domain([a])) self.send_signal(self.widget.Inputs.data, t) @@ -41,6 +427,15 @@ def test_unconditional_commit_on_new_signal(self): self.send_signal(self.widget.Inputs.data, self.iris) commit.assert_called() + def test_commit_on_data_changed(self): + widget = self.widget + model = widget.cont_model + self.send_signal(widget.Inputs.data, self.iris) + with patch.object(widget, 'commit') as commit: + commit.reset_mock() + model.setData(model.index(0, 0), "y", Qt.EditRole) + commit.assert_called() + def test_lose_data(self): widget = self.widget send = widget.Outputs.data.send = Mock() @@ -56,80 +451,37 @@ def test_lose_data(self): self.assertEqual(widget.disc_model.rowCount(), 0) self.assertEqual(widget.cont_model.rowCount(), 0) - def test_base_model(self): + def test_model_content(self): widget = self.widget - dm = widget.disc_model - cm = widget.disc_model - data = Table("heart_disease") self.send_signal(widget.Inputs.data, data) + + dm = widget.disc_model self.assertEqual( [dm.data(dm.index(i, 0)) for i in range(dm.rowCount())], [var.name for var in data.domain.variables if var.is_discrete] ) + + cm = widget.disc_model self.assertEqual( [dm.data(cm.index(i, 0)) for i in range(cm.rowCount())], [var.name for var in data.domain.variables if var.is_discrete] ) - dm.setData(dm.index(1, 0), "foo", Qt.EditRole) - self.assertEqual(dm.data(dm.index(1, 0)), "foo") - self.assertEqual(widget.disc_colors[1].name, "foo") - - widget.disc_colors[1].name = "bar" - self.assertEqual(dm.data(dm.index(1, 0)), "bar") - - def test_disc_model(self): - widget = self.widget - dm = widget.disc_model - - data = Table("heart_disease") - self.send_signal(widget.Inputs.data, data) - - # Consider these two as sanity checks - self.assertEqual(dm.data(dm.index(0, 0)), "gender") - self.assertEqual(dm.data(dm.index(1, 0)), "chest pain") - - self.assertEqual(dm.columnCount(), 5) # 1 + four types of chest pain - self.assertEqual(dm.data(dm.index(0, 1)), "female") - self.assertEqual(dm.data(dm.index(0, 2)), "male") - self.assertIsNone(dm.data(dm.index(0, 3))) - self.assertIsNone(dm.data(dm.index(0, 4))) - self.assertIsNone(dm.data(dm.index(0, 3), ColorRole)) - self.assertIsNone(dm.data(dm.index(0, 3), Qt.DecorationRole)) - self.assertIsNone(dm.data(dm.index(0, 3), Qt.ToolTipRole)) - - chest_pain = data.domain["chest pain"] - self.assertEqual( - [dm.data(dm.index(1, i)) for i in range(1, 5)], - list(chest_pain.values)) - np.testing.assert_equal( - [dm.data(dm.index(1, i), ColorRole) for i in range(1, 5)], - list(chest_pain.colors)) - self.assertEqual( - [dm.data(dm.index(1, i), Qt.DecorationRole) for i in range(1, 5)], - [QColor(*color) for color in chest_pain.colors]) - self.assertEqual( - [dm.data(dm.index(1, i), Qt.ToolTipRole) for i in range(1, 5)], - list(map(DiscColorTableModel._encode_color, chest_pain.colors))) - - dm.setData(dm.index(0, 1), "F", Qt.EditRole) - self.assertEqual(dm.data(dm.index(0, 1)), "F") - self.assertEqual(widget.disc_colors[0].values, ["F", "male"]) + def test_report(self): + self.widget.send_report() - widget.disc_colors[0].values[1] = "M" - self.assertEqual(dm.data(dm.index(0, 2)), "M") + self.send_signal(self.widget.Inputs.data, self.iris) + self.widget.send_report() - dm.setData(dm.index(0, 1), (1, 2, 3, 4), ColorRole) - self.assertEqual(list(dm.data(dm.index(0, 1), ColorRole)), [1, 2, 3]) - self.assertEqual(list(widget.disc_colors[0].colors[0]), [1, 2, 3]) + self.send_signal(self.widget.Inputs.data, Table("zoo")) + self.widget.send_report() - widget.disc_colors[0].colors[1] = (4, 5, 6) - self.assertEqual(list(dm.data(dm.index(0, 2), ColorRole)), [4, 5, 6]) + self.send_signal(self.widget.Inputs.data, None) + self.widget.send_report() - def test_report(self): - self.send_signal(self.widget.Inputs.data, self.iris) - self.widget.send_report() # don't crash + def test_string_variables(self): + self.send_signal(self.widget.Inputs.data, Table("zoo")) if __name__ == "__main__": diff --git a/Orange/widgets/data/tests/test_oweditdomain.py b/Orange/widgets/data/tests/test_oweditdomain.py index 45857126e8f..79c0d29f728 100644 --- a/Orange/widgets/data/tests/test_oweditdomain.py +++ b/Orange/widgets/data/tests/test_oweditdomain.py @@ -7,10 +7,11 @@ import numpy as np from numpy.testing import assert_array_equal -from AnyQt.QtCore import QModelIndex, QItemSelectionModel, Qt, QItemSelection +from AnyQt.QtCore import QItemSelectionModel, Qt, QItemSelection from AnyQt.QtWidgets import QAction, QComboBox, QLineEdit, QStyleOptionViewItem from AnyQt.QtTest import QTest, QSignalSpy +from Orange.widgets.utils import colorpalettes from orangewidget.tests.utils import simulate from orangewidget.utils.itemmodels import PyListModel @@ -121,14 +122,17 @@ def test_input_from_owcolor(self): """Check widget's data sent from OWColor widget""" owcolor = self.create_widget(OWColor) self.send_signal("Data", self.iris, widget=owcolor) - owcolor.disc_model.setData(QModelIndex(), (250, 97, 70, 255), ColorRole) - owcolor.cont_model.setData( - QModelIndex(), ((255, 80, 114, 255), (255, 255, 0, 255), False), - ColorRole) + disc_model = owcolor.disc_model + disc_model.setData(disc_model.index(0, 1), (1, 2, 3), ColorRole) + cont_model = owcolor.cont_model + palette = list(colorpalettes.ContinuousPalettes.values())[-1] + cont_model.setData(cont_model.index(1, 1), palette, ColorRole) owcolor_output = self.get_output("Data", owcolor) self.send_signal("Data", owcolor_output) self.assertEqual(self.widget.data, owcolor_output) - self.assertIsNotNone(self.widget.data.domain.class_vars[-1].colors) + np.testing.assert_equal(self.widget.data.domain.class_var.colors[0], + (1, 2, 3)) + self.assertIs(self.widget.data.domain.attributes[1].palette, palette) def test_list_attributes_remain_lists(self): a = ContinuousVariable("a") From 34f42513aeb99dd02b84b4e4609d07951e62bab0 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 20:17:07 +0100 Subject: [PATCH 05/22] OWPaintData: Port to new palettes --- Orange/widgets/data/owpaintdata.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/Orange/widgets/data/owpaintdata.py b/Orange/widgets/data/owpaintdata.py index 99a427944c0..ea1e667ea0c 100644 --- a/Orange/widgets/data/owpaintdata.py +++ b/Orange/widgets/data/owpaintdata.py @@ -25,7 +25,7 @@ from Orange.widgets import gui from Orange.widgets.settings import Setting -from Orange.widgets.utils import itemmodels, colorpalette +from Orange.widgets.utils import itemmodels, colorpalettes from Orange.util import scale, namegen from Orange.widgets.utils.widgetpreview import WidgetPreview @@ -710,13 +710,12 @@ def __init__(self, iterable, parent, flags, super().__init__(iterable, parent, flags, list_item_role, supportedDropActions) - self.colors = colorpalette.ColorPaletteGenerator( - len(colorpalette.DefaultRGBColors)) + self.colors = colorpalettes.DefaultRGBColors def data(self, index, role=Qt.DisplayRole): if self._is_index_valid(index) and \ role == Qt.DecorationRole and \ - 0 <= index.row() < self.colors.number_of_colors: + 0 <= index.row() < len(self): return gui.createAttributePixmap("", self.colors[index.row()]) return super().data(index, role) @@ -809,8 +808,7 @@ def __init__(self): else: self.__buffer = np.array(self.data) - self.colors = colorpalette.ColorPaletteGenerator( - len(colorpalette.DefaultRGBColors)) + self.colors = colorpalettes.DefaultRGBColors self.tools_cache = {} self._init_ui() @@ -1021,7 +1019,7 @@ def _check_and_set_data(data): y = np.zeros(len(data)) else: self.input_classes = y.values - self.input_colors = y.colors + self.input_colors = y.palette y = data[:, y].Y @@ -1041,11 +1039,9 @@ def reset_to_input(self): index = self.selected_class_label() if self.input_colors is not None: - colors = self.input_colors + palette = self.input_colors else: - colors = colorpalette.DefaultRGBColors - palette = colorpalette.ColorPaletteGenerator( - number_of_colors=len(colors), rgb_colors=colors) + palette = colorpalettes.DefaultRGBColors self.colors = palette self.class_model.colors = palette self.class_model[:] = self.input_classes @@ -1102,7 +1098,7 @@ def _class_count_changed(self): self.labels = list(self.class_model) self.removeClassLabel.setEnabled(len(self.class_model) > 1) self.addClassLabel.setEnabled( - len(self.class_model) < self.colors.number_of_colors) + len(self.class_model) < len(self.colors)) if self.selected_class_label() is None: itemmodels.select_row(self.classValuesView, 0) From 4c3845b55dfaa29e15edff25589e2fa6e79a9290 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 20:51:10 +0100 Subject: [PATCH 06/22] Scatterplot base: Port to new palettes --- .../widgets/visualize/owscatterplotgraph.py | 87 +++++++++++-------- .../visualize/tests/test_owscatterplot.py | 10 +-- .../visualize/tests/test_owscatterplotbase.py | 10 +-- Orange/widgets/visualize/utils/__init__.py | 2 +- Orange/widgets/visualize/utils/owlegend.py | 5 +- Orange/widgets/visualize/utils/widget.py | 14 +-- 6 files changed, 64 insertions(+), 64 deletions(-) diff --git a/Orange/widgets/visualize/owscatterplotgraph.py b/Orange/widgets/visualize/owscatterplotgraph.py index 1e76f199f9f..8d57128ff33 100644 --- a/Orange/widgets/visualize/owscatterplotgraph.py +++ b/Orange/widgets/visualize/owscatterplotgraph.py @@ -22,11 +22,11 @@ ) from pyqtgraph.graphicsItems.TextItem import TextItem +from Orange.widgets.utils import colorpalettes from Orange.util import OrangeDeprecationWarning from Orange.widgets import gui from Orange.widgets.settings import Setting from Orange.widgets.utils import classdensity -from Orange.widgets.utils.colorpalette import ColorPaletteGenerator from Orange.widgets.utils.plot import OWPalette from Orange.widgets.visualize.owscatterplotgraph_obsolete import ( OWScatterPlotGraph as OWScatterPlotGraphObs @@ -47,7 +47,7 @@ class PaletteItemSample(ItemSample): def __init__(self, palette, scale, label_formatter=None): """ :param palette: palette used for showing continuous values - :type palette: ContinuousPaletteGenerator + :type palette: BinnedContinuousPalette :param scale: an instance of DiscretizedScale that defines the conversion of values into bins :type scale: DiscretizedScale @@ -73,12 +73,11 @@ def boundingRect(self): def paint(self, p, *args): p.setRenderHint(p.Antialiasing) p.translate(5, 5) - scale = self.scale font = p.font() font.setPixelSize(11) p.setFont(font) - for i, label in enumerate(self.labels): - color = QColor(*self.palette.getRGB((i + 0.5) / scale.bins)) + colors = self.palette.qcolors + for i, color, label in zip(itertools.count(), colors, self.labels): p.setPen(Qt.NoPen) p.setBrush(QBrush(color)) p.drawRect(0, i * 15, 15, 15) @@ -221,6 +220,9 @@ def __init__(self, min_v, max_v): self.decimals = max(decimals, 0) self.width = resolution + def get_bins(self): + return self.offset + self.width * np.arange(self.bins + 1) + class InteractiveViewBox(ViewBox): def __init__(self, graph, enable_menu=False): @@ -869,13 +871,13 @@ def get_colors(self): Returns: (tuple): a list of pens and list of brushes """ - self.palette = self.master.get_palette() c_data = self.master.get_color_data() c_data = self._filter_visible(c_data) subset = self.master.get_subset_mask() subset = self._filter_visible(subset) self.subset_is_shown = subset is not None if c_data is None: # same color + self.palette = None return self._get_same_colors(subset) elif self.master.is_continuous_color(): return self._get_continuous_colors(c_data, subset) @@ -915,23 +917,25 @@ def _get_continuous_colors(self, c_data, subset): except the former is darker. If the data has a subset, the brush is transparent for points that are not in the subset. """ + palette = self.master.get_palette() + if np.isnan(c_data).all(): - self.scale = None - else: - self.scale = DiscretizedScale(np.nanmin(c_data), np.nanmax(c_data)) - c_data -= self.scale.offset - c_data /= self.scale.width - c_data = np.floor(c_data) + 0.5 - c_data /= self.scale.bins - c_data = np.clip(c_data, 0, 1) - pen = self.palette.getRGB(c_data) + self.palette = palette + return self._get_continuous_nan_colors(len(c_data)) + + self.scale = DiscretizedScale(np.nanmin(c_data), np.nanmax(c_data)) + bins = self.scale.get_bins() + self.palette = \ + colorpalettes.BinnedContinuousPalette.from_palette(palette, bins) + colors = self.palette.values_to_colors(c_data) brush = np.hstack( - [pen, np.full((len(pen), 1), self.alpha_value, dtype=int)]) - pen *= 100 - pen //= self.DarkerValue + (colors, + np.full((len(c_data), 1), self.alpha_value, dtype=np.ubyte))) + pen = (colors.astype(dtype=float) * 100 / self.DarkerValue + ).astype(np.ubyte) - # Reuse pens and brushes with the same colors because PyQtGraph then builds - # smaller pixmap atlas, which makes the drawing faster + # Reuse pens and brushes with the same colors because PyQtGraph then + # builds smaller pixmap atlas, which makes the drawing faster def reuse(cache, fn, *args): if args not in cache: @@ -952,10 +956,19 @@ def create_brush(col): brush[subset, 3] = 255 cached_brushes = {} - brush = np.array([reuse(cached_brushes, create_brush, *col) for col in brush.tolist()]) + brush = np.array([reuse(cached_brushes, create_brush, *col) + for col in brush.tolist()]) return pen, brush + def _get_continuous_nan_colors(self, n): + nan_color = QColor(*self.palette.nan_color) + nan_pen = _make_pen(nan_color.darker(1.2), 1.5) + pen = np.full(n, nan_pen) + nan_brush = QBrush(nan_color) + brush = np.full(n, nan_brush) + return pen, brush + def _get_discrete_colors(self, c_data, subset): """ Return the pens and colors whose color represent an index into @@ -963,27 +976,23 @@ def _get_discrete_colors(self, c_data, subset): except the former is darker. If the data has a subset, the brush is transparent for points that are not in the subset. """ - n_colors = self.palette.number_of_colors + self.palette = self.master.get_palette() c_data = c_data.copy() - c_data[np.isnan(c_data)] = n_colors + c_data[np.isnan(c_data)] = len(self.palette) c_data = c_data.astype(int) - colors = np.r_[self.palette.getRGB(np.arange(n_colors)), - [[128, 128, 128]]] + colors = self.palette.qcolors_w_nan pens = np.array( - [_make_pen(QColor(*col).darker(self.DarkerValue), 1.5) - for col in colors]) + [_make_pen(col.darker(self.DarkerValue), 1.5) for col in colors]) pen = pens[c_data] - alpha = self.alpha_value if subset is None else 255 - brushes = np.array([ - [QBrush(QColor(0, 0, 0, 0)), - QBrush(QColor(col[0], col[1], col[2], alpha))] - for col in colors]) + if subset is None and self.alpha_value < 255: + for col in colors: + col.setAlpha(self.alpha_value) + brushes = np.array([QBrush(col) for col in colors]) brush = brushes[c_data] if subset is not None: - brush = np.where(subset, brush[:, 1], brush[:, 0]) - else: - brush = brush[:, 1] + black = np.full(len(brush), QBrush(QColor(0, 0, 0, 0))) + brush = np.where(subset, brush, black) return pen, brush def update_colors(self): @@ -1067,7 +1076,8 @@ def get_colors_sel(self): _make_pen(QColor(255, 190, 0, 255), SELECTION_WIDTH + 1), nopen) else: - palette = ColorPaletteGenerator(number_of_colors=sels + 1) + palette = colorpalettes.LimitedDiscretePalette( + number_of_colors=sels + 1) pen = np.choose( self._filter_visible(self.selection), [nopen] + [_make_pen(palette[i], SELECTION_WIDTH + 1) @@ -1282,8 +1292,9 @@ def _update_colored_legend(self, legend, labels, symbols): return if isinstance(symbols, str): symbols = itertools.repeat(symbols, times=len(labels)) - for i, (label, symbol) in enumerate(zip(labels, symbols)): - color = QColor(*self.palette.getRGB(i)) + colors = self.palette.values_to_colors(np.arange(len(labels))) + for color, label, symbol in zip(colors, labels, symbols): + color = QColor(*color) pen = _make_pen(color.darker(self.DarkerValue), 1.5) color.setAlpha(255 if self.subset_is_shown else self.alpha_value) brush = QBrush(color) diff --git a/Orange/widgets/visualize/tests/test_owscatterplot.py b/Orange/widgets/visualize/tests/test_owscatterplot.py index 5cecac77da5..c494e71786e 100644 --- a/Orange/widgets/visualize/tests/test_owscatterplot.py +++ b/Orange/widgets/visualize/tests/test_owscatterplot.py @@ -13,7 +13,7 @@ WidgetTest, WidgetOutputsTestMixin, datasets, ProjectionWidgetTestMixin ) from Orange.widgets.tests.utils import simulate -from Orange.widgets.utils.colorpalette import DefaultRGBColors +from Orange.widgets.utils.colorpalettes import DefaultRGBColors from Orange.widgets.visualize.owscatterplot import ( OWScatterPlot, ScatterPlotVizRank, OWScatterPlotGraph) from Orange.widgets.visualize.utils.widget import MAX_COLORS @@ -835,13 +835,13 @@ def test_regression_line_coeffs(self): self.assertEqual(line1.pos().x(), 0) self.assertEqual(line1.pos().y(), 0) self.assertEqual(line1.angle, 45) - self.assertEqual(line1.pen.color().getRgb()[:3], graph.palette[0]) + self.assertEqual(line1.pen.color().getRgb(), graph.palette[0].getRgb()) line2 = graph.reg_line_items[2] self.assertEqual(line2.pos().x(), 0) self.assertEqual(line2.pos().y(), 1) self.assertAlmostEqual(line2.angle, np.degrees(np.arctan2(2, 1))) - self.assertEqual(line2.pen.color().getRgb()[:3], graph.palette[1]) + self.assertEqual(line2.pen.color().getRgb(), graph.palette[1].getRgb()) graph.orthonormal_regression = True graph.update_regression_line() @@ -850,13 +850,13 @@ def test_regression_line_coeffs(self): self.assertEqual(line1.pos().x(), 0) self.assertAlmostEqual(line1.pos().y(), -0.6180339887498949) self.assertEqual(line1.angle, 58.28252558853899) - self.assertEqual(line1.pen.color().getRgb()[:3], graph.palette[0]) + self.assertEqual(line1.pen.color().getRgb(), graph.palette[0].getRgb()) line2 = graph.reg_line_items[2] self.assertEqual(line2.pos().x(), 0) self.assertEqual(line2.pos().y(), 1) self.assertAlmostEqual(line2.angle, np.degrees(np.arctan2(2, 1))) - self.assertEqual(line2.pen.color().getRgb()[:3], graph.palette[1]) + self.assertEqual(line2.pen.color().getRgb(), graph.palette[1].getRgb()) def test_orthonormal_line(self): color = QColor(1, 2, 3) diff --git a/Orange/widgets/visualize/tests/test_owscatterplotbase.py b/Orange/widgets/visualize/tests/test_owscatterplotbase.py index 080f83a71df..8b9391a9b7b 100644 --- a/Orange/widgets/visualize/tests/test_owscatterplotbase.py +++ b/Orange/widgets/visualize/tests/test_owscatterplotbase.py @@ -11,8 +11,7 @@ from Orange.widgets.settings import SettingProvider from Orange.widgets.tests.base import WidgetTest -from Orange.widgets.utils.colorpalette import ColorPaletteGenerator, \ - ContinuousPaletteGenerator, NAN_GREY +from Orange.widgets.utils import colorpalettes from Orange.widgets.visualize.owscatterplotgraph import OWScatterPlotBase, \ ScatterPlotItem, SELECTION_WIDTH from Orange.widgets.widget import OWWidget @@ -41,9 +40,9 @@ class MockWidget(OWWidget): def get_palette(self): if self.is_continuous_color(): - return ContinuousPaletteGenerator(Qt.white, Qt.black, False) + return colorpalettes.DefaultContinuousPalette else: - return ColorPaletteGenerator(12) + return colorpalettes.DefaultDiscretePalette class TestOWScatterPlotBase(WidgetTest): @@ -566,7 +565,7 @@ def test_colors_continuous_nan(self): graph.reset_graph() pens = graph.scatterplot_item.data["pen"] brushes = graph.scatterplot_item.data["brush"] - nan_color = QColor(*NAN_GREY) + nan_color = QColor(*colorpalettes.NAN_COLOR) self.assertEqual(pens[4].color().hue(), nan_color.hue()) self.assertEqual(brushes[4].color().hue(), nan_color.hue()) @@ -1077,6 +1076,7 @@ def test_show_legend(self): for color_labels in (None, ["c", "d"], None): for visible in (True, False, True): graph.show_legend = visible + graph.palette = graph.master.get_palette() graph.update_legends() self.assertIs( shape_legend.call_args[0][0], diff --git a/Orange/widgets/visualize/utils/__init__.py b/Orange/widgets/visualize/utils/__init__.py index 2488392909d..e703527c486 100644 --- a/Orange/widgets/visualize/utils/__init__.py +++ b/Orange/widgets/visualize/utils/__init__.py @@ -676,7 +676,7 @@ def __init__(self, scene, x=0, y=0, width=0, height=0, onclick=None): super().__init__(x, y, width, height, None) self.onclick = onclick - if brush_color: + if brush_color is not None: self.setBrush(QBrush(brush_color)) if pen: self.setPen(pen) diff --git a/Orange/widgets/visualize/utils/owlegend.py b/Orange/widgets/visualize/utils/owlegend.py index a9c8584733c..41d850c2124 100644 --- a/Orange/widgets/visualize/utils/owlegend.py +++ b/Orange/widgets/visualize/utils/owlegend.py @@ -563,7 +563,8 @@ def set_items(self, values): def _convert_to_color(obj): if isinstance(obj, QColor): return obj - elif isinstance(obj, tuple) or isinstance(obj, list): + elif isinstance(obj, tuple) or isinstance(obj, list) \ + or isinstance(obj, np.ndarray): assert len(obj) in (3, 4) return QColor(*obj) else: @@ -601,7 +602,7 @@ def set_domain(self, domain): raise AttributeError('[OWDiscreteLegend] The class var provided ' 'was not discrete.') - self.set_items(zip(class_var.values, class_var.colors.tolist())) + self.set_items(zip(class_var.values, list(class_var.colors))) def set_items(self, values): for class_name, color in values: diff --git a/Orange/widgets/visualize/utils/widget.py b/Orange/widgets/visualize/utils/widget.py index cdab4dc9761..6b4b71b4caa 100644 --- a/Orange/widgets/visualize/utils/widget.py +++ b/Orange/widgets/visualize/utils/widget.py @@ -19,9 +19,6 @@ from Orange.widgets.utils.annotated_data import ( create_annotated_table, ANNOTATED_DATA_SIGNAL_NAME, create_groups_table ) -from Orange.widgets.utils.colorpalette import ( - ColorPaletteGenerator, ContinuousPaletteGenerator, DefaultRGBColors -) from Orange.widgets.utils.plot import OWPlotGUI from Orange.widgets.utils.sql import check_sql_input from Orange.widgets.visualize.owscatterplotgraph import OWScatterPlotBase @@ -224,16 +221,7 @@ def get_palette(self): This method must be overridden if the widget offers coloring that is not based on attribute values. """ - if self.attr_color is None: - return None - colors = self.attr_color.colors - if self.attr_color.is_discrete: - return ColorPaletteGenerator( - number_of_colors=min(len(colors), MAX_COLORS), - rgb_colors=colors if len(colors) <= MAX_COLORS - else DefaultRGBColors) - else: - return ContinuousPaletteGenerator(*colors) + return self.attr_color and self.attr_color.palette def can_draw_density(self): """ From 8f78c7b5f033951a479335da8904a1c0f4f35f33 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 20:53:25 +0100 Subject: [PATCH 07/22] OWFeatureStatistics: Port to new palettes --- Orange/widgets/data/utils/histogram.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Orange/widgets/data/utils/histogram.py b/Orange/widgets/data/utils/histogram.py index 7f08e976946..3a921068410 100644 --- a/Orange/widgets/data/utils/histogram.py +++ b/Orange/widgets/data/utils/histogram.py @@ -12,7 +12,6 @@ import Orange.statistics.util as ut from Orange.data.util import one_hot -from Orange.widgets.utils.colorpalette import ContinuousPaletteGenerator class BarItem(QGraphicsWidget): @@ -351,11 +350,12 @@ def _draw_histogram(self): def _get_colors(self): """Compute colors for different kinds of histograms.""" - if self.target_var and self.target_var.is_discrete: - colors = [[QColor(*color) for color in self.target_var.colors]] * self.n_bins + target = self.target_var + if target and target.is_discrete: + colors = [list(target.palette)[:len(target.values)]] * self.n_bins elif self.target_var and self.target_var.is_continuous: - palette = ContinuousPaletteGenerator(*self.target_var.colors) + palette = self.target_var.palette bins = np.arange(self.n_bins)[:, np.newaxis] edges = self.edges if self.attribute.is_discrete else self.edges[1:-1] @@ -369,7 +369,7 @@ def _get_colors(self): mean = ut.nanmean(biny) / ut.nanmax(self.y) else: mean = 0 # bin is empty, color does not matter - colors.append([palette[mean]]) + colors.append([palette.value_to_qcolor(mean)]) else: colors = [[QColor('#ccc')]] * self.n_bins From f9091f9d3ca34fb415bfeca5a37778c14f58924a Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 20:55:48 +0100 Subject: [PATCH 08/22] OWCalibrationPlot, OWLiftCurve, OWRocAnalysis: Port to new palettes --- Orange/widgets/evaluate/owcalibrationplot.py | 9 +++------ Orange/widgets/evaluate/owliftcurve.py | 9 +++------ Orange/widgets/evaluate/owrocanalysis.py | 9 +++------ 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/Orange/widgets/evaluate/owcalibrationplot.py b/Orange/widgets/evaluate/owcalibrationplot.py index de13a8cf029..8ae09dd7064 100644 --- a/Orange/widgets/evaluate/owcalibrationplot.py +++ b/Orange/widgets/evaluate/owcalibrationplot.py @@ -15,7 +15,7 @@ from Orange.widgets.evaluate.contexthandlers import \ EvaluationResultsContextHandler from Orange.widgets.evaluate.utils import results_for_preview -from Orange.widgets.utils import colorpalette, colorbrewer +from Orange.widgets.utils import colorpalettes from Orange.widgets.utils.widgetpreview import WidgetPreview from Orange.widgets.widget import Input, Output, Msg from Orange.widgets import report @@ -254,14 +254,11 @@ def _initialize(self, results): names = ["#{}".format(i + 1) for i in range(n)] self.classifier_names = names - scheme = colorbrewer.colorSchemes["qualitative"]["Dark2"] - if n > len(scheme): - scheme = colorpalette.DefaultRGBColors - self.colors = colorpalette.ColorPaletteGenerator(n, scheme) + self.colors = colorpalettes.get_default_curve_colors(n) for i in range(n): item = self.classifiers_list_box.item(i) - item.setIcon(colorpalette.ColorPixmap(self.colors[i])) + item.setIcon(colorpalettes.ColorIcon(self.colors[i])) self.selected_classifiers = list(range(n)) self.target_cb.addItems(results.domain.class_var.values) diff --git a/Orange/widgets/evaluate/owliftcurve.py b/Orange/widgets/evaluate/owliftcurve.py index ed443d1ae63..b3f23ef9255 100644 --- a/Orange/widgets/evaluate/owliftcurve.py +++ b/Orange/widgets/evaluate/owliftcurve.py @@ -19,7 +19,7 @@ from Orange.widgets.evaluate.contexthandlers import \ EvaluationResultsContextHandler from Orange.widgets.evaluate.utils import check_results_adequacy -from Orange.widgets.utils import colorpalette, colorbrewer +from Orange.widgets.utils import colorpalettes from Orange.widgets.evaluate.owrocanalysis import convex_hull from Orange.widgets.utils.widgetpreview import WidgetPreview from Orange.widgets.widget import Input @@ -162,16 +162,13 @@ def _initialize(self, results): if names is None: names = ["#{}".format(i + 1) for i in range(N)] - scheme = colorbrewer.colorSchemes["qualitative"]["Dark2"] - if N > len(scheme): - scheme = colorpalette.DefaultRGBColors - self.colors = colorpalette.ColorPaletteGenerator(N, scheme) + self.colors = colorpalettes.get_default_curve_colors(N) self.classifier_names = names self.selected_classifiers = list(range(N)) for i in range(N): item = self.classifiers_list_box.item(i) - item.setIcon(colorpalette.ColorPixmap(self.colors[i])) + item.setIcon(colorpalettes.ColorIcon(self.colors[i])) self.target_cb.addItems(results.data.domain.class_var.values) diff --git a/Orange/widgets/evaluate/owrocanalysis.py b/Orange/widgets/evaluate/owrocanalysis.py index 6dbbe748ee1..6c4a1b3ecda 100644 --- a/Orange/widgets/evaluate/owrocanalysis.py +++ b/Orange/widgets/evaluate/owrocanalysis.py @@ -21,7 +21,7 @@ EvaluationResultsContextHandler from Orange.widgets.evaluate.utils import \ check_results_adequacy, results_for_preview -from Orange.widgets.utils import colorpalette, colorbrewer +from Orange.widgets.utils import colorpalettes from Orange.widgets.utils.widgetpreview import WidgetPreview from Orange.widgets.widget import Input from Orange.widgets import report @@ -462,16 +462,13 @@ def _initialize(self, results): names = ["#{}".format(i + 1) for i in range(len(results.predicted))] - scheme = colorbrewer.colorSchemes["qualitative"]["Dark2"] - if len(names) > len(scheme): - scheme = colorpalette.DefaultRGBColors - self.colors = colorpalette.ColorPaletteGenerator(len(names), scheme) + self.colors = colorpalettes.get_default_curve_colors(len(names)) self.classifier_names = names self.selected_classifiers = list(range(len(names))) for i in range(len(names)): listitem = self.classifiers_list_box.item(i) - listitem.setIcon(colorpalette.ColorPixmap(self.colors[i])) + listitem.setIcon(colorpalettes.ColorIcon(self.colors[i])) class_var = results.data.domain.class_var self.target_cb.addItems(class_var.values) From 701801999dc43c488ad35e875c5ab6aa5a3550e3 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 20:59:55 +0100 Subject: [PATCH 09/22] OWDistanceMap: Port to new palettes --- Orange/widgets/unsupervised/owdistancemap.py | 80 +++----------------- 1 file changed, 11 insertions(+), 69 deletions(-) diff --git a/Orange/widgets/unsupervised/owdistancemap.py b/Orange/widgets/unsupervised/owdistancemap.py index c5e4390d4cc..0ffe5276c63 100644 --- a/Orange/widgets/unsupervised/owdistancemap.py +++ b/Orange/widgets/unsupervised/owdistancemap.py @@ -8,11 +8,8 @@ QFormLayout, QGraphicsRectItem, QGraphicsGridLayout, QApplication, QSizePolicy ) -from AnyQt.QtGui import ( - QFontMetrics, QPen, QIcon, QPixmap, QLinearGradient, QPainter, QColor, - QBrush, QTransform, QFont -) -from AnyQt.QtCore import Qt, QRect, QRectF, QSize, QPointF +from AnyQt.QtGui import QFontMetrics, QPen, QTransform, QFont +from AnyQt.QtCore import Qt, QRect, QRectF, QPointF from AnyQt.QtCore import pyqtSignal as Signal import pyqtgraph as pg @@ -23,7 +20,7 @@ from Orange.data.domain import filter_visible from Orange.widgets import widget, gui, settings -from Orange.widgets.utils import itemmodels, colorbrewer +from Orange.widgets.utils import itemmodels, colorpalettes from Orange.widgets.utils.annotated_data import (create_annotated_table, ANNOTATED_DATA_SIGNAL_NAME) from Orange.widgets.utils.graphicstextlist import TextListWidget @@ -248,11 +245,6 @@ def hoverMoveEvent(self, event): self.setToolTip("") -_color_palettes = sorted(colorbrewer.colorSchemes["sequential"].items()) + \ - [("Blue-Yellow", {2: [(0, 0, 255), (255, 255, 0)]})] -_default_colormap_index = len(_color_palettes) - 1 - - class OWDistanceMap(widget.OWWidget): name = "Distance Map" description = "Visualize a distance matrix." @@ -275,7 +267,7 @@ class Outputs: sorting = settings.Setting(NoOrdering) - colormap = settings.Setting(_default_colormap_index) + palette_name = settings.Setting(colorpalettes.DefaultContinuousPaletteName) color_gamma = settings.Setting(0.0) color_low = settings.Setting(0.0) color_high = settings.Setting(1.0) @@ -308,13 +300,9 @@ def __init__(self): callback=self._invalidate_ordering) box = gui.vBox(self.controlArea, "Colors") - self.colormap_cb = gui.comboBox( - box, self, "colormap", callback=self._update_color) - self.colormap_cb.setIconSize(QSize(64, 16)) - self.palettes = list(_color_palettes) - - init_color_combo(self.colormap_cb, self.palettes, QSize(64, 16)) - self.colormap_cb.setCurrentIndex(self.colormap) + self.color_box = gui.palette_combo_box(self.palette_name) + self.color_box.currentIndexChanged.connect(self._update_color) + box.layout().addWidget(self.color_box) form = QFormLayout( formAlignment=Qt.AlignLeft, @@ -621,19 +609,11 @@ def _set_labels(self, labels): self.bottom_labels.setMaximumHeight(constraint) def _update_color(self): + palette = self.color_box.currentData() + self.palette_name = palette.name if self.matrix_item: - name, colors = self.palettes[self.colormap] - n, colors = max(colors.items()) - colors = numpy.array(colors, dtype=numpy.ubyte) - low, high = self.color_low * 255, self.color_high * 255 - points = numpy.linspace(low, high, n) - space = numpy.linspace(0, 255, 255) - - r = numpy.interp(space, points, colors[:, 0], left=255, right=0) - g = numpy.interp(space, points, colors[:, 1], left=255, right=0) - b = numpy.interp(space, points, colors[:, 2], left=255, right=0) - colortable = numpy.c_[r, g, b] - self.matrix_item.setLookupTable(colortable) + colors = palette.lookup_table(self.color_low, self.color_high) + self.matrix_item.setLookupTable(colors) def _invalidate_selection(self): ranges = self.matrix_item.selections() @@ -721,44 +701,6 @@ def _point_size(self, height): font.setPointSize(height - fix) return height - fix -########################## -# Color palette management -########################## - - -def palette_gradient(colors, discrete=False): - n = len(colors) - stops = numpy.linspace(0.0, 1.0, n, endpoint=True) - gradstops = [(float(stop), color) for stop, color in zip(stops, colors)] - grad = QLinearGradient(QPointF(0, 0), QPointF(1, 0)) - grad.setStops(gradstops) - return grad - - -def palette_pixmap(colors, size): - img = QPixmap(size) - img.fill(Qt.transparent) - - painter = QPainter(img) - grad = palette_gradient(colors) - grad.setCoordinateMode(QLinearGradient.ObjectBoundingMode) - painter.setPen(Qt.NoPen) - painter.setBrush(QBrush(grad)) - painter.drawRect(0, 0, size.width(), size.height()) - painter.end() - return img - - -def init_color_combo(cb, palettes, iconsize): - cb.clear() - iconsize = cb.iconSize() - - for name, palette in palettes: - n, colors = max(palette.items()) - colors = [QColor(*c) for c in colors] - cb.addItem(QIcon(palette_pixmap(colors, iconsize)), name, - palette) - # run widget with `python -m Orange.widgets.unsupervised.owdistancemap` if __name__ == "__main__": # pragma: no cover From e139774089d7a49df522f9bbb9e942ce3b3c325e Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 21:00:49 +0100 Subject: [PATCH 10/22] OWDistanceMatric: Port to new palettes --- .../widgets/unsupervised/owdistancematrix.py | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/Orange/widgets/unsupervised/owdistancematrix.py b/Orange/widgets/unsupervised/owdistancematrix.py index cda9e31788c..cf8679e4685 100644 --- a/Orange/widgets/unsupervised/owdistancematrix.py +++ b/Orange/widgets/unsupervised/owdistancematrix.py @@ -1,4 +1,3 @@ -from math import isnan import itertools import numpy as np @@ -8,13 +7,12 @@ from AnyQt.QtCore import Qt, QAbstractTableModel, QModelIndex, \ QItemSelectionModel, QItemSelection, QSize -from Orange.data import Table, Variable, ContinuousVariable, DiscreteVariable +from Orange.data import Table, Variable from Orange.misc import DistMatrix from Orange.widgets import widget, gui from Orange.widgets.data.owtable import ranges from Orange.widgets.gui import OrangeUserRole from Orange.widgets.settings import Setting, ContextSetting, ContextHandler -from Orange.widgets.utils.colorpalette import ContinuousPaletteGenerator from Orange.widgets.utils.itemmodels import VariableListModel from Orange.widgets.utils.widgetpreview import WidgetPreview from Orange.widgets.widget import Input, Output @@ -48,15 +46,10 @@ def set_labels(self, labels, variable=None, values=None): self.labels = labels self.variable = variable self.values = values - if isinstance(variable, ContinuousVariable): - palette = ContinuousPaletteGenerator(*variable.colors) - off, m = values.min(), values.max() - fact = off != m and 1 / (m - off) - self.label_colors = [palette[x] if not isnan(x) else Qt.lightGray - for x in (values - off) * fact] + if self.values is not None: + self.label_colors = variable.palette.values_to_qcolors(values) else: self.label_colors = None - self.endResetModel() def dimension(self, parent=None): @@ -67,14 +60,9 @@ def dimension(self, parent=None): columnCount = rowCount = dimension def color_for_label(self, ind, light=100): - color = Qt.lightGray - if isinstance(self.variable, ContinuousVariable): - color = self.label_colors[ind].lighter(light) - elif isinstance(self.variable, DiscreteVariable): - value = self.values[ind] - if not isnan(value): - color = QColor(*self.variable.colors[int(value)]) - return QBrush(color) + if self.label_colors is None: + return Qt.lightGray + return QBrush(self.label_colors[ind].lighter(light)) def color_for_cell(self, row, col): return QBrush(QColor.fromHsv(120, self.colors[row, col], 255)) @@ -103,7 +91,7 @@ def headerData(self, ind, orientation, role): return self.labels[ind] # On some systems, Qt doesn't respect the following role in the header if role == Qt.BackgroundRole: - return self.color_for_label(ind, 200) + return self.color_for_label(ind, 150) class TableBorderItem(QItemDelegate): @@ -380,5 +368,5 @@ def _rgb(brush): if __name__ == "__main__": # pragma: no cover import Orange.distance data = Orange.data.Table("iris") - dist = Orange.distance.Euclidean(data[:50]) + dist = Orange.distance.Euclidean(data[::5]) WidgetPreview(OWDistanceMatrix).run(dist) From 287278a7c08311a55b54caa0ce7c4f01a5252b88 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 21:01:34 +0100 Subject: [PATCH 11/22] OWHeatMap: Port to new palettes --- Orange/widgets/visualize/owheatmap.py | 163 +----------------- .../widgets/visualize/tests/test_owheatmap.py | 7 +- 2 files changed, 12 insertions(+), 158 deletions(-) diff --git a/Orange/widgets/visualize/owheatmap.py b/Orange/widgets/visualize/owheatmap.py index ef52521a574..853624011c5 100644 --- a/Orange/widgets/visualize/owheatmap.py +++ b/Orange/widgets/visualize/owheatmap.py @@ -17,8 +17,7 @@ QFormLayout, QApplication, QComboBox, QWIDGETSIZE_MAX ) from AnyQt.QtGui import ( - QFontMetrics, QPen, QPixmap, QColor, QLinearGradient, QPainter, - QTransform, QIcon, QBrush, + QFontMetrics, QPen, QPixmap, QTransform, QStandardItemModel, QStandardItem, ) from AnyQt.QtCore import ( @@ -34,10 +33,9 @@ import Orange.distance from Orange.clustering import hierarchical, kmeans +from Orange.widgets.utils import colorpalettes from Orange.widgets.utils.itemmodels import DomainModel from Orange.widgets.utils.stickygraphicsview import StickyGraphicsView -from Orange.widgets.utils import colorbrewer - from Orange.widgets.utils.graphicstextlist import scaled, TextListWidget from Orange.widgets.utils.annotated_data import (create_annotated_table, ANNOTATED_DATA_SIGNAL_NAME) @@ -58,72 +56,6 @@ def leaf_indices(tree): return [leaf.value.index for leaf in hierarchical.leaves(tree)] -def palette_gradient(colors): - n = len(colors) - stops = np.linspace(0.0, 1.0, n, endpoint=True) - gradstops = [(float(stop), color) for stop, color in zip(stops, colors)] - grad = QLinearGradient(QPointF(0, 0), QPointF(1, 0)) - grad.setStops(gradstops) - return grad - - -def palette_pixmap(colors, size): - img = QPixmap(size) - img.fill(Qt.transparent) - - grad = palette_gradient(colors) - grad.setCoordinateMode(QLinearGradient.ObjectBoundingMode) - - painter = QPainter(img) - painter.setPen(Qt.NoPen) - painter.setBrush(QBrush(grad)) - painter.drawRect(0, 0, size.width(), size.height()) - painter.end() - return img - - -def color_palette_model(palettes, iconsize=QSize(64, 16)): - model = QStandardItemModel() - for name, palette in palettes: - _, colors = max(palette.items()) - colors = [QColor(*c) for c in colors] - item = QStandardItem(name) - item.setIcon(QIcon(palette_pixmap(colors, iconsize))) - item.setData(palette, Qt.UserRole) - model.appendRow([item]) - return model - - -def color_palette_table(colors, - underflow=None, overflow=None, - gamma=None): - colors = np.array(colors, dtype=np.ubyte) - points = np.linspace(0, 255, len(colors)) - space = np.linspace(0, 255, 255) - - if underflow is None: - underflow = [None, None, None] - - if overflow is None: - overflow = [None, None, None] - - if gamma is None or gamma < 0.0001: - r = np.interp(space, points, colors[:, 0], - left=underflow[0], right=overflow[0]) - g = np.interp(space, points, colors[:, 1], - left=underflow[1], right=overflow[1]) - b = np.interp(space, points, colors[:, 2], - left=underflow[2], right=overflow[2]) - else: - r = interp_exp(space, points, colors[:, 0], gamma=gamma, - left=underflow[0], right=overflow[0]) - g = interp_exp(space, points, colors[:, 1], gamma=gamma, - left=underflow[0], right=overflow[0]) - b = interp_exp(space, points, colors[:, 2], gamma=gamma, - left=underflow[0], right=overflow[0]) - return np.c_[r, g, b] - - def levels_with_thresholds(low, high, threshold_low, threshold_high, center_palette): lt = low + (high - low) * threshold_low ht = low + (high - low) * threshold_high @@ -132,55 +64,6 @@ def levels_with_thresholds(low, high, threshold_low, threshold_high, center_pale lt = -max(abs(lt), abs(ht)) return lt, ht - -def interp_exp(x, xp, fp, gamma=0.0, left=None, right=None,): - assert np.all(np.diff(xp) > 0) - x = np.asanyarray(x) - xp = np.asanyarray(xp) - fp = np.asanyarray(fp) - - if xp.shape != fp.shape: - raise ValueError("xp and fp must have the same shape") - - ind = np.searchsorted(xp, x, side="right") - - f = np.zeros(len(x)) - - under = ind == 0 - over = ind == len(xp) - between = ~under & ~over - - f[under] = left if left is not None else fp[0] - f[over] = right if right is not None else fp[-1] - - if right is not None: - # Fix points exactly on the right boundary. - f[x == xp[-1]] = fp[-1] - - ind = ind[between] - - def exp_ramp(x, gamma): - assert gamma >= 0 - if gamma < np.finfo(float).eps: - return x - else: - return (np.exp(gamma * x) - 1) / (np.exp(gamma) - 1.) - - def gamma_fun(x, gamma): - out = np.array(x) - out[x < 0.5] = exp_ramp(x[x < 0.5] * 2, gamma) / 2 - out[x > 0.5] = 1 - exp_ramp((1 - x[x > 0.5]) * 2, gamma) / 2 - return out - - y0, y1 = fp[ind - 1], fp[ind] - x0, x1 = xp[ind - 1], xp[ind] - - m = (x[between] - x0) / (x1 - x0) - m = gamma_fun(m, gamma) - f[between] = (1 - m) * y0 + m * y1 - - return f - # TODO: # * Richer Tool Tips # * Color map edit/manage @@ -261,14 +144,6 @@ class Parts(NamedTuple): levels = property(lambda self: self.span) -_color_palettes = (sorted(colorbrewer.colorSchemes["sequential"].items()) + - [("Blue-Yellow", {2: [(0, 0, 255), (255, 255, 0)]}), - ("Green-Black-Red", {3: [(0, 255, 0), (0, 0, 0), - (255, 0, 0)]})]) -_default_palette_index = \ - [name for name, _, in _color_palettes].index("Blue-Yellow") - - def cbselect(cb: QComboBox, value, role: Qt.ItemDataRole = Qt.EditRole) -> None: """ Find and select the `value` in the `cb` QComboBox. @@ -365,7 +240,6 @@ class Outputs: # Disable cluster leaf ordering for inputs bigger than this MaxOrderedClustering = 1000 - gamma = settings.Setting(0) threshold_low = settings.Setting(0.0) threshold_high = settings.Setting(1.0) center_palette = settings.Setting(False) @@ -381,15 +255,12 @@ class Outputs: annotation_var = settings.ContextSetting(None) # Discrete variable used to split that data/heatmaps (vertically) split_by_var = settings.ContextSetting(None) - # Stored color palette settings - color_settings = settings.Setting(None) - user_palettes = settings.Setting([]) # Selected row/column clustering method (name) col_clustering_method: str = settings.Setting(Clustering.None_.name) row_clustering_method: str = settings.Setting(Clustering.None_.name) - palette_index = settings.Setting(_default_palette_index) + palette_name = settings.Setting(colorpalettes.DefaultContinuousPaletteName) column_label_pos = settings.Setting(PositionTop) selected_rows = settings.Setting(None, schema_only=True) @@ -460,18 +331,10 @@ def _(): # GUI definition colorbox = gui.vBox(self.controlArea, "Color") - self.color_cb = gui.comboBox(colorbox, self, "palette_index") - self.color_cb.setIconSize(QSize(64, 16)) - palettes = _color_palettes + self.user_palettes + self.color_cb = gui.palette_combo_box(self.palette_name) + self.color_cb.currentIndexChanged.connect(self.update_color_schema) + colorbox.layout().addWidget(self.color_cb) - self.palette_index = min(self.palette_index, len(palettes) - 1) - - model = color_palette_model(palettes, self.color_cb.iconSize()) - model.setParent(self) - self.color_cb.setModel(model) - self.color_cb.activated.connect(self.update_color_schema) - - self.color_cb.setCurrentIndex(self.palette_index) # TODO: Add 'Manage/Add/Remove' action. form = QFormLayout( @@ -488,15 +351,9 @@ def _(): colorbox, self, "threshold_high", minValue=0.0, maxValue=1.0, step=0.05, ticks=True, intOnly=False, createLabel=False, callback=self.update_highslider) - gammaslider = gui.hSlider( - colorbox, self, "gamma", minValue=0.0, maxValue=20.0, - step=1.0, ticks=True, intOnly=False, - createLabel=False, callback=self.update_color_schema - ) form.addRow("Low:", lowslider) form.addRow("High:", highslider) - form.addRow("Gamma:", gammaslider) colorbox.layout().addLayout(form) @@ -653,12 +510,7 @@ def sizeHint(self): return QSize(800, 400) def color_palette(self): - data = self.color_cb.itemData(self.palette_index, role=Qt.UserRole) - if data is None: - return [] - else: - _, colors = max(data.items()) - return color_palette_table(colors, gamma=self.gamma) + return self.color_cb.currentData().lookup_table() def clear(self): self.data = None @@ -1441,6 +1293,7 @@ def update_highslider(self): self.update_color_schema() def update_color_schema(self): + self.palette_name = self.color_cb.currentData().name palette = self.color_palette() for heatmap in self.heatmap_widgets(): heatmap.set_thresholds(self.threshold_low, self.threshold_high) diff --git a/Orange/widgets/visualize/tests/test_owheatmap.py b/Orange/widgets/visualize/tests/test_owheatmap.py index e1902f55dc5..7508a25df55 100644 --- a/Orange/widgets/visualize/tests/test_owheatmap.py +++ b/Orange/widgets/visualize/tests/test_owheatmap.py @@ -9,6 +9,7 @@ from Orange.data import Table, Domain, ContinuousVariable, DiscreteVariable from Orange.preprocess import Continuize +from Orange.widgets.utils import colorpalettes from Orange.widgets.visualize.owheatmap import OWHeatMap, Clustering from Orange.widgets.tests.base import WidgetTest, WidgetOutputsTestMixin, datasets @@ -221,9 +222,9 @@ def test_center_palette(self): table = Table.from_numpy(Domain([ContinuousVariable("y")]), data) self.send_signal(self.widget.Inputs.data, table) - cb_model = self.widget.color_cb.model() - ind = cb_model.indexFromItem(cb_model.findItems("Green-Black-Red")[0]).row() - self.widget.palette_index = ind + self.widget.color_palette = lambda: \ + colorpalettes.ContinuousPalette.from_colors( + (0, 255, 0), (255, 0, 0), (0, 0, 0)).lookup_table() desired_uncentered = [[0, 255, 0], [255, 0, 0]] From 19a51c61303535aad30c8d675384c524f68640b2 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 21:02:39 +0100 Subject: [PATCH 12/22] OWSom: Port to new palettes --- Orange/widgets/unsupervised/owsom.py | 18 +++++++++--------- .../widgets/unsupervised/tests/test_owsom.py | 5 +---- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Orange/widgets/unsupervised/owsom.py b/Orange/widgets/unsupervised/owsom.py index cbc57823d7e..ab40e474886 100644 --- a/Orange/widgets/unsupervised/owsom.py +++ b/Orange/widgets/unsupervised/owsom.py @@ -24,8 +24,8 @@ from Orange.widgets.utils.widgetpreview import WidgetPreview from Orange.widgets.utils.annotated_data import \ create_annotated_table, create_groups_table, ANNOTATED_DATA_SIGNAL_NAME -from Orange.widgets.utils.colorpalette import \ - ContinuousPaletteGenerator, ColorPaletteGenerator +from Orange.widgets.utils.colorpalettes import \ + BinnedContinuousPalette, LimitedDiscretePalette from Orange.widgets.visualize.utils import CanvasRectangle, CanvasText from Orange.widgets.visualize.utils.plotutils import wrap_legend_items @@ -481,7 +481,7 @@ def redraw_selection(self, marks=None): mark_brush = QBrush(QColor(224, 255, 255)) sels = self.selection is not None and np.max(self.selection) - palette = ColorPaletteGenerator(number_of_colors=sels + 1) + palette = LimitedDiscretePalette(number_of_colors=sels + 1) brushes = [QBrush(Qt.NoBrush)] + \ [QBrush(palette[i].lighter(165)) for i in range(sels)] @@ -587,7 +587,7 @@ def _get_color_column(self): int_col[np.isnan(color_column)] = len(self.colors) else: int_col = np.zeros(len(color_column), dtype=int) - # The following line is not necessary because rows with missing + # The following line is unnecessary because rows with missing # numeric data are excluded. Uncomment it if you change SOM to # tolerate missing values. # int_col[np.isnan(color_column)] = len(self.colors) @@ -618,7 +618,7 @@ def _tooltip(self, colors, distribution): def _draw_pie_charts(self, sizes): fx, fy = self._grid_factors color_column = self._get_color_column() - colors = self.colors + [Qt.gray] + colors = self.colors.qcolors_w_nan for y in range(self.size_y): for x in range(self.size_x - self.hexagonal * (y % 2)): r = sizes[x, y] @@ -836,7 +836,7 @@ def set_color_bins(self): self.thresholds = self.bin_labels = self.colors = None elif self.attr_color.is_discrete: self.thresholds = self.bin_labels = None - self.colors = [QColor(*color) for color in self.attr_color.colors] + self.colors = self.attr_color.palette else: col = self.data.get_column_view(self.attr_color)[0].astype(float) if self.attr_color.is_time: @@ -845,9 +845,9 @@ def set_color_bins(self): binning = decimal_binnings(col, min_bins=4)[-1] self.thresholds = binning.thresholds[1:-1] self.bin_labels = (binning.labels[1:-1], binning.short_labels[1:-1]) - palette = ContinuousPaletteGenerator(*self.attr_color.colors) - nbins = len(self.thresholds) + 1 - self.colors = [palette[i / (nbins - 1)] for i in range(nbins)] + palette = BinnedContinuousPalette.from_palette( + self.attr_color.palette, binning.thresholds) + self.colors = palette def create_legend(self): if self.legend is not None: diff --git a/Orange/widgets/unsupervised/tests/test_owsom.py b/Orange/widgets/unsupervised/tests/test_owsom.py index 099484a8d92..c3666d463a5 100644 --- a/Orange/widgets/unsupervised/tests/test_owsom.py +++ b/Orange/widgets/unsupervised/tests/test_owsom.py @@ -202,9 +202,7 @@ def test_attr_color_change(self): combo.setCurrentIndex(ind_gen) combo.activated[int].emit(ind_gen) self.assertTrue(widget.controls.pie_charts.isEnabled()) - self.assertEqual( - [(c.red(), c.green(), c.blue()) for c in widget.colors], - [tuple(c) for c in gender.colors]) + np.testing.assert_equal(widget.colors.palette, gender.colors) self.assertIsNone(widget.thresholds) widget._redraw.assert_called() @@ -216,7 +214,6 @@ def test_attr_color_change(self): combo.activated[int].emit(ind_age) self.assertTrue(widget.controls.pie_charts.isEnabled()) self.assertIsNotNone(widget.thresholds) - self.assertEqual(len(widget.colors), len(widget.thresholds) + 1) widget._redraw.assert_called() @_patch_recompute_som From 5216ee2471f4a71d182c542e9e31452b57495dcc Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 21:03:20 +0100 Subject: [PATCH 13/22] OWHierarchicalClustering: Port to new palettes --- Orange/widgets/unsupervised/owhierarchicalclustering.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Orange/widgets/unsupervised/owhierarchicalclustering.py b/Orange/widgets/unsupervised/owhierarchicalclustering.py index ba6b1914999..0520c18ba88 100644 --- a/Orange/widgets/unsupervised/owhierarchicalclustering.py +++ b/Orange/widgets/unsupervised/owhierarchicalclustering.py @@ -34,7 +34,7 @@ from Orange.data.util import get_unique_names from Orange.widgets import widget, gui, settings -from Orange.widgets.utils import colorpalette, itemmodels, combobox +from Orange.widgets.utils import colorpalettes, itemmodels, combobox from Orange.widgets.utils.annotated_data import (create_annotated_table, ANNOTATED_DATA_SIGNAL_NAME) from Orange.widgets.utils.widgetpreview import WidgetPreview @@ -585,7 +585,7 @@ def _re_enumerate_selections(self): items = sorted(self._selection.items(), key=lambda item: item[0].node.value.first) - palette = colorpalette.ColorPaletteGenerator(len(items)) + palette = colorpalettes.LimitedDiscretePalette(len(items)) for i, (item, selection_item) in enumerate(items): # delete and then reinsert to update the ordering del self._selection[item] From 43a0e49eba55ba6880c402d9f99d707128e953dc Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 21:04:22 +0100 Subject: [PATCH 14/22] OWTreeViewer: Port to new palettes --- Orange/widgets/visualize/owtreeviewer.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Orange/widgets/visualize/owtreeviewer.py b/Orange/widgets/visualize/owtreeviewer.py index d7c970f4548..2b76b9772dc 100644 --- a/Orange/widgets/visualize/owtreeviewer.py +++ b/Orange/widgets/visualize/owtreeviewer.py @@ -19,7 +19,6 @@ from Orange.widgets.settings import ContextSetting, ClassValuesContextHandler, \ Setting from Orange.widgets import gui -from Orange.widgets.utils.colorpalette import ContinuousPaletteGenerator from Orange.widgets.utils.annotated_data import (create_annotated_table, ANNOTATED_DATA_SIGNAL_NAME) from Orange.widgets.visualize.utils.tree.skltreeadapter import SklTreeAdapter @@ -276,15 +275,13 @@ def ctree(self, model=None): else: self.clf_dataset = self.dataset class_var = self.domain.class_var + self.scene.colors = class_var.palette if class_var.is_discrete: - self.scene.colors = [QColor(*col) for col in class_var.colors] self.color_label.setText("Target class: ") self.color_combo.addItem("None") self.color_combo.addItems(self.domain.class_vars[0].values) self.color_combo.setCurrentIndex(self.target_class_index) else: - self.scene.colors = \ - ContinuousPaletteGenerator(*model.domain.class_var.colors) self.color_label.setText("Color by: ") self.color_combo.addItems(self.COL_OPTIONS) self.color_combo.setCurrentIndex(self.regression_colors) @@ -392,7 +389,8 @@ def toggle_node_color_cls(self): else: modus = np.argmax(distr) p = distr[modus] / (total or 1) - color = colors[int(modus)].lighter(300 - 200 * p) + color = colors.value_to_qcolor(int(modus)) + color = color.lighter(300 - 200 * p) node.backgroundBrush = QBrush(color) self.scene.update() @@ -414,11 +412,11 @@ def toggle_node_color_reg(self): elif self.regression_colors == self.COL_MEAN: minv = np.nanmin(self.dataset.Y) maxv = np.nanmax(self.dataset.Y) - fact = 1 / (maxv - minv) if minv != maxv else 1 colors = self.scene.colors for node in self.scene.nodes(): node_mean = self.tree_adapter.get_distribution(node.node_inst)[0][0] - node.backgroundBrush = QBrush(colors[fact * (node_mean - minv)]) + color = colors.value_to_qcolor(node_mean, minv, maxv) + node.backgroundBrush = QBrush(color) else: nodes = list(self.scene.nodes()) variances = [self.tree_adapter.get_distribution(node.node_inst)[0][1] @@ -438,6 +436,7 @@ def _get_tree_adapter(self, model): if __name__ == "__main__": # pragma: no cover from Orange.modelling.tree import TreeLearner data = Table("titanic") + # data = Table("housing") clf = TreeLearner()(data) clf.instances = data WidgetPreview(OWTreeGraph).run(clf) From 6bc23f89058c5ed708d6d8fac180c62309e1b658 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 21:05:17 +0100 Subject: [PATCH 15/22] OWVennDiagram: Port to new palettes --- Orange/widgets/visualize/owvenndiagram.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Orange/widgets/visualize/owvenndiagram.py b/Orange/widgets/visualize/owvenndiagram.py index 13b82016833..78cd98ebad8 100644 --- a/Orange/widgets/visualize/owvenndiagram.py +++ b/Orange/widgets/visualize/owvenndiagram.py @@ -29,7 +29,7 @@ ContinuousVariable) from Orange.statistics import util from Orange.widgets import widget, gui, settings -from Orange.widgets.utils import itemmodels, colorpalette +from Orange.widgets.utils import itemmodels, colorpalettes from Orange.widgets.utils.annotated_data import (create_annotated_table, ANNOTATED_DATA_SIGNAL_NAME) from Orange.widgets.utils.sql import check_sql_input @@ -255,7 +255,7 @@ def _createDiagram(self): self.disjoint = disjoint(set(s.items) for s in self.itemsets.values()) vennitems = [] - colors = colorpalette.ColorPaletteHSV(n) + colors = colorpalettes.LimitedDiscretePalette(n, force_hsv=True) for i, (_, item) in enumerate(self.itemsets.items()): count = len(set(item.items)) From d37a7e779a4baed9331be757ce60e6537546d085 Mon Sep 17 00:00:00 2001 From: janezd Date: Sun, 26 Jan 2020 21:06:11 +0100 Subject: [PATCH 16/22] PythagorasTreeViewer: Port to new palettes --- Orange/widgets/visualize/owpythagorastree.py | 24 +++------------- .../widgets/visualize/pythagorastreeviewer.py | 28 ++++++++----------- 2 files changed, 15 insertions(+), 37 deletions(-) diff --git a/Orange/widgets/visualize/owpythagorastree.py b/Orange/widgets/visualize/owpythagorastree.py index 5eb1c63d10f..5a5b9c6edff 100644 --- a/Orange/widgets/visualize/owpythagorastree.py +++ b/Orange/widgets/visualize/owpythagorastree.py @@ -365,30 +365,13 @@ def _classification_update_legend_colors(self): self.scene.addItem(self.legend) def _regression_update_legend_colors(self): - def _get_colors_domain(domain): - class_var = domain.class_var - start, end, pass_through_black = class_var.colors - if pass_through_black: - lst_colors = [QColor(*c) for c - in [start, (0, 0, 0), end]] - else: - lst_colors = [QColor(*c) for c in [start, end]] - return lst_colors - # The colors are the class mean + palette = self.model.domain.class_var.palette if self.target_class_index == 1: - values = (np.min(self.data.Y), np.max(self.data.Y)) - colors = _get_colors_domain(self.model.domain) - while len(values) != len(colors): - values.insert(1, -1) - items = list(zip(values, colors)) + items = ((np.min(self.data.Y), np.max(self.data.Y)), palette) # Colors are the stddev elif self.target_class_index == 2: - values = (0, np.std(self.data.Y)) - colors = _get_colors_domain(self.model.domain) - while len(values) != len(colors): - values.insert(1, -1) - items = list(zip(values, colors)) + items = ((0, np.std(self.data.Y)), palette) else: items = None @@ -414,6 +397,7 @@ class TreeGraphicsScene(UpdateItemsOnSelectGraphicsScene): if __name__ == "__main__": # pragma: no cover from Orange.modelling import TreeLearner data = Table('iris') + # data = Table('housing') model = TreeLearner(max_depth=1000)(data) model.instances = data WidgetPreview(OWPythagorasTree).run(model) diff --git a/Orange/widgets/visualize/pythagorastreeviewer.py b/Orange/widgets/visualize/pythagorastreeviewer.py index afc539c9f0f..0c263820950 100644 --- a/Orange/widgets/visualize/pythagorastreeviewer.py +++ b/Orange/widgets/visualize/pythagorastreeviewer.py @@ -27,7 +27,6 @@ ) from Orange.widgets.utils import to_html -from Orange.widgets.utils.colorpalette import ContinuousPaletteGenerator from Orange.widgets.visualize.utils.tree.rules import Rule from Orange.widgets.visualize.utils.tree.treeadapter import TreeAdapter @@ -44,8 +43,8 @@ class PythagorasTreeViewer(QGraphicsWidget): Examples -------- >>> from Orange.widgets.visualize.utils.tree.treeadapter import ( - >>> TreeAdapter - >>> ) + ... TreeAdapter + ... ) Pass tree through constructor. >>> tree_view = PythagorasTreeViewer(parent=scene, adapter=tree_adapter) @@ -597,9 +596,8 @@ def tooltip(self): """ @property - @abstractmethod def color_palette(self): - pass + return self.tree.domain.class_var.palette def _rules_str(self): rules = self.tree.rules(self.label) @@ -622,10 +620,6 @@ class DiscreteTreeNode(TreeNode): """ - @property - def color_palette(self): - return [QColor(*c) for c in self.tree.domain.class_var.colors] - @property def color(self): distribution = self.tree.get_distribution(self.label)[0] @@ -633,11 +627,13 @@ def color(self): if self.target_class_index: p = distribution[self.target_class_index - 1] / total - color = self.color_palette[self.target_class_index - 1].lighter(200 - 100 * p) + color = self.color_palette[self.target_class_index - 1] + color = color.lighter(200 - 100 * p) else: modus = np.argmax(distribution) p = distribution[modus] / (total or 1) - color = self.color_palette[int(modus)].lighter(400 - 300 * p) + color = self.color_palette[int(modus)] + color = color.lighter(400 - 300 * p) return color @property @@ -688,10 +684,6 @@ class ContinuousTreeNode(TreeNode): 'Standard deviation': COLOR_STD, } - @property - def color_palette(self): - return ContinuousPaletteGenerator(*self.tree.domain.class_var.colors) - @property def color(self): if self.target_class_index is self.COLOR_MEAN: @@ -707,14 +699,16 @@ def _color_mean(self): max_mean = np.max(self.tree.instances.Y) instances = self.tree.get_instances_in_nodes(self.label) mean = np.mean(instances.Y) - return self.color_palette[(mean - min_mean) / (max_mean - min_mean)] + return self.color_palette.value_to_qcolor( + mean, low=min_mean, high=max_mean) def _color_var(self): """Color the nodes with respect to the variance of instances inside.""" min_std, max_std = 0, np.std(self.tree.instances.Y) instances = self.tree.get_instances_in_nodes(self.label) std = np.std(instances.Y) - return self.color_palette[(std - min_std) / (max_std - min_std)] + return self.color_palette.value_to_qcolor( + std, low=min_std, high=max_std) @property def tooltip(self): From dcee4d9350fe82dcb2290df1e7979191bb555339 Mon Sep 17 00:00:00 2001 From: janezd Date: Fri, 31 Jan 2020 20:52:59 +0100 Subject: [PATCH 17/22] owlegend.ContinuousLegendItem: Port to new palettes --- Orange/widgets/visualize/utils/owlegend.py | 43 ++++++++++++---------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/Orange/widgets/visualize/utils/owlegend.py b/Orange/widgets/visualize/utils/owlegend.py index 41d850c2124..96ad391325e 100644 --- a/Orange/widgets/visualize/utils/owlegend.py +++ b/Orange/widgets/visualize/utils/owlegend.py @@ -8,6 +8,8 @@ from AnyQt.QtGui import QColor, QBrush, QPen, QLinearGradient, QFont from AnyQt.QtCore import Qt, QPointF, QSizeF, QPoint, QSize, QRect +from Orange.widgets.utils.colorpalettes import ContinuousPalette + class Anchorable(QGraphicsWidget): """Anchorable base class. @@ -395,6 +397,18 @@ def sizeHint(self, size_hint, size_constraint=None, *args, **kwargs): return self._size_hint +class ColorStripItem(QGraphicsWidget): + def __init__(self, palette, parent, orientation): + super().__init__(parent) + self.__strip = palette.color_strip(150, 13, orientation) + + def paint(self, painter, option, widget): + painter.drawPixmap(0, 0, self.__strip) + + def sizeHint(self, *_): + return QSizeF(self.__strip.width(), self.__strip.height()) + + class ContinuousLegendItem(QGraphicsLinearLayout): """Continuous legend item. @@ -424,7 +438,10 @@ def __init__(self, palette, values, parent, font=None, self.__palette = palette self.__values = values - self.__gradient = LegendGradient(palette, parent, orientation) + if isinstance(palette, ContinuousPalette): + self.__gradient = ColorStripItem(palette, parent, orientation) + else: + self.__gradient = LegendGradient(palette, parent, orientation) self.__labels_layout = QGraphicsLinearLayout(orientation) str_vals = self._format_values(values) @@ -644,28 +661,14 @@ def set_domain(self, domain): # The first and last values must represent the range, the rest should # be dummy variables, as they are not shown anywhere values = self.__range - - start, end, pass_through_black = class_var.colors - # If pass through black, push black in between and add index to vals - if pass_through_black: - colors = [self._convert_to_color(c) for c - in [start, '#000000', end]] - values.insert(1, -1) - else: - colors = [self._convert_to_color(c) for c in [start, end]] - - self.set_items(list(zip(values, colors))) + self.set_items((values, class_var.palette)) def set_items(self, values): - vals, colors = list(zip(*values)) - - # If the orientation is vertical, it makes more sense for the smaller - # value to be shown on the bottom - if self.orientation == Qt.Vertical and vals[0] < vals[len(vals) - 1]: - colors, vals = list(reversed(colors)), list(reversed(vals)) - + vals, palette = values + if self.orientation == Qt.Vertical: + vals = reversed(vals) self._layout.addItem(ContinuousLegendItem( - palette=colors, + palette=palette, values=vals, parent=self, font=self.font, From 340b93255d372f5de71ad0bb79cde59cc06ca61f Mon Sep 17 00:00:00 2001 From: janezd Date: Sat, 1 Feb 2020 17:44:37 +0100 Subject: [PATCH 18/22] OWHeatMap: Decide about centering based on palette type --- Orange/widgets/visualize/owheatmap.py | 9 ++++--- .../widgets/visualize/tests/test_owheatmap.py | 27 ++++++++++++++----- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/Orange/widgets/visualize/owheatmap.py b/Orange/widgets/visualize/owheatmap.py index 853624011c5..3d3faf51498 100644 --- a/Orange/widgets/visualize/owheatmap.py +++ b/Orange/widgets/visualize/owheatmap.py @@ -242,7 +242,6 @@ class Outputs: threshold_low = settings.Setting(0.0) threshold_high = settings.Setting(1.0) - center_palette = settings.Setting(False) merge_kmeans = settings.Setting(False) merge_kmeans_k = settings.Setting(50) @@ -357,9 +356,6 @@ def _(): colorbox.layout().addLayout(form) - gui.checkBox(colorbox, self, 'center_palette', 'Center colors at 0', - callback=self.update_color_schema) - mergebox = gui.vBox(self.controlArea, "Merge",) gui.checkBox(mergebox, self, "merge_kmeans", "Merge by k-means", callback=self.__update_row_clustering) @@ -492,6 +488,11 @@ def _(idx, cb=cb): self.selection_rects = [] self.selected_rows = [] + @property + def center_palette(self): + palette = self.color_cb.currentData() + return bool(palette.flags & palette.Diverging) + def set_row_clustering(self, method: Clustering) -> None: assert isinstance(method, Clustering) if self.row_clustering != method: diff --git a/Orange/widgets/visualize/tests/test_owheatmap.py b/Orange/widgets/visualize/tests/test_owheatmap.py index 7508a25df55..75ebe91e6ed 100644 --- a/Orange/widgets/visualize/tests/test_owheatmap.py +++ b/Orange/widgets/visualize/tests/test_owheatmap.py @@ -7,6 +7,8 @@ import numpy as np from sklearn.exceptions import ConvergenceWarning +from AnyQt.QtCore import Qt, QModelIndex + from Orange.data import Table, Domain, ContinuousVariable, DiscreteVariable from Orange.preprocess import Continuize from Orange.widgets.utils import colorpalettes @@ -217,7 +219,7 @@ def test_set_split_var(self): self.assertIs(w.split_by_var, None) self.assertEqual(len(w.heatmapparts.rows), 1) - def test_center_palette(self): + def test_palette_centering(self): data = np.arange(2).reshape(-1, 1) table = Table.from_numpy(Domain([ContinuousVariable("y")]), data) self.send_signal(self.widget.Inputs.data, table) @@ -233,12 +235,23 @@ def test_center_palette(self): [255, 0, 0]] for center, desired in [(False, desired_uncentered), (True, desired_centered)]: - self.widget.center_palette = center - self.widget.update_color_schema() - heatmap_widget = self.widget.heatmap_widget_grid[0][0] - image = heatmap_widget.heatmap_item.pixmap().toImage() - colors = image_row_colors(image) - np.testing.assert_almost_equal(colors, desired) + with patch.object(OWHeatMap, "center_palette", center): + self.widget.update_color_schema() + heatmap_widget = self.widget.heatmap_widget_grid[0][0] + image = heatmap_widget.heatmap_item.pixmap().toImage() + colors = image_row_colors(image) + np.testing.assert_almost_equal(colors, desired) + + def test_palette_center(self): + widget = self.widget + model = widget.color_cb.model() + for idx in range(model.rowCount(QModelIndex())): + palette = model.data(model.index(idx, 0), Qt.UserRole) + if palette is None: + continue + widget.color_cb.setCurrentIndex(idx) + self.assertEqual(widget.center_palette, + bool(palette.flags & palette.Diverging)) def test_migrate_settings_v3(self): w = self.create_widget( From 9b1b1b8c02091e584247cffb053bb08ad2926f35 Mon Sep 17 00:00:00 2001 From: janezd Date: Sat, 1 Feb 2020 18:19:40 +0100 Subject: [PATCH 19/22] OWColor: Update documentation --- .../source/widgets/data/color.md | 35 ++++++------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/doc/visual-programming/source/widgets/data/color.md b/doc/visual-programming/source/widgets/data/color.md index 4456a3f9f47..724ec92ecbb 100644 --- a/doc/visual-programming/source/widgets/data/color.md +++ b/doc/visual-programming/source/widgets/data/color.md @@ -11,40 +11,26 @@ Set color legend for variables. - Data: data set with a new color legend -The **Color** widget enables you to set the color legend in your visualizations according to your own preferences. This option provides you with the tools for emphasizing your results and offers a great variety of color options for presenting your data. It can be combined with most visualizations widgets. +The **Color** widget sets the color legend for visualizations. ![](images/Color-stamped.png) -1. A list of discrete variables. You can set the color of each variable by double-clicking on it and opening the *Color palette* or the *Select color* window. The widget also enables text-editing. By clicking on a variable, you can change its name. -2. A list of continuous variables. You can customize the color gradients by double-clicking on them. The widget also enables text-editing. By clicking on a variable, you can change its name. If you hover over the right side side of the gradient, *Copy to all* appears. You can then apply your customized color gradient to all variables. +1. A list of discrete variables. Set the color of each variable by double-clicking on it. The widget also enables renaming variables by clicking on their names. +2. A list of continuous variables. Click on the color strip to choose a different palette. To use the same palette for all variables, change it for one variable and click *Copy to all* that appears on the right. The widget also enables renaming variables by clicking on their names. 3. Produce a report. 4. Apply changes. If *Apply automatically* is ticked, changes will be communicated automatically. Alternatively, just click *Apply*. -Discrete variables ------------------- +Palettes for numeric variables are grouped and tagged by their properties. -![](images/Color-palette-discrete-stamped.png) +- Diverging palettes have two colors on its ends and a central color (white or black) in the middle. Such palettes are particularly useful when the the values can be positive or negative, as some widgets (for instance the Heat map) will put the 0 at the middle point in the palette. -1. Choose a desired color from the palette of basic colors. -2. Move the cursor to choose a custom color from the color palette. -3. Choose a custom color from your previously saved color choices. -4. Specify the custom color by: - - entering the red, green, and blue components of the color as values between 0 (darkest) and 255 (brightest) - - entering the hue, saturation and luminescence components of the color as values in the range 0 to 255 -5. Add the created color to your custom colors. -6. Click *OK* to save your choices or *Cancel* to exit the the color palette. +- Linear palettes are constructed so that human perception of the color change is linear with the change of the value. -Numeric variables ------------------ +- Color blind palettes cover different types of color blindness, and can also be linear or diverging. -![](images/Color-palette-numeric-stamped.png) +- In isoluminant palettes, all colors have equal brightness. -1. Choose a gradient from your saved profiles. The default profile is already set. -2. The gradient palette -3. Select the left side of the gradient. Double clicking the color opens the *Select Color* window. -4. Select the right side of the gradient. Double clicking the color opens the *Select Color* window. -5. Pass through black. -6. Click *OK* to save your choices or *Cancel* to exit the color palette. +- Rainbow palettes are particularly nice in widgets that bin numeric values in visualizations. Example ------- @@ -53,7 +39,6 @@ We chose to work with the *Iris* data set. We opened the color palette and selec ![](images/Color-Example-1.png) -For our second example, we wished to demonstrate the use of the **Color** widget with continuous variables. We put different types of Irises on the x axis and petal length on the y axis. We created a new color gradient and named it greed (green + red). -In order to show that sepal length is not a deciding factor in differentiating between different types of Irises, we chose to color the points according to sepal width. +To see the effect of color palettes for numeric variables, we color the points in the scatter plot by sepal width and change the palette for this attribute in the Color widget. ![](images/Color-Example-2.png) From b513f5a823d1f60ac23511bff7c85119f1798456 Mon Sep 17 00:00:00 2001 From: Ajda Pretnar Date: Mon, 3 Feb 2020 14:40:49 +0100 Subject: [PATCH 20/22] Update documentation for Color --- .../source/widgets/data/color.md | 10 ++++++---- .../images/Color-Continuous_unindexed.png | Bin 0 -> 32661 bytes .../widgets/data/images/Color-Example-1.png | Bin 83085 -> 0 bytes .../widgets/data/images/Color-Example-2.png | Bin 94822 -> 0 bytes .../data/images/Color-Example-Continuous.png | Bin 0 -> 242347 bytes .../data/images/Color-Example-Discrete.png | Bin 0 -> 230631 bytes .../images/Color-palette-discrete-stamped.png | Bin 19598 -> 0 bytes .../data/images/Color-palette-discrete.png | Bin 16897 -> 0 bytes .../images/Color-palette-numeric-stamped.png | Bin 9279 -> 0 bytes .../data/images/Color-palette-numeric.png | Bin 6629 -> 0 bytes .../widgets/data/images/Color-stamped.png | Bin 11985 -> 22390 bytes .../source/widgets/data/images/Color.png | Bin 10233 -> 0 bytes 12 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 doc/visual-programming/source/widgets/data/images/Color-Continuous_unindexed.png delete mode 100644 doc/visual-programming/source/widgets/data/images/Color-Example-1.png delete mode 100644 doc/visual-programming/source/widgets/data/images/Color-Example-2.png create mode 100644 doc/visual-programming/source/widgets/data/images/Color-Example-Continuous.png create mode 100644 doc/visual-programming/source/widgets/data/images/Color-Example-Discrete.png delete mode 100644 doc/visual-programming/source/widgets/data/images/Color-palette-discrete-stamped.png delete mode 100644 doc/visual-programming/source/widgets/data/images/Color-palette-discrete.png delete mode 100644 doc/visual-programming/source/widgets/data/images/Color-palette-numeric-stamped.png delete mode 100644 doc/visual-programming/source/widgets/data/images/Color-palette-numeric.png delete mode 100644 doc/visual-programming/source/widgets/data/images/Color.png diff --git a/doc/visual-programming/source/widgets/data/color.md b/doc/visual-programming/source/widgets/data/color.md index 724ec92ecbb..c6b21ee677a 100644 --- a/doc/visual-programming/source/widgets/data/color.md +++ b/doc/visual-programming/source/widgets/data/color.md @@ -20,6 +20,8 @@ The **Color** widget sets the color legend for visualizations. 3. Produce a report. 4. Apply changes. If *Apply automatically* is ticked, changes will be communicated automatically. Alternatively, just click *Apply*. +![](images/Color-Continuous_unindexed.png) + Palettes for numeric variables are grouped and tagged by their properties. - Diverging palettes have two colors on its ends and a central color (white or black) in the middle. Such palettes are particularly useful when the the values can be positive or negative, as some widgets (for instance the Heat map) will put the 0 at the middle point in the palette. @@ -35,10 +37,10 @@ Palettes for numeric variables are grouped and tagged by their properties. Example ------- -We chose to work with the *Iris* data set. We opened the color palette and selected three new colors for the three types of Irises. Then we opened the [Scatter Plot](../visualize/scatterplot.md) widget and viewed the changes made to the scatter plot. +We chose to work with the *heart_disease* data set. We opened the color palette and selected two new colors for diameter narrowing variable. Then we opened the [Scatter Plot](../visualize/scatterplot.md) widget and viewed the changes made to the scatter plot. -![](images/Color-Example-1.png) +![](images/Color-Example-Discrete.png) -To see the effect of color palettes for numeric variables, we color the points in the scatter plot by sepal width and change the palette for this attribute in the Color widget. +To see the effect of color palettes for numeric variables, we color the points in the scatter plot by cholesterol and change the palette for this attribute in the Color widget. -![](images/Color-Example-2.png) +![](images/Color-Example-Continuous.png) diff --git a/doc/visual-programming/source/widgets/data/images/Color-Continuous_unindexed.png b/doc/visual-programming/source/widgets/data/images/Color-Continuous_unindexed.png new file mode 100644 index 0000000000000000000000000000000000000000..21dc6fa04d9982732b8f9020bbb62cea4f43d632 GIT binary patch literal 32661 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%0AG%WIymlyf#cJ&WFPO+w(IVNhYC;vl^X`8k>0p! z1IjPy^mLm8`mnvVpb(!24+=yfpA4JGdaU2Ot`hWL#QL}YWkPyG2N8}PG{HW-eM{a& z^Mhj}tt6z`JQE?Ii4dG|O@m?y)Oez|>s+#UJt(4;oE zw-4#jQ3Ps?W4(FU8YCnY=1z~t5%)2gFu72%bp*c#Ub~Zo61b#obZ+7LubB2TbcB4( znKbQ{EuEdqM-*IH2CIt8aX-5B(W_Rp&bjD%7cnc;JkUpgqGl?)TBp!bW>k#)TQrU* zTgyPt{-HecOfEc3|5u#nr5F#M*U`s|(R2PV?Y(@Q6+s0T-Fw<$y*1Qb643&)8V0cB zVf!%5NX#FYvehsi3CP~d}tH#I7H)ec*n<+LiJSeg97gds>&IQ zefsXKP@2^D8!$H1JWvcZ>vug`DdwB$xW;`3I1<9tiva}k57%| z^LctVnopqw8f%zERsiMd(Ty{XHr^g16|D0Z#dT8ACXp`xc_mX|BU0S6T{5s&V&A!; zvlw=Kc-128DfL#dMz8s^7HNhCV{4Vs%z4s!U@;e>0Z{B6<3wOFKAAe^65S@ za_Lo#d;eF2QIk?Z^r;f@ingrIPQNqqL?&u)=cP$nPSp28=94!KIP59VylVO$PCOcg z;ADJKE0%cbnzAyglXh$+>be@w=F_Av-5|Bf1(LF>oI%MnBun?q!=ZPQf!K_Zesla& zQ)A!e-VS?PMp4JBji28zx+5jocWTz9WCCg1t-A^n4oRJv69 zhjg>EjP0|m4*;Q3>4p~Fg;PJX-F*uyG;G*^Q)}@eU}JL`eA4)MV|@DYCVWY^_02gk zn*?g+Mt{;|6RCgI_*s8b%Z0J|6Kim96l#yCyUyQVPF`-0RnD=V!;q3g>7|y>jiuzC zse&lHbWkOcNF7kic@rXvP+FCLYuanBLr_(V8fJ%vA;W6t_h9bH`(EqkRQxxS=+fEQ zmZ^Vdl~vW;otR(50(1Fvuf%NFr`dvPx;X1`2#XTr8Wo_&GKv*II}v2i?chMx>2VJnqHx1=wN zQPKHH`kDK-PpIS;4?1|(XigY%{|=<*Wo)r)E*#CPBd43t8ZKdmi#l*dm}sM9?59p=sE=(1e|L%Br%NQT`$CC_w_>MkCF>C^AuL@?9j+K279RfCW~hQVG&=-| zn>T{r;PK6~Wh-1ZQ7N8!%8(PejVn5_eV-;nAhjc^4x(q1ySbnI3U8Y=Ewx5V=JQp) zu~uci+%Q+&LU={?2e6P7Cl>eknVD&>8sl1;?tP;}yCIE2UVJ4L*`3vd+(RUS21rWM zNR-+jFxZ;ZzpZwFV=@>_Z%^j4vF&8$U}vHowi8UAQOT)s=}3}Lgs%%9@8REy=#~sX z3L9;T2Jeju*fiV32JCWuDpV4i}7)wz!gjSpm_nhm*~ovF+9sy-f%KYg=iKACf- zsdDi!UXYcEmC56PY3qtiSa__$i9uyqyw^f+H(uv4^+8wdx~x)(dzeHPK2T5i5Rs8* zgHeIVdl-h4L`rQ23)862|4jK5le}bgTULv6r9Uf`q~Vdoy5V28;-p^hu;hzB@G)ks za(3c&F6XVBGc$)De$;cyY4iw{L}_jc?4NAnP82S@r4)UUP1mN=W1_XcHTv)1>x{ca z0EGj-LaWnU9R=j_Dqi2l+A1PAJUJ37#AB7#q$w$Rm9tT_>$M~7tB>AvL7TJ+Yvpyt z&0rs6$**I3vtmZl#^5lHk2O6_rtWFu=lBswK=8$NB}^e%oq$fWaw9eJ1?1$IQ)?Z_ zB;9>Q^NG)x%98i1`8P_Llc@713?EyVzv!$z&NebuT#fQsa49GtO2n)x+w_f{^8)df6Ag^m`oP_$F;7BW0h!|a+jY0m{gm9 zYk+V3C`ft4HSzfRhEBy$%u&h}_`0JUDYtouYfpr!5EJ>9IKpbIIKnIrtv22VTH z@*)w}{}yA8vuLEFje1Fu38rT-0u;X8Z8aAs!WbCb8GoqwAnas6z&IqO~fv56uS`g%13uv|B|s^;grR2)zQE{zi{JsK6E; zUSxx?u#;2#%(OK%ZU4>ip37q&*X47%B2>e<=UP^(C**imi>t4JQ$mh9F|b5I803+* zu2{5xGx2CYHI0h~{ zQ3Rx2g9||=CwW|4>&zqvVHC*%7wZ8CBAS)Z!D=WCQ@})Bl@_79LXzp}6mm*{F77!@KmKT_s5QiJ;sxw^>OP zkVcjE3eaiAh0&@khJ7`m^VD%}yq181D{T$lEK^vTsSfThc7sAoky*v>5Ps`1s%# zU5~V5-N))_IF=&8j_IYlbdXD%H9h#GUM~K>f+S7}6rPYxF^+H$OA2s0GxcUzL-3#_i_WX?C@y5owDo?3w};BdcKaX>?Yi2X$)Hj~gZ=PSPODSsR7FL6 zcfW>xKbg-*Q8NTba(<)zQ5hHbWO0ITzLZ{TunHf$jTxsx`Z0mW@46Y^`wt4RnW8f? zVtlh-C%Y7dpG_^;F(er>G6+jVGh}CsIoFx=!SD+P#%X4L&;8K-R((2uxN=xhqQw-) zWWm^2vCl-;(=#Jj*CH;)3vmmhX(MDVyNdhfO)FVmr4JmBiOR(PXk9Z=?R+iaVXEP2 z2~?WD&RBuoMAPOGii%EWS_g7`24d)d!;c`~7$E_rpz{!gHzh@G2W^r@?8_7_Vv0Jn z5gr0(^Ketd!T>aXcWVrN5RX1yrCQL8PyXSTGH=K!T^p`IiI4e?lUbEv6)IawT`{Kf z#p{Puar-q5-9W?XcmP=gD&=ZIL0XEsClnDzT4C3Pi?c30{^-NQhl$y8`3CA4hx2s^GC^l;W+m;HZN0Mma(hT+a41g+9V4Zj zq1?Le#1MmYDSi0LhSB7LU7|*zEvqyqVh@*>SW0z@{I5y!mP_ZhUDfv7P^`a&0c5$0 zydfn}!Jzu!yo#4#2)asabK@M%P`f!7*;reC|)YOOI$nji!BUDoZ&ZJTvv z%TQYz26M=1(JQOZyUsryZ-Ua=_Z5<_SAKk@Zo|1xMF}LEXN66!qvKOqZvd}7lTs#2 z-Bp@vQ&Lc5(iZcmy7bb5B>;4D(wXyWVeYa)I(nsxwV8^Ov82r7h|r`GPBJ(5#Y_B; zHtFo#oCzmMYpd9vxIWi372(|3E z)x}5A$2i!ul>KfV8u9ULQG|f%ef;VFYwis^ThFxdarZx$OQmY-pWFQ&9T7}RB6tlK z&649si%m@r%f3E*^l)lUmj61zW1_q&F}3X@G*D+^b~8+3Kp!~X@txz}u>c?jfbmejjT`7OI72E=ZL;Ui@6 zN47dzaq_e(0IFu>Y14pL%Jgz}K|pZrKrTF}BqcZ^%&xG^GjGvT@H6C)m?L{{dzUA% z;2m6shH;^!vy{23ls~YX5|GfLSpptJ^HZRT^q;Sb*jKAvL6FPl5ePpjf{7&z?Y$sg zhHv_`$OW+lNy}N0gAYPvBGRimF7jH@%r^;v-j|zjd;&5`@8iq!YAXP^?%a&hy-#1yjcr&G7to5 zKDL$HR^H2Im7iay>#!`Ls=6!RgYV<(8?@=}pz=MqFO_R#xt-~^U;fhZ?Mp-t8Q})hxL-c1 zfCJ<@vrqc`s>|E24%>U;P0Fs0I<)cA;lLS4Dlp{AZNIhON!?WVrVrvISYd;E&4c9? zPtCwb-EAY9rA!SzgA|HwEX@1J#Cmh%|A6aw-}(u896pw?g4l8KDo+W9trSCM3pR9ez2TjWQ?-TZttkPrtAwPa7O(e$yoP= z${9tSX9I`vWoS$}_Y7-px4edispNNh>b8zVS+#o_q}tEnkn)@yjhB9zZ9gv@Oe51G zt5?~yoY-kjK!_zKZaou9ht--aJUIU?C)3>4gJ~Kdiwn7*5=+bTq2z$qZ9bx$Wa1IT{Yyzk@s$K z*h+8tiOc-;_rP8}I7^#LAoAKZEk`=)1j~2ckeevfJ!8m_n>ds4UOgv`pq?i*8~aZpMlV`t&P=z9XkULgQi|%&MnU&M`J~ep}${`^~oV5nIZ7X1|DJlD0XuiZ0eNljZ`BC%*W-Ptt&48|1 z;akRyL?p|7qjmIWIe|(i)4jPPNOxyUgwx4!*{O?eM^8Un5=b&}CEi3!wej$6>BHqp zft#B~I)|iIt`B4zh!>UKW!CKnj$MY%!RYCXFGq};G?7^e*P#yv2u zEPtlqJRbbL@x9M&zVduN?$l8FaS8K@D#JAcj<6G1a<|w3N5ZKU_wQPFk2(*euyDhi zyO&}_qht|ch}0c0<6j`Uq=9WyUV`$;Fs9s-kYJn;C;>>AmAkYezoC9vlP{ z4kVOX;l9?2q5^cgh$qNg-qzOk)2C1ERxWXn!;2Zy9vzYT+;OuF=4t@}6LnYDpEJz^ z2F0IV`dv;lA-sm#at~LcG_;*+p>>FxvD1a0kM-mhBxZ+0^juD9X#1ISi14!H zNH1n%wwPY`SHMSSk3i7g1#?aKLNU5sJg%>!`-!S_6w9NiBjqTXtU>B7z-r=Dy3c53 zf-Eg0FF;pCDg_yzB*dK2UltW0U|}A${ok!rT}MSX=Q&j(?>Pl%FXJOnGqZ_Y$vduS zZ{W;}p%4ksnG7I}*^zID<&VpUq`b+*E@lHcUHB+*_Jya4M71}xUW+O6*}*%i+b=Wf z2csRV*?+s^`p@gn%z7#oHP%&C)oCoujm!YB^+r`T{=Yv>-~V7(efsdh@H;R22hx{+ za7WD_l#{GU@{9)jeb!QXu~mDju!j99aw$!AW1uqSODJ)TjC|aOUj!V>P~hl_jEO#e za--o;Xbg9WL2!pk~CyD>~JC)nxV4e9aml_TR?0a@KB`F- z96n*P2uG&IrCy<0{F1&7XbW{X%LmIw+^o!<1#Zf;R-l<@D>nGx_Gjab@0Y>U95kZ+ z&hmn_wL7Fmj~+dwmJg=_JSAuiCUA2Zmt9y`cwW5up<+Dm;c@xKWH7RCmi5GO@o+Pw zrVS*nwF%&Ux@+3n>s~blau@b9voPu|TCF(hF2D&&bIL?@Q8VNnOGHa|W%3b)x%(>F zu#<$g--Gbn)0PLsX=`}<{dEm`a3APiY_Rqj2BrT>;nWK{7x(qqJ=HY6Z{%KxolZ{K zQ>GE*&`%@19Cxv}l1g4Pd*Y`wLqtLqa26P;9RRN$@-_gF^$}@ zp8sYwBBHiXXd!*k-dRukBQQ6uChJy*s`zLrh1d<5Mc&=^Bvyqe4tsQOkUMOzl7+;; z3v-8M3*H+gZ3$iBEZX=l+uyq22+tM#J9*h*l1!xwL}HSP_aE}HN6i7*n7E7F>fMV! za`TU{%sLDWN$`#JAMPK#VUqA^3jM-5%W<>Foz~HvssWK0DcXtnDX+go0 z*sfBcQGB~79{kt`U%;Z}`UcW*g752s0y(mUJYAsnjVqi8+BUEfw^_OIrc*UZrGV>B z0o)SK+wT1+g~6_5d?m9h+8Mo_=mHWDq2V2OCpFB_bq=7AHHe$R@Ri8NC!@W9F)6At z?)GD2V0iZcrG=VC(ImW}-u>TnOWt3HqWUYvoxILp#YM1s52-MZXzHCp3`ADE)2lQqZVpI6oaLL3GehK^v`4-WTm-{+B=7 z+Ro22al%Y~4EaBneeL2w^$>~a-;Twn3%f#fHda``>y714^Ar_twi69T$N5f9r(3Q! zH#d8AG}c#Fg|2!beZNV_Ds8bMX*SEr_-7yFw%~)6is$ua2P>FDC@ICn+ZXxhd^a3B zvMkpa9{b3=M2fx}O)CpQ>@{MPyarmg<1VY#_3*~LE!B$}8ix_S!hU!62?`P&?fvWF zzXdw#)C#{(78}m0DSq}QQ+WrlY4Y0@K7Xc^r@9^{8AL6ue6yEnskGg&101bjuN8vZ z^Eq{MU&WWR)cjnm_&_0Um+o zhfkUTFJJuSe1R=9d4}|`x#}u1fc>pzhupM$8~Lg_DpzwN9lQUV)ibJgADUt`058=f!AO-+@V^sLX5 zQILMrrDfG=@tR`Tx8Zwe<}0=b7prl;_P1wect3om(d)a5sMekl%%E%`GLmUqARrN) zFi*}oP2M=Kp-%Kh4l|8=x!x?mZB+U#um6nzL4YbfBL^P%e{uGfVNrE|+whnuDo995 zNOy`fBVGeYOP7SwE!_-?%FxmcI&@2ew9+ZvUDDkH^RB_`{@?d;+|T=bc-996X3ySh zulTKBo@Zcywm|1aOZKt{%gEOmyW*LLM3mG4AE=pxw{ui;zI<)y*-FmZ;jZXo2eug2 z1Cjh@KPJN-q({t5L5+)r73#PSP|EQAYE7laXnh>?w*ZJ@XZ~JT1jG`Y~Zg zhrib=W|)$ahz^E?W6+&7f`Jk(H$F{69{G!EWM6(?MulW+xIFdRJuWC;jvOrgn3nzH zDCFKFwUv(Ek)h$T@^XdXQ2BU#!;lke=;W4<%Wb+Wij)J@5i?2)&)21#g;D%XS~l8b zIyOwQ$~Rk7k!{zngIox|NOGOm96HML%d0(Moh>5od^vnYJEN#*HzJjaQ#Ur5kSdqx)_geoB;)!uMh@A;>{R7J zmWdD7Y8zeit0Y!A8aZ^l5`lGIP^l^la~g>sFjX)Oy7}H8`BgpF@eN*MzI>DMe2`J6 zUg`3UCB^DV*QpCJ5&q0xK_zE(!8-FJD|^}K&7WS?e`cI-P!p{D_X`_w+1 z&%$Wu2E-?YTu#0B9i;^UDH#z3Wjjd;+`~tk01w~9i(qo`HiRXTJ0*k72v!>B~&b*v@%zKAkC9H1LF10 zrm-E3U3>djNV4la(ONn|yADSENb;bJ^?Yj(+KPQlkRBQMfdrp&$dQ&ic?91S7QXlU zM!rm99AQQE?5@fZ-+6#6de^xxMgLUA6BP++(G{hE|0RKt^wFcokIC?fzKyK+CP6jy zH8gb9v^XJ272eQTZr9Ew>4hUruWyqiULKfODKL4%MRdrjZHqcYD`u@%FkM zjWo^s!#H8nq@NX%rwY)JZ}qSmUK^S3>bdIv!_pUEIQ+9l4E_v}gEW*$7ob_r5{uMp z^j2oD9SoXhe3T*HRJOU<`JR55-!BN*29x+WINyKs_QQ$Y-F;=~d*a0o<%}QTc{vyG zm@e6;zkaCcBRN1`|GlJ~`y;78Nqe~4kPzehzHm3*m@dT&w@ZG`;b%!AD!b-d#%{(# z?S@ih2|7a6?gA^jc#cG}8l^LFHNN*8;Ut-5;|I{c*D{{;N> zbOMVYMXO<0SxL3{loXE^$e6o{FI59yj0d%wx2rt!TEcnTag&!GGP*r{X>os!2v|DRcd^ZS>q4}v>J_>fFJ@=0_1fs5<~F0XlLl?Vq}lycQ7 z6csjBtw6rdvZ-um5aR71&8=Gx4SS%lWw?;&(s)fr^WKtAr(`0xMc$ZIDMsw2@y(Uvd!G@qPJ@!YuWT>`& z>i5E**x397CwS$rK0XI=15sc1|E!j*Z~u^&?lTF>R?FG>!#v`?LieW^AFsV*xip&b zIX6uUJ2aY(<86nkSi7VS)#MM~oQn~jqXAS$Q+<0dhv9XbhzV&W0k!K zr?KSM;X;O35V_50YQ7`)P(mqJ9qab3XLNLm_4eXlj4dBhvES)?PlkUJq_ADT`#~_S zmFTQG@MQC7(s49q;K;CNBL-1G-*pH3{$S1!(kyuvWMoGBzsy%|mXJ6(!3VCB6UyOS zK@}qRz1UNHQyi7;;Xjk{1>JrX{PppU98#uk<%slH#G7h-nKy9d+&~_?Yl|!s=D;{RAGJ+@U+pI(gpO zdf%*y$Vk5G3Rq@r7lvvuyS(n$?He#P?uj!F?RlOr391f>WB!oEM6gBBMX-g@h0#UO zja|f^c`--Og|US#GE6e|tQ!*W&EbL6sqy%qy(ETg#uhJLs~U9--n?e%45Iee8zcv9 z4$6K<7)gGB86{APIW7MTr{KEs>-Mk5NG8k5W{pw z{F-)hSg<(dn2hm!>j~HCZB5ctWRoM2;dZ!e0}MYK0^bKK?pnF~}l*_oTb~ zK6{MfnkA{aBzBK)M z5P11kh>kB?LJPo`9CPmX~>)7xl18cTw?Ug6wl<}$47Xs%AM zO8=SkAPE=0Rma9xABa-vr}LyK(QPWUoM19YUoB4Y)&Qwre9R0o4{trnE=_cx9Oa`g zN@n`D6n|PoAY&6H_{X$K;O^0>NHiQ@i*mlzx=OTosj+rA$t|zsye}f1+5gG=_t&(` zWK{1W8%WlN$bnA?@%!OMBS>5)2moaawcj+-l>>ijhH7Dz{N7LIWaq&`&}kC8k4KZ^ z3vwJpQV_e#I1iu*9KU61h*A1Cb9wwkAUce;Mra zlmH&hn!nxK52qt(bYT$&cb}4S7mIi|Zk?JXZj`H)HD4r!m(#kN8##LVNE)JLpOVNo z(=)ms-loCExv%NA@2RhkM`d5TfPMdWIJGAH7RbCS%u>B8e~4tm6YSYaSn%$Qa(U2Q zrQ2j1a!6rvMvpwJgi-P{3vh99Jx^87j%>AYIy_LLR|T4Sj%{;|61m^*DN68-d2C;n4?SX@TBf3Hmu$tivQjPoN zB~D1f8!yLKrXjcjGkO|qm5Q-;c3U#>(6Y9dVoU-rIS)77R*dzJghfDd%(Q%fzqZ@{ zi=|57&dJ+DUTBFMkd?8}u(4U4?M07Hke`D1?54L@G&y8MM?mKr{cwyMZL@A@H7)oY z@%>e>wlSKV4#~-qL(Z%eijJmKYu<)R%y__ zH6GKg=r6iV$Dwn(YJgK!aCtMsr@-f?nyL)Yh$Y<`B4!!HCxues zoye+o|I4_#ZJDZtvz?|DqpAgM0bvPh8YKg{W)gy1;`#W88~_9FfO^c@eJmG^& z%4;Csb>S4fw~0F6zC7=(M}$hdF2&f&1u8NiL!lnq_P?4vG^WsUTj<9kXUAFJW0zK0 z^_kC7s-q_(9tsaF+}L3Q`HI`i8C{6`_xR%F1~TNFbwFaIA(9C}=9I_GHg5LxnM*~& z`1+@5qOxpWA5vAi>{vM%LysKYk$tez{jeKvRo~nl|N0wPHSEAj=92Wv$C6JGWEa3p zLu;!-o*#Ynv>mA0pkcTZ6x#qoD;BC2wUSc=gsKBW6rl1L-muZ920;RaIiVI1we6x0bhioM`Nf(VGfh1+1#+5=bv>*8KJKwy8 zRd!ffcR8H`KR84)v5X!2&WOQawq7;IWv0`0maC%Zlbv3;$oF3cgB4C?V(w^_WC|aC zgKsOY{02l=hM<;34%BI+s^7Y8wuCT~24ScKqp`N`dMLfm;GGvf4X{Q~caqhsIWvBF zaP#<>+`IQMM7B!3Loe>S;Rk92@~cvIkaj*d+rf|a!L;q6(hBoxA->zS>O29(boOxw zI);}YvNW#j6%~9pgiaRr)MFggb?V|;?y_CPajQ{7fW&V1w~%)U$GbH=k*|x7^%b7bF1a$E6Tofe7<7sXk+Pcd2#WK@9%2c z2kAlVp}lx%ZaC=fb%I+;^w=y>EYAtmkW2v|mbL=#cFE^~a{vPB!AK43yU!OUT94#I z6uPwCaq+y|mOdXtIp^teRdaBm&?XX{#Pa#e393Z?1%_VdP3z%L$+g!yb;ea(_s2-4 znRv!{8aWg8Po~5^j&O(S&u<6?rdFQ5d82fVtjqvyL`@U_1#DYF*+s=@Vg4QL77{#0 z21Fun%gy(l#b5EO;&Y97IUM39C@sEuJ~BN2AR#>fa*dZ?Qq6%-un$2m48>WmbQ0=< zF1Fv*gk z8Igflth_||9j{%hyOs=1p`I5P8aZpd1Yt6&@YRf=WB6(#Gq*Gpwe6>n%=rXqs^>l* zh4wUDtUaeBa=-2xO~17gL}D6b*CT!UBgmnX2HQctlb9>|+_IBk`ys|}cVK;j2iF=} zS>n?-%GYEKcc;#cN*}U1fKQio%R9;={?G7DlkM zm3TxCmP9JpLuoNjd{AD`uzai9O9QMLA8`_sCbYy*=96zvV1xZ*j!W9|8n#j;TiR+D zf;96ywnJs*6&1&mlLJEohX=Bu4n4VRy;F&GsGfAow?7vyFB&&5N<}E&d}H+Cr!EGP zVg~^VtK&KgKIv;0yQ5p-s~f8?<3%po(H9kzUc`9vAu=Z&9azceb>77N-@ji)X*Wyb zJb0isO>^hNL=pccJ?O+$!+G8gBM1QCt5mw0DsymZs0~ z7f?O|W(mLn`0&Q$kSTIyazX>Bn{WRPMv)`ftXprTtEnLYR1Tf+PZOiIu$pefBdeE&OjgRZne4p!xto+n?n)T_5O5Z z6s}SUO2>Wt-^?OX&J%IPoN9$EKhe&|RNj2;mbX1&J*uNJ&rdb`lZ_eD$zxG8Ui zP4{E>v~_4e`S=u64FLJ0Gj>6Ntz%v$XJL-qijzoX1VY#INwHx?GIHL%5u*$M zmc|@o!l=O^H5Agt=lEqGgS)lSNMR}4U!J)&rr9p5i~x{L88+sE)K?Vaak z09clrgbt}8EDiOkO;%}sn_ZC^PQd1JO*sFW2Y`5D*-mXlUR3iuQ_uLa7kq6(zm%8J zFDq0ySJ!fsV?B@^%S{hEY%@3R(smBa4{8h`D;!vMim$|q72agUYY7BkQR#|QSsk4v zpHRc(eCJ%H#Wj)rNz%k(mIdqaL|ofY>&1_ZyoPXJ1wmn4uuF`CiufGA)Acg%XQE38RC|7~ zS8t$wh&N}V!jf|qkGIDQBU#Dc3Ki_qv*f;`YF){jC|)-=&bI9vzLp%#g=o}@x7RHK zC62SbBBZ-1!fwSy<-=!t<58>$8hKf{1q{f7kdVR|&wZW3n!N^je!ih0x9~$|OXl3+!?~7P!ar?*gv}pQoYnAj<4;*xa;p+ zw#PR^pS#KE-L1$^oLW_lHWXg%HwdUs=drn$)T!ILEP#QKfG)KQdVkVR)vB==I#w^7 zMl}%#>Z5-sj}GD5?Mv=w!l5BMI$XZt?ydXcM?Ypw-xf(hO-mC;s|6kk%1y8;RE=>-o( zdntu2^8AC=*QwyBUoWVBW<_E|i)6wnJT5|_J?F3CBY-sioSmL-dFLnRH4VWEc{3{bN)n$+rnlR8sUq~`IkTV#>O|MhuA}$-{5Z5m1@lr6fTFS8<97P< z6Tx)$h}p^R=3vCyr-LAIH?1m z4rKNwvm@qf6Zl!_i&QeKI(juiGKCASP9+Frn^a)FLh-i?KGCB`M30tK-#ZixTWkYP z0Qh-YTACkxH?Xl3_|ZY5e2PTOR566@y&4O9@b^z5CLk8UcI=e15uv!uq2s(YplCYd z7(pEXsyus)PdBHk6UfOx4UyR8mV82FM@&x&r`P!=z5bc49J~+rmXZrNXn08P z$FQ=TSrABzUwti^4~3X9<3e3D6T^4ca`U^phm4J7vbM;IS?SI15l>MJ)qo1y_n6<5O-OZN3*5|ET48^(ocf;#Q*3*jI;}3xDTEk<6R2 zK36M{s97P7=j5yngW(S`1<=%EpZG3fAPuho+D@nMQBulZe(y?kOk)(RCn83p&bv>IDJ@WS<=k5}kn=jf5&+TU0^ zEZzRnZ`=LNtJK>mMGeaW8zRyg;ebk>_YK7e!4VVDGtIN|72FBz4aUK!h4`Nv8z|HU z0yNYwzE8_HWIx@JaDEe9<^85E9a)w1>vUNt+67PWBWj4)?82hBe9%ROPr(U+;1EgK zRGqgmu)&5j1cz;1ftAz^{uk``oRfOv^bNdIKc`!~=QiuEr+F$ux=!9rpZ!wQaLS3r z;-mIZ^Y=nm9kpNpKl|d{+#0ceh;8*wtbzsr)UHg5Bp^2{RBjiympR+LF$8P(!>viI zE2kFB)r^sa!Tk1Vlc9;{S(Yl1iR;>#p2N&Z9B~%dCB&>ZUMW=H-Av|0@v;5 z`X|nzz+ zifv5Tb)I#4K8NxB7x*`ebwP$!>BgAUrtf+DKj(kOh;@H@(I5d%H~(XS*IXqzp8Mn1 zkzhERCqfdc6V(1$oFuHuH&noq(W~_yE5A4NG;k7!&CU9M;EWd-l1dufK#TPWmdrhhg* zk9pqta7zCpM%I$OtsLA81^pYe9sR4=f8Ke+nr@HRXlTqHQQm~y?!hcPA3GMoWA1U2 zI5DXAw|E4?0t5d&d3kzaH%)Q(@bQTGj1%UvIyY-| z{TsQ=U7UGOI#_-uxjSpQJ;Fb|cINXJgxvVi#*`ck)8mpQavDsdtou@zhptF0R^4=v z$kTPeVRebRJ#3Q!P{tAA4pg!;<&|iKsbN7I4y_v73+9QY+Rlb>l{WQViH-9czlr}h z;+BwgUT7;F|7*=U&#F*i5Q%@6TU^Y;!_%L=17IluaQ9-P9%Zem_ast6;nQXeXFWjY zSNO!v&i+ynEB5>3{|OC}I+iBw@E9N zklLZQ9Bd=d{#lMg=r_BjnSH4=SPVkIT1f3^_EqcCw&#lTumX7EO;oLY867=-{Qx-&?<=j9tLRr{jxAkdKG_Q~hn}t?Jw2rnq=J z|BpxG*b#M%o@;CjcPJjj$enE=Rvk*;j7nU=6*Wjn3bk@R48?!&?E~|xEy44#cJx^x zn&;5bxg!Th+NpM8bYR?QW9!R7?b=tah`IzskZ2OX0sPy;j+ZMZ#xw+`EG;w49GCkA z#E3tQ^7`j1P_#5m`Rfl}8g-rnbyc-`mG2kl(9`Vf3RVGz#v7>^WF4tq;yMuwxVobI zQ*UXlT63j$NttuFt-`xl+LoY2c$beI4EY0S$zDMGmiQx&*d7xm@C(KG0^ z80cBE?fof=@h^AYjuwG~yy2Jk8EhJ(&5A6<^lt7LSYj}wjw=eiE6uPU$uaZ@#afKb zOSG$`VBddW6BX<4P^+|-RnNstvzVcy?(KZgwswf_S3az=dU{hap6qeVVpZtXOG3Or z*9sGjgMJu4;i9Hvc+vz@j%6aPdNnneXIqbl%y?8$5Reisu)Vy*PON~B7n6QD0Za+d z6iMZpIFB9FO$iTpc-zuU!UJ|~v>uW$(!4j4H~Uz}_wtqH^&3xl89!C%iV=$$CTCa3 z5|H)56Wab#;_O7?_3jcl0qhwXKJe97N;#X44q3!G@5#}d(Y(DGHU8V%7a?~>DGsuK z`EHc^|I4$ZB1yKZQ$`xsmL>ZZKhv3(cD^>hdn#B1!Q{BcrbM1~HyFl)@nb=JLNOo- zSdTJ}+f;3pO;)-OC7dAK40n)Uaqc5<$UXn6IJ3-@2@5Xtw?BVm6IU9hMTwAO!5M#+Z2e|I0(+J9&=fc0M7dpc_f{67s}39XHT zjJLAZ3Y%zwoyXHsPUKdp1tF1Z>izE{kn1dO$lO7Jk+ za?o=N_uES5-YgTTunU=^t^&R;dVdDPg>ga}?P_k?`qI*xa3%@=DOs!m`I+v1V0P0O zhu7sHbFw^R(z`^;#U@l)(z|I{*mJXxiII)>Z$i%a-(BI%25|zEThuI(GV-#EVp}y5 zPf1cd-RVd0F}IsuX;jgmCrg&<^mKiWIR8CJ>b)yI5hws5XMb~k0E~Bp%zi~e#8RNM zro*D_@#8F-9HH--k!GDgROvs@R6djNUp|lNcPUX&9^ge}<^3Fw`bQArN`8g53pdoN zsK$(LO?XUrxQ4RU7xC)h*udk_oap6Dp6Gae86BLhE@_NOrhG7)T&Gj9mZ=pJfK?G& zJ^l}=^OB;qoi@N*)8l$~1@VS4F$8B;H6!0@g4eQkch+^<_wJg+7_1YVZ@`ZAI_4QpH3@R*E|9ck|CU zPgql~f)fbR!nmHCSfI}e@fmSr%Vp%nv;pr3`H1#Xm+fgq=tXHs39qoQ&chuqplLM3 z&JA>thB{^740#|)eYm%)C@8JE0+lLd(q$AC8Ib^-Z)2iDv9MKN3A0-v`ukfo9tH+q z?O$nVRG9WAhlJo1I%5<_2t)y3sgVb_L`D+Q&t(EHB1lKo+XQI>pe4E*yC@_nXecY= zlaf}wZ4MB0Sbm7NGHLeIJ(ct7ia&lDG?xU73W>rlAqZs^l~g1$@&7{>(?(|9@>^-WJkdl(R&aZH~M+~QnS7wQr_#=uY)Z2Vtq#Nnd`(~$YRJW zDcW_P0=Ik_WLVGCc>!QR)oj&Jkv#k%Tv%9GF`HpF2c|C#S^F|g@CoY* zw^S|6?+_A}?XACLVE?Wx%$5V!=&Pwoz!LZO_U!-m2Lkb3Jgo&eDe39y9ljM}r;8C| zC8i5wpeh+Mi`Rm~jt6MJW+s;me6T0aaG#}RNDgKn#^Po$?6+jS7V}QwJJ07T4SZH} z?SAgN-^9Tle>4O~Un~!v8wj&g_wIUvlWC&Ht)%z?bmj5+U;N4-notQ8{Z+dd(E>_H z<`1w5LH8PW-oc^7nisq{XkHFcK`MfhDF7vk$Jp>1bChJ!q0%Kj?_>m z@HNY^+jWQ}_7!SmP&hLG&fYc8hJ98SjBG?8?49lFN>cVE&RtHe*dPRdF(*+ved;FP z|t*FbL6*u4XJ{}LEcvzmNEP1VUjkr_`(OX885S|pya)$4?}{0Jbx#_eC3%Y~H; zc-Aa^<>6|UTqh}~oxp1N=XTH9-TU_s8U?_MHIPSs6~O?qXR)=*a+~&VX#aYRZ_&kl zHXclRnx4KC1!D%=aX^T1TOpv#Ufa#QC7Qj|as)ipd?`Ir>HD)!EZswqVikFvMIo8J zL}2P4DvgUE`-=luI;2-i7$En@8}Q(Yii-Nx);K1dJ(swXLx{+g$_&C?4N38gnfmJ0`n*T@S+w{`Z$*h%R|}$B#W$GNxz922FI-=@f98?O1DSB@>w@V+O=^QXPEi%>0~b|sDZ0V zXwArH=1s+lr+XY>JgI`r=KBce&GDt!e#7LE%wlZIeVir8to2`@?>OVBt$5u?r5zbP z85uokWAWQy3OS|?bG74Ba`N(~?BAIx$V{u~L?W?{52l2afOiqu-`~%^ZjZ1ZWxAsdfVoE+NrOZd>z)Cl2v4wa?MXDJm*TxANWGw8wVRGwboT zzu2xmZ^+G?X8QY)AJ1iDICSeg-3$y2G&D5K%~w}a;Fm4rwjw99zTdumqai>|E~UW^T@m*B#4k z_;C{mi3aNKBw-hfw<>uzlz(Q|z>>Cmt-Y=7RqjxV*U{L7ZT-~nup|sXssg?k5tpsk z&!0Dd93c_zmscGn$q4J&1%sWZU+;~+yvS5c5%W5GY8d380MpJtV%0wdVf(f!hZTGR z0$*QWQEu(O-y*{mdCw{+c>2wcQpkB@v^kKt`p1tKFJ72*#TGfP_J8^E94&kWKLnNqH^Ak2^5hBmGb=<;kg6UH29g8(S+v*a z@PM9CI#}i&|`Sp2k(knZZ-wORWesoOzkVPPo?_vd=S;ojwQGP{*d|< z>SU?Zqu~AS9$sIxFQ7R27FmN21U^vbI;+p-GQ>NxgNF+$h~rpI2vu1guqIYJpG!h^ zZeD>iUovCV$Ey$wLZ*|oTkvW1FjosWRm}BmRZJE}?$gX$?uB4<7Fx9~>~vY~zIuyr1~_grbuDb(uv}g&5Eg8a^uhSb46dM@ccN zA_FK$6l5$UB)!eeFOQHlNrEudQbQ>VJ-q;))dIQS35F*ivXz4q`C!z$V?5Y~%uz#S z6^V)4M9v9Bdd!zxe-8hGaaGM`%IvE|IVP}Uxhy|SUyM>EGKwvEN1{_Al^q45T}1nP zV;vyI!DQ?4u9tdzJ5{{m5v~n4t|_kZXp~O1WRI8+@dJ@7HDw_z;bt-z;Vq$iDS+-H zDcW%2+nB-%{`p$LgN)Ih@s!fKY+xJYSZmLGv*a(k)r_moRJ1;l2b;2!w2}ql zihTtu-7t}tu#H>lOadhLl~z4N>Y&9)o;JqMWt(F?Q%XK9{Y@KFaG5*B0osXRB|%8(S#6IpC2$ zsEl+(UmWwcbmiasd2u|W2)ldtF8_>YN#?)$tN0!OYbFc+jL4g-d*POyc8FPq!1jIP zqJa4U0$*-N=ogL^1`Wu@*8GT9X-9G;d7pnSf9<{EIws=Yw^}@Gtr=tEM z7(qrx7D6d%k-zc&{ngzXsDm5}ll9SOBMS5Y_GYTc(9g1ap*55W>irs&P9N7pe|rBN zATBUKnd#}wSU?+oN*3I)TWUTKsaE4&tLOHR6EAyc4FE=mTn$)kTM&gd4b6FQUDf}a z+~e&>paJx^O8IDEZtet_&^|K^k(=$0RR-e$ub$KP2uA4HAKEhQTJMXqlM~mCzl!#( zETv9WLTqeoWF!n0NX%KzsZlFYDnhOMUJK?#Xsu~Mus@RbCH!3ZBON=;QsO@dUZrKOB{*j++LWnb33Q#_sf zlY@&1dH%v=h!qtCSNw{J6CHUX41#_4k^Orz4r1K}d^jar1(9*5d|u1bqhxt(oZX|v z^u98{BF^-}k#?UW%oZ&s=2`K4~iH7F#g_`Sx~?c2A{3?75wo)t~^ zz)@XV>U%Gm4$~Q4N=s8W0*dXjEoa9>+&?f0Vdu2vrS#YmM?{;u%6B_!nW6W^b>s?K zz;ytH_fjI+6_?U}dn0wLos}ft|I<+TR7YJ&LeQw^vWWG#W#tyc19;m+MMXQhp?HEo zU_b5$l3OiT-EDmVOtzdHFeunk5N4f?KuAYwC`-p>pIXL-7ey$&ij#sdyD3_?>z7zQ zm?&GKhFi#9#_OJDTPaGy-2|?bSUTA-SsuhjdmXaP>c5$UbWX=_ zIZrr_ei*QWDpYHDSq-lKPO=ucVZDAA@()i39vrAPK*i1H)X3B14)DF&yF1X-8he*M zqy%6c=&-Z0+W2tmo}|m)h?loXnggn~wpQi^&I5Wc{oElI+c!Z|-shWz^_N0;`PyXx z+$Po-SFuP#J&)1gw=*Ehd=y10e)$FiX^0Wq{6Q{W=<}Hh%GRbPw%3)f1fN%4DW0=h zsfn$Hnm-(w|7Ms#YNZ7om@3C3-`}c29kGip8r9>z?`mb-j%@EL5 zpn!beSX;Aa;U~EdLIa?Yl9Ga~pyah4PGFy4NIF40%W|ZkiiixpYpr->H~*1Q=LY2a zLJHpLdz53z5!w&x;3sjK-b}KYeNIav_7x z;Z$~j9iuR81nmI=9uU!NX<=yvI|GS$KC#3OWquX*rDOx?CIQymHC7IbmsL*kIgN=t|9Bg&u!iU!_Ou$8x55_vVQ_p9bn=O zgH(>~iYey_(1)pEtsjo&(3u<0^>2#LCi;E;EC#eLn5w#ZhH~)U&-)N)_-XKDsk~xd zUXPPPNFj!M^JiQy#i=0!-q6;x*C#~QQCqsO3)QJ%_$eyGG=sv8hj+i7R!V(rWkk3( z4a3^$KC)LAZmP~=OG|@XixI1FI1Z!rJ<)!%{B%VIhxY0c?b9xYtroCW2|l>2oNxj; zq^m0rD`tc5G-3g95l&a7P9Op5?F&Pi(1U}6i%UxvTQ2pv+1Xn4-WR|Ytg~Ba8PSJR zBv4#)mFdrbvc&Bj4Q#{yl9%=rf93~bS#AlQQhKuwL&f;dkgxO^=c&V!rOU~^x-Q$r zj7MH(NpAJ~RrG;v;=ZsoIJvu{gxPI)yg)qP$3MH7FT z=w;qt8h5a@q}|cfBnIq}MS$!AR2(3R?O3cVEY4R7f`Au*d&k%j+j_-Y8)RYfjxF2SO`P8*Ip*MOxv-i z@L3Lv9#5vK=hpVEHiac6)tYq2mzI_$*w&rKnI@keRn&`)(_Y_^Dyya{p6JeSK9-e; zEMZY;?=NJUG@7t5tvGGNHyYWxtm3PXnk!ujJxo_oQLR2FRosZ&9^dG_*Y2ItCssiX z4g>UJR9-T!*vZ$Dl7Z}Z;6Tk)&!0~;)JYBlQu+=K4)Cx5BotcUaHd{rmL1Tzzt?6C&TFn~u3}e45I7?evB7B=&7r%tTgUJfyeo#+olD$E z%x$qP!dEPlZMRG)d~Ad?GsdP`dif!l)?~Lq50IrPd+(ZTpOOJ~7bE?j zB-KE@Ug=Ko%l5(uTFA^k;9lvIqADvZ)6x$>R)PTq9(q8cjA^MqBkngy$@pO_eM;~w9- zbt~A_>Z&VT%HY@*77`K?7M}4ww_Y-S`*vQV{!A@c(s%6YO?-+B(t0O1|NQw*>G$#D zB>1{^zVkc# z+2vFFf?QQ+sW~`oFdi__7KVVSB^^%0ruhXNQov~@{xI^ui|$`HJ09p;h1J+kl7GHl z=|f!4f*qF%sDn!XY7aY80jFm@I-9vG1kuKkx4PnqHl?-N!#$o*gl=L!Zy4q3 z7x5->0ND$v-3jJ1-{L1Hja(juI|K#-EJ6%1xkH417T{L5gI((BibwO`#;yaj^*opW zHQ+;d_O6MFgyfH}oloZA<8i5V{ns9EcAXvC-~!OM|5V}s8X+{{oUXV`SwFrYuGLJG z1!VIT6pY39c9ZBT-QS_c|?f>)%kJvqj zkl>1;-jzy$f^bWan39?4=U_7x+DQ;+K!aG^r^f%tm&N~k_p=8Y=Rdj^FTtpk9*w^>Ef<1yqiFF)Tp%Qm~9;Hc## zs=X_Y7vtBU{e+ka#Vn5AIy3oiy~_9=${cLd&pn*9U|JryFt#2=LB2o)li;Uv_K;D@ zG`8|G+~ZIkh2O=dimUb!{!GV32Y1rnjV*UCYoQh=Tc1f;AzawcRkhp?R`%}ParjWnx9i8vuACr2M-LbdccURQFlc9yGk&i(T1?C8kj ztiL=gl#-AL25F8YQfG0q7*DP3ug6e`D=E*(HAx+B?>hTeT(R9_kcM+lR0TdDE%nh* z+jQkh!KVCm6WU-VUWv>n%h;N*cZv7k|HZ{1ghE$%QL|75vO2<-1(7l)ACr(&FX z6M{)B>3!o&WstYKJ0k-_%{pxZCyE(vBkmN4F{FxO{A?st4|jbzsYMRiCSe%Wbrx7D z`m>3c@CRmkn67-O1S9{hlUXOkNh2}F?KgYl-xL_1qC0rdp!jG;_`qfFFZ=xmHsKqc zaWaGpNZ*mdkc%Z;NlPm(Z|<|8-2qtB7>z=pq=x{cZr^Nc`O4~2!rbun%85=gN`6AN z&>^)?-Z;YO$N1oGJ)9mHtH0=B^^jP- zp2lASHrfVWmf@+$`%dT}Cf(48c=*7fE~R9;RoAg*w_xJkjLb8V>f=Y%b#{=UPcAdM znwv+FUH+9KK}31BrO9MQDtZeg`jf6dt5xkYw5Rg><%raFkt}-Yae3+$xoL99={`!} ziD)o;(X>tcA30q2;cRhoetyy@CBz(J?+|!u)=3q;7r30_dpt41{Y;nYQy4w;wd%o6 z><@J=5+tZUCnC95&S}I3OQ%t)n^0H1_(>riAQiBgt6u-Em4Z_>^xZ>Bb1*Fp1E4-h zG5+Z)BlNUg(R(ifoRX-bR!R`ZD2FCQMIHK5p{SuyDCboZ5^`S@{SX0i`OGd-EeAq% zUR?e<9VSJClsd%5Puy+?6v)!V!}eo_$DHvwV->nw84Dt?YPtI? zHGV6k7@imtD;_Mw&-y?44m;;Yx2*GZf;tv(X4K4DZ66?@^y8x>3&DDps` zwgnD(wtyrp`_+DZN=pl&@5U`b>{yWz@`c@QYw+p0MB!3?!{tPRM|_DI#At^e{?%FG z#Qk_|nIxNnqn^-cDBlWS`mR0)ea|L2TAMJ*HHW5^Cw8Xpk65UgW_)~nVu7BD3IWaK zCHG}jI6xlEYal^)b^EUoZ&faQBBs2HjqRQ`$|Gufj?-XVK7AUwzP>F6T+IvnQ6n7s z3<7EuwT_!0-MJz4;ch5=*(arqV=;4ak~oEZ=3x;S6JqN*4|^G*+L|XcXf7pn@&Avn zw}6T=?Ak_01cQ(gQ9@uyX+fkz8392+KtM^6?(P^=z@eojM?g^Nt^r0$8l;L|<&N{OeYt1wI+|P5@j%#0g-%sLwnF|hMoI_m=dhk1{*g3PZzq|Z7Oqfc} z3R~_;vG1?WiOlKg%O!0FE>cTNK4vwTGLAZRZDd0)H^p~GQ%rkt&$T60bXr1NQ$}tR-NJgGka|!<@P>%!B4Tug9MzLx%9{4l+>simp{n2pEo}GjnG1Nz8Oa%(UstM z$Z5m#Mt26)>FG)Esgpjhm8IMA$-zXOEF)L8ErQfC7;s|ie(oT*&k8Jx9Cq^{1rd!!()iMSXuHBm@SCX@Y^J=Z@pg-V-8T zN@{y2xLr#j{4H`qP>?6}z9BX23}x8nH%kD`@tch}iDY2Tph923R}Z2$UmX(l_9^iZ z)R}lLSLO!WJbyAowaDdnjvj@<1fA<^=5~cc4688;jQt#U4C{K()C{1XLX6N zA-;*-$%YC%8Q5#`>k!$%yfjC92FbG@t_4#mf1QCTdv%kiEhFzk-Rk(AWd^Mtw(ox` zT7Wk}t}-e$DDT_r*sW#G8MShlOYkUbfpmDNM(sN8E!rvJCk!>{+M|kfY5Dd%hD|x? z0J7<~j~Y1H9FIJoo46X&HM~{ZCW^e6Wbm2qC4G@pRw1%}y|nv~;pdmS=IG{a{@7K) zReUtNb&V5d+4<+2fo>rL@RKV~&X+33g)c^EE3);H52aLbe%SXccM@MTFRGk9<#kVb z!E)1{v?6Ye`o3p+631EK77&AK25OVX4-}Q8mw4|j|2?sSCRvK>>K{ZJPuB~NuWo81 zw0wljv$GnDqy&HjU<7fy{}}eail}tWc7hQcxiSgQVBZEt30+{YH!Uz2ftddLE*KpxSQD3qeN9D)i_WI};(`Wq%)Sk;cITPAQkAZ}rS$MT;B_$FCl-4pi2<+J#kA`B|i?+VODKBInb{+^lO4hvz7afnrNC(0IM;|FP=F>f+h z>XpA050xzRcae&raa}gckIl0C=J!9|XNT(St_yB=Z!8bK5ZhnJ^-k5bmg_H{%)!~; z$HrF#P^jCKCqS~4>*C^GkFVur-Tc_~BkX!_)tQEdd%kIf?f|ElMfso3KUDO_-<_YP z>UX;whm|_%l`#)fLU-w$~1`O1`t!AB`W|$^>O2LsZ;VH?GCfUAx zR_&WUP`?kpcox=K1_@SEqoZGVPZr#7`H`-+y_zw>&UU&Hw= z8b{_6|B3{l(yzraa-1L$DS^@btqYj+jXeaJ#Z+hiz_y0|Nu*){8n+f-E?EWgL~wP#V)Sg%f)Q zeJlm#4XCRuI*0<@vGy>prhcY-{EYg95j@6A8Of8w!bh#^}{KJO^2 zu`yER+9ky~FMN?gAKzjQE^5B)OcF!SytGS~8yGbChPjp!5$M=%Phu&(BpBzTtpVYB zZI^jGOTDv}i~Q@{u-G(#^Ooy(hAQ(7*|pxxJ1 z;Xeno7Qaav-*-A9Ioqe4H&GxqLvO@qF?|itHzf4dvHVRURnXFN$3T>;7Ngy|p^HGM3)7#3 z3`?n?MN1wG)#TPoF>3w84z4goZ`4s5wpAkHvWX#C@@=5W7Dv`3^ zhNYH4O$tHcP9AOeou@`E35FZpM6(mT)%qiyzdC7@B&}=FRRU z?BwXn0qmS?OAblI_OfcKOeGv8L*IWHeAqvJRefM zSl;!$b9~F!-E_3_$Zt*wg*yIe{djUA?_fwt`IwYozrI5<8{}B>oB1Iyg-F5f{-ybb zs>=EzioR{+tBKNgf0^FJSL6z_C?{j9W`g>1St-iX?k%2jXkYCWH>-2mVJ<+!W7#6= zFSc@$99tXjoRh+TRAOouW)LE+3ij+0e^|~EKYu-+g9b7i5jbXY?>XOUzp?x=-^Vi4 z8$Y!M_QZZd+E{}m%4=Gxd|dr(%=gY=UC(Fq(%S(g-9Zye%M9VIWxnZy7qU&lpdWQL zP-qF=DT5PjUw{9j*V01A>|EESUt)NVziIVqU#C=b_a~H+)|MvM9QnTyz7=H_!OgH*9*X&#CDhiBgg=h01k>C~t-#o1};H zeqI}sTfS?`@-@QM1$Lg6y}3fL>&bp4tZ{8m%l5JgCy>{RHpT_jwGDYvF`HMyMsG{k zP_sXgM^;o+yi{c}S?Wn$Z=J%D?c(N>s&R*J#_c2YJOqxtw9_XW&g-5&g-M=ABs$6> z@h>8GQMtYmaJ~6nZ^)7Z)uQ%-ka@hgtY4;<`kzbqZO-h{UtT{c@*B89dGI~^GgkyArDro;$!ksT-tagJu9?h?C?8j+GoKtoauO9 z=C@e8PVj?oS-WQxT1xmB;c<~wP~qkrZR8aUX* zu-$$Bd>}U&L5g|c8k{kEp>6&6WXgQLZ)h~D=hjMgI-8y3>s#llO~%sN8l7os9anz8 z?U1X}zz(R~j%m-H6DS^9TQ=r7FUnp1RM}MxR8*)vQfky|NYi6C=RCbmnRL_kbO~jr zJuAG7azF1)9J+TiCz%3>UgCGRwAK6~^y0oh)TB2ReZ`}FHn_>7n-6}mvaLFMCOw;N=*+0`*N`nFul{&lT~ ztPs5KbhyM8U9c$9V+@7SEoV|jMA%uk)6=cQ5fWWCFdkpmGBTR@jBZ)#4=!z96Ruv1 zlea6^Db8IUg9&0Y{$Yc@re#e?=$9|7=detyZCtFh|RB&G%~bHc@_G-)4sib0{CMkKm-|0Wim?xs9iLe)GR>8;Ujf!}WL z@eS~^ym)kuPcOnK&hK#&r2%V_%HcoT*Q)2Q;zw?sJ-qgNW9Ye<=_d9bS_Lg48Cn=q zzOS8`H{m^qe3U!1rqjQ3_8n`%7P4Nq?>yUrzB!5}i(+OPh?*%+WOx1hnEsHwa*r7X zJF7t*hYP@f{+hgRFI;WtF8)D7vNpG2KvXiB7@jQlRETa1`1Ua~NCbQod+&OvT}>r6 z7tM9CA4&7sB}Tuy z$aiw!LrW+>F`+Tg&N6;Of3KY4`4vmf6Mcz~344zShJH)X5Mw?z+f;jPDl&JDjlMh& z*ydyTa_-4RIyL?_Kc4d8+5UxVS1SJ*d{u3Bust(YD$!B}!f?PmfrPYfB-5AL-#X-m zJiV4X>8GZyKG$jmVOmBakO*L;J>0xN!N+jQeegFG+Gz&mCT=<%E)mR1<3oH&sDdL= zEpwLI;)hpf>!;}p1V{+Bjmc z+3aF@(>R^2Xp3WLFvq&V(7TBFmDt@GwVDz4$k2iK`-elp-XNo&RQf=Pxzwm>ZdP0W zs^{SG0J_rF))tdM3tKPLKw0a*l84=qP9AdzMx}WVUL5_irVt>6!@yw?7_uZ(|G+hDkj~kK&(I| z@^%)TqV9s|XKi1IKiRJCM(3*q&g;D#nR)uzvb5*r(B@YQ7ewb{@Ngy47Y1-X7vC=Oc*aP|#4}PyhxtuT9sscakkda8q5PEkT*{_eo{-u9DQb0$7W!RMs z5YVE1^vuTpLVNR^@6W;6EA5NS==E)Mjp?Quays<)?`G-Gf`fk=$fKCQbc)zT+}1yi z#I>NYpb$kMO7;;E#DB)A<>bY)0w-&oR=)2m4akqL+Ir6N{3wV53hk z;rWaBJi2o1IyUYvqCQU}QC^H0KV6#A77qEg3k_NM>_Twg@%mf^LdZQ|-DyU^Mp%2t zb_Pa!scs3qKEO15jN~Ki&~BRA@>|7zP1w5CM>j#Rc8m{+>P5o`L=1UVbeFu0f40T# zIdO5*ng49-o~&^#varsVPt7j}2akk=upuGH#97Efk^w zM<9*xR89zVTt#)wa&}Coe7`Hfo7|T>q?51HI6&hYNBnpwSKmHdr@e?rAk44mis4p$ z;O~P zsl^vpfwU+l-xYVeb>C-x+T*&e4`@6e-gH>8ID>xHCC326k_iBJSpPV|y$}#+4wu&_ zaLMqa()EiygT{SnqC@;E5NM>K@k)bsIRjmrqG7Wm^8){_O8i`xQGd~Xvnn!YF=#KP zw${yK?l!t-7)N|f7G!2j11184xZB1g2n+*42BtAe*TcMxNkGW-)y_|cM?rY`edag& zR;nEr0)@EOyS{7GjwndA5pi|Ic9h7)=RYX35KKLBr|C>eVcz+uWkpOt8w^(~F!wpw z819wc$(;@}(3gqp(GeS3iMi16Ww|@c^zlY%uhf~%MG2)Q z=yg09IqPJx*=Vr64g#T5FIsG){LSYXNKOCH5DEW&^^=evAxRm`C;u!lCU`>jV!>1i^Vhe% z-*nK(__DQe%IUJ5E4Y5vC&+VreQyT%2jq$g7S z>bc`fd>|VS&P!;rY2yKJn$sx6S!9hHHT$IJ_WT@yuRhKxbPf?Mq(G}addWi3&W`kP z0#p_p0L5#U{O<21GO?TMU5)rm+v;iXSeMydN^4!1a^+-9`DyH|d6x|j``Gw6n0l$j zX}7Y!TXzj7>P=Qla_n{D`-4rDw(HzB`QNjTVUze36_`(?w9^Po&ifAi-7iioP z@>2CW<6kVbf^(0rWaxcd({_mZlGHhBc&|KEJ>mZOCqwvw$B9m%70hMfBd&I{mBdlZ{%V%v`&>re_aPd$4L)|`c5JZ_`TCwAItXIjd>xLO{|Go7MfP@(gbU5@un z$!S3^t}bNjbQ$qxR=%0^Ns-;;ZRyD?9~L{}EJsHhhqbid8(&}zGNa5GDR2B*$m6m9 zyPFyJKzgiiM+(Oo$cMI-Z<5N8Mpp?eK7&HNFz)%ZcgU-UJi!<1)iTf5_Mwk$d_@)+ z)Gr3k+7^pU`R|tLY+9UowpE{HHA>2=JUN-Q-*0~jRD#{`&9nQL z8}Aw6&1u-rK91mNn?j&CgA_4VG|%5Re+5RLC0*@{Bt@-fT|0&i9FnNx{euD6^QLRe z{jW--l04kj*LfQQfPkHJMRL6|EO7xv_;@x1tZ*(4L-02jrS2@FYre5nEIe=GeLlp) z+V1#4p%gwb+Y zM?+V8@8Bbk87Pvw*%Cf2PFH`#$7^^U&oVy7dq7Ie(j67?dcGr0Bukx)R;kpCgvy|{ zZFEx-ej(V>a$;OE+hb-ONfo->A%UZLkNCX5lq^u_zc-gCczvsWJkuc-ehZLQ0WF^% zu^PTIxGp{Q!W%bJ(aR32$IKB)^YX{V#)h#jZ>=QzAbe7zq)(ZSFWot2eDjmD1l(3e zem)P``ycGO=d{~>zFX$|-U(IKq8NK5`}G5EcgmE9Bgr9)6fz+Fr2@Bj&(KvB)-o7xMAx4wpg>^kIZXL@jOy7E%;h8&hz-nE)y*r|KwVCT~s+C zZ3zNt_}7_dyLxYf5Fc-0g23OA-0vi-s65WDs-d-fv^3DXmk@WV-O5u*MxJFSwnue> zsL&9m7ZvDHYwb7rCPsPp7NZ1@A9kkUWiJz?pw2^DZt8iSoU(ORf3cBgO*aNMrOz_C z``37c)3J16%ADEax-{u`XFQo^O23oE9|?htzvUPf<9)41w#F+he}~;mw&Fe;E|@fD zD%sE#|5)jUY{}dUQ~rp1F=FE+8OL(=QBzYj1RSiG+{qOD|m7q~@k z3~H1^He)7CG^h6&FL9h?$09SNj`Az#o$%JJNqHV`391hHkGubt z+IQMx)WN_X51=L|3nrhfF;6BV5I@WY!hri*ZF`xe@P!}fOqLt!=L8JMT2ZaMuWD{r zol=+u2adDi_-q|Xb2Jh-Rua$5|DYz%2G5S7#w&1fe7>#=Q>|OluS-?)3q=1O^vCm+H_AJ8JzYI0T9`r`_ocBbRfXAeK!7i83_9(-zLbMR@m(Xx%qG*8R=$9FOk z06~AA;nKcA*BU|<;kh3`&DXy%nl{2~;KKcSW}+Ex3mo{#v&*-=cf22YWJjat!VVqV z>rd0RM%;RQZlc5)bzDH(DNIu4GFNE?Fsp3fY-&%+tJl>-A$Mt0f{4}3zU^DRtu2aV zfMh%=>;qfMWp}QqKa^VZQ)Xp_TVCDkBik`^CiU(0i?yscWuCN$zE)eRNw@68{vO2W zO)G7$c{5mJkg~?paAeXMrPq??u{lOd3{^pQiVS+_4gi0Cu{_X=x8V$U*1yBjq;Z~O zHLi`N=FeC3Ivpk)WbJKvf?H&Vu2ptVJep5-NAKxGs_H-O1sC_AezcL=dZ5{uZ1egP z&tnB|+rhIbNs*?}D}5aa1wyNX%4ko^P30b9qsY4PbLT(+U$)-Y74-sGy#K>X0(Bph zx8QicHxPc7yu$})g36m^M|Mm6Y^qrO5m^<-zyuv@mHr?eJqQpc;5mw$Ye@cm(w%+p zdcwEt9LaT$G8!oc^++i|7yJcdocqKWydiXpj5u^BxAGx^b>gbmyo>JW^%^1IM2cdzd31^vGd+HklLQ@Wj}|B-$`)tL)B zCIk>~nU_r9oo;r$J1!|}!LDy;8?-NpM9f=NDyCKpJEdenM>gp%E!F%Vf7gzNJ%uV8 z=lb?%0!p_%7c7Y8Id@k+m%hSwR%FUoKFI2yAnZh(pPW@(MiYMDI>Rt2;F0ANbo(xR zmsXaNiL5pC6$SeOIJVMRm3dkh^g~jt;}sh`)~=6%hpQ!}X?=cAUf$4R)T+GxMe~r9 zt9PeXJ#VSBy+%vT8vDXW=SB7|@`q=JqMu#2dsA4;RVSrtn-WTeu~y68I7M`h-_xFr zUfp)XZ;@$!NwXq0r`P=<#iKSLjsk&EfbG{%VpySL$acD7nYh8^wZOC9+jZS?xv=Cq zpWqVZo1RLip}IGGbf+uktFh(#=A$3AK{DFt`-ZW|6lgT6M(VUtag+#z^2BL#kN{Wn zb;meWSU-yX&XY-fKe|tMIHAk_; zmVll0p&55Js=C?heVW-Y!mc_IU+)pM);d9izRx{>CyQ5d&Br@usVeWE0c$~)$#k0bRBR>C-tYsismaQ*;P+Ajd2gf~l zfK48EdsK@?STxnsOVeICE6WSi8M(mL70MCi(QMb|}cnB`*dNYQ?Ui zzesYu-!wr>x|{tzxR;)$^rdFZ+0{#LBJWM9tR$#=ctae-*A®_ml!F52nO3Z2wO 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 z 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 diff --git a/doc/visual-programming/source/widgets/data/images/Color-Example-Continuous.png b/doc/visual-programming/source/widgets/data/images/Color-Example-Continuous.png new file mode 100644 index 0000000000000000000000000000000000000000..d4aeec31ef809abfdcd6f7f255c2cbfddc463475 GIT binary patch literal 242347 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 z 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%0D{^ynOROv#C7zDC&Gk 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℞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

RMHfJ0GQK{{%w?s~utrINKPF=B(nTal)N0 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 z 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 literal 0 HcmV?d00001 diff --git a/doc/visual-programming/source/widgets/data/images/Color-Example-Discrete.png b/doc/visual-programming/source/widgets/data/images/Color-Example-Discrete.png new file mode 100644 index 0000000000000000000000000000000000000000..a68a69db838235566de0dc274cdc110d6251f240 GIT binary patch literal 230631 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 Y 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 diff --git a/doc/visual-programming/source/widgets/data/images/Color-palette-discrete.png b/doc/visual-programming/source/widgets/data/images/Color-palette-discrete.png deleted file mode 100644 index dc86629d8166eb9dad8695cfa115f08308204840..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16897 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%0A`aPRi#k@E2^0(K!B~OAv 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 diff --git a/doc/visual-programming/source/widgets/data/images/Color-stamped.png b/doc/visual-programming/source/widgets/data/images/Color-stamped.png index 1c0cd53abd17cd1051af6e16149850302ea3755d..295c8be7b9e293b6b4f1d124b96422d75af88db6 100644 GIT binary patch literal 22390 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 wKwKOXfgu{N6keigzO0lo9F!~g&Q literal 11985 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 From bee3df14271785048bf883c5db840f25bada0793 Mon Sep 17 00:00:00 2001 From: Ajda Pretnar Date: Mon, 3 Feb 2020 14:41:13 +0100 Subject: [PATCH 21/22] Trick build_docs to ignore explicitly unindexed images --- .travis/build_doc.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis/build_doc.sh b/.travis/build_doc.sh index c4cd39c0ad8..2fc9d3ea770 100644 --- a/.travis/build_doc.sh +++ b/.travis/build_doc.sh @@ -11,6 +11,9 @@ images="$(git diff --name-only origin/master..HEAD | echo "Checking if images are indexed:" while read image; do [ -f "$image" ] || continue + if [[ "$image" == *"_unindexed"* ]]; then + continue + fi imtype=$(identify -verbose "$image" | awk '/^ *Type: /{ print $2 }') echo "$image $imtype" if ! echo "$imtype" | grep -Eq '(Palette|Grayscale)'; then From e5b6949114eeb91a0b9c9755a4d5589ce168787b Mon Sep 17 00:00:00 2001 From: janezd Date: Fri, 7 Feb 2020 12:11:42 +0100 Subject: [PATCH 22/22] Color palettes: Fixes related to review --- Orange/data/tests/test_variable.py | 17 +++++++++++++++++ Orange/data/variable.py | 3 +++ Orange/widgets/utils/colorbrewer.py | 2 +- Orange/widgets/utils/colorpalette.py | 13 ++++--------- Orange/widgets/visualize/utils/owlegend.py | 2 +- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/Orange/data/tests/test_variable.py b/Orange/data/tests/test_variable.py index 286268f83e5..bb6f92533fe 100644 --- a/Orange/data/tests/test_variable.py +++ b/Orange/data/tests/test_variable.py @@ -369,6 +369,23 @@ def varcls_modified(self, name): var.ordered = True return var + def test_copy_checks_len_values(self): + var = DiscreteVariable("gender", values=["F", "M"]) + self.assertEqual(var.values, ["F", "M"]) + + self.assertRaises(ValueError, var.copy, values=["F", "M", "N"]) + self.assertRaises(ValueError, var.copy, values=["F"]) + self.assertRaises(ValueError, var.copy, values=[]) + + var2 = var.copy() + self.assertEqual(var2.values, ["F", "M"]) + + var2 = var.copy(values=None) + self.assertEqual(var2.values, ["F", "M"]) + + var2 = var.copy(values=["W", "M"]) + self.assertEqual(var2.values, ["W", "M"]) + @variabletest(ContinuousVariable) class TestContinuousVariable(VariableTest): diff --git a/Orange/data/variable.py b/Orange/data/variable.py index 8e59592d938..b12ae54c7ed 100644 --- a/Orange/data/variable.py +++ b/Orange/data/variable.py @@ -751,6 +751,9 @@ def __reduce__(self): __dict__ def copy(self, compute_value=None, *, name=None, values=None, **_): + if values is not None and len(values) != len(self.values): + raise ValueError( + "number of values must match the number of original values") return super().copy(compute_value=compute_value, name=name, values=values or self.values, ordered=self.ordered) diff --git a/Orange/widgets/utils/colorbrewer.py b/Orange/widgets/utils/colorbrewer.py index 46d6cd6008c..30267353f89 100644 --- a/Orange/widgets/utils/colorbrewer.py +++ b/Orange/widgets/utils/colorbrewer.py @@ -1,7 +1,7 @@ import warnings warnings.warn("Module 'colorbrewer' is obsolete and will be removed.\n" - "Use palettes from 'Orange.misccolorpalettes'.", + "Use palettes from 'Orange.widget.utils.colorpalettes'.", DeprecationWarning) colorSchemes = { diff --git a/Orange/widgets/utils/colorpalette.py b/Orange/widgets/utils/colorpalette.py index 590f62efbc3..e52c6a7167c 100644 --- a/Orange/widgets/utils/colorpalette.py +++ b/Orange/widgets/utils/colorpalette.py @@ -22,6 +22,10 @@ from Orange.widgets import gui from Orange.widgets.utils import colorbrewer +warnings.warn( + "Module colorpalette is obsolete; use colorpalettes", DeprecationWarning) + + DefaultRGBColors = [ (70, 190, 250), (237, 70, 47), (170, 242, 43), (245, 174, 50), (255, 255, 0), (255, 0, 255), (0, 255, 255), (128, 0, 255), (0, 128, 255), (255, 223, 128), @@ -392,12 +396,6 @@ def colorSchemaChange(self): class ColorPalleteListing(QDialog): def __init__(self, parent=None, windowTitle="Color Palette List", **kwargs): - # Import locally to prevent warning about using an obsolete module - # (This module itself is obsolete, but imported by its replacement, - # for backward compatibility, so importing colorbrewer globally would - # cause a warning.) - from Orange.widgets.utils import colorbrewer - super().__init__(parent, windowTitle=windowTitle, **kwargs) self.setLayout(QVBoxLayout()) self.layout().setContentsMargins(0, 0, 0, 0) @@ -1016,8 +1014,5 @@ def main(): # pragma: no cover a.exec() -warnings.warn( - "Module colorpalette is obsolete; use colorpalettes", DeprecationWarning) - if __name__ == "__main__": # pragma: no cover main() diff --git a/Orange/widgets/visualize/utils/owlegend.py b/Orange/widgets/visualize/utils/owlegend.py index 96ad391325e..0e27c2e410b 100644 --- a/Orange/widgets/visualize/utils/owlegend.py +++ b/Orange/widgets/visualize/utils/owlegend.py @@ -666,7 +666,7 @@ def set_domain(self, domain): def set_items(self, values): vals, palette = values if self.orientation == Qt.Vertical: - vals = reversed(vals) + vals = list(reversed(vals)) self._layout.addItem(ContinuousLegendItem( palette=palette, values=vals,