You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
412 lines
11 KiB
412 lines
11 KiB
"""
|
|
This type stub file was generated by pyright.
|
|
"""
|
|
|
|
import re
|
|
import numpy as np
|
|
from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence
|
|
from matplotlib import cbook, scale
|
|
from typing import Any, Literal, overload
|
|
from .typing import ColorType
|
|
from numpy.typing import ArrayLike
|
|
|
|
BASE_COLORS: dict[str, ColorType]
|
|
CSS4_COLORS: dict[str, ColorType]
|
|
TABLEAU_COLORS: dict[str, ColorType]
|
|
XKCD_COLORS: dict[str, ColorType]
|
|
class _ColorMapping(dict[str, ColorType]):
|
|
cache: dict[tuple[ColorType, float | None], tuple[float, float, float, float]]
|
|
def __init__(self, mapping) -> None:
|
|
...
|
|
|
|
def __setitem__(self, key, value) -> None:
|
|
...
|
|
|
|
def __delitem__(self, key) -> None:
|
|
...
|
|
|
|
|
|
|
|
def get_named_colors_mapping() -> _ColorMapping:
|
|
...
|
|
|
|
class ColorSequenceRegistry(Mapping):
|
|
def __init__(self) -> None:
|
|
...
|
|
|
|
def __getitem__(self, item: str) -> list[ColorType]:
|
|
...
|
|
|
|
def __iter__(self) -> Iterator[str]:
|
|
...
|
|
|
|
def __len__(self) -> int:
|
|
...
|
|
|
|
def register(self, name: str, color_list: Iterable[ColorType]) -> None:
|
|
...
|
|
|
|
def unregister(self, name: str) -> None:
|
|
...
|
|
|
|
|
|
|
|
_color_sequences: ColorSequenceRegistry = ...
|
|
def is_color_like(c: Any) -> bool:
|
|
...
|
|
|
|
def same_color(c1: ColorType, c2: ColorType) -> bool:
|
|
...
|
|
|
|
def to_rgba(c: ColorType, alpha: float | None = ...) -> tuple[float, float, float, float]:
|
|
...
|
|
|
|
def to_rgba_array(c: ColorType | ArrayLike, alpha: float | ArrayLike | None = ...) -> np.ndarray:
|
|
...
|
|
|
|
def to_rgb(c: ColorType) -> tuple[float, float, float]:
|
|
...
|
|
|
|
def to_hex(c: ColorType, keep_alpha: bool = ...) -> str:
|
|
...
|
|
|
|
cnames: dict[str, ColorType]
|
|
hexColorPattern: re.Pattern
|
|
rgb2hex = ...
|
|
hex2color = ...
|
|
class ColorConverter:
|
|
colors: _ColorMapping
|
|
cache: dict[tuple[ColorType, float | None], tuple[float, float, float, float]]
|
|
@staticmethod
|
|
def to_rgb(c: ColorType) -> tuple[float, float, float]:
|
|
...
|
|
|
|
@staticmethod
|
|
def to_rgba(c: ColorType, alpha: float | None = ...) -> tuple[float, float, float, float]:
|
|
...
|
|
|
|
@staticmethod
|
|
def to_rgba_array(c: ColorType | ArrayLike, alpha: float | ArrayLike | None = ...) -> np.ndarray:
|
|
...
|
|
|
|
|
|
|
|
colorConverter: ColorConverter
|
|
class Colormap:
|
|
name: str
|
|
N: int
|
|
colorbar_extend: bool
|
|
def __init__(self, name: str, N: int = ...) -> None:
|
|
...
|
|
|
|
@overload
|
|
def __call__(self, X: Sequence[float] | np.ndarray, alpha: ArrayLike | None = ..., bytes: bool = ...) -> np.ndarray:
|
|
...
|
|
|
|
@overload
|
|
def __call__(self, X: float, alpha: float | None = ..., bytes: bool = ...) -> tuple[float, float, float, float]:
|
|
...
|
|
|
|
@overload
|
|
def __call__(self, X: ArrayLike, alpha: ArrayLike | None = ..., bytes: bool = ...) -> tuple[float, float, float, float] | np.ndarray:
|
|
...
|
|
|
|
def __copy__(self) -> Colormap:
|
|
...
|
|
|
|
def __eq__(self, other: object) -> bool:
|
|
...
|
|
|
|
def get_bad(self) -> np.ndarray:
|
|
...
|
|
|
|
def set_bad(self, color: ColorType = ..., alpha: float | None = ...) -> None:
|
|
...
|
|
|
|
def get_under(self) -> np.ndarray:
|
|
...
|
|
|
|
def set_under(self, color: ColorType = ..., alpha: float | None = ...) -> None:
|
|
...
|
|
|
|
def get_over(self) -> np.ndarray:
|
|
...
|
|
|
|
def set_over(self, color: ColorType = ..., alpha: float | None = ...) -> None:
|
|
...
|
|
|
|
def set_extremes(self, *, bad: ColorType | None = ..., under: ColorType | None = ..., over: ColorType | None = ...) -> None:
|
|
...
|
|
|
|
def with_extremes(self, *, bad: ColorType | None = ..., under: ColorType | None = ..., over: ColorType | None = ...) -> Colormap:
|
|
...
|
|
|
|
def is_gray(self) -> bool:
|
|
...
|
|
|
|
def resampled(self, lutsize: int) -> Colormap:
|
|
...
|
|
|
|
def reversed(self, name: str | None = ...) -> Colormap:
|
|
...
|
|
|
|
def copy(self) -> Colormap:
|
|
...
|
|
|
|
|
|
|
|
class LinearSegmentedColormap(Colormap):
|
|
monochrome: bool
|
|
def __init__(self, name: str, segmentdata: dict[Literal["red", "green", "blue", "alpha"], Sequence[tuple[float, ...]]], N: int = ..., gamma: float = ...) -> None:
|
|
...
|
|
|
|
def set_gamma(self, gamma: float) -> None:
|
|
...
|
|
|
|
@staticmethod
|
|
def from_list(name: str, colors: ArrayLike, N: int = ..., gamma: float = ...) -> LinearSegmentedColormap:
|
|
...
|
|
|
|
def resampled(self, lutsize: int) -> LinearSegmentedColormap:
|
|
...
|
|
|
|
def reversed(self, name: str | None = ...) -> LinearSegmentedColormap:
|
|
...
|
|
|
|
|
|
|
|
class ListedColormap(Colormap):
|
|
monochrome: bool
|
|
colors: ArrayLike | ColorType
|
|
def __init__(self, colors: ArrayLike | ColorType, name: str = ..., N: int | None = ...) -> None:
|
|
...
|
|
|
|
def resampled(self, lutsize: int) -> ListedColormap:
|
|
...
|
|
|
|
def reversed(self, name: str | None = ...) -> ListedColormap:
|
|
...
|
|
|
|
|
|
|
|
class Normalize:
|
|
callbacks: cbook.CallbackRegistry
|
|
def __init__(self, vmin: float | None = ..., vmax: float | None = ..., clip: bool = ...) -> None:
|
|
...
|
|
|
|
@property
|
|
def vmin(self) -> float | None:
|
|
...
|
|
|
|
@vmin.setter
|
|
def vmin(self, value: float | None) -> None:
|
|
...
|
|
|
|
@property
|
|
def vmax(self) -> float | None:
|
|
...
|
|
|
|
@vmax.setter
|
|
def vmax(self, value: float | None) -> None:
|
|
...
|
|
|
|
@property
|
|
def clip(self) -> bool:
|
|
...
|
|
|
|
@clip.setter
|
|
def clip(self, value: bool) -> None:
|
|
...
|
|
|
|
@staticmethod
|
|
def process_value(value: ArrayLike) -> tuple[np.ma.MaskedArray, bool]:
|
|
...
|
|
|
|
@overload
|
|
def __call__(self, value: float, clip: bool | None = ...) -> float:
|
|
...
|
|
|
|
@overload
|
|
def __call__(self, value: np.ndarray, clip: bool | None = ...) -> np.ma.MaskedArray:
|
|
...
|
|
|
|
@overload
|
|
def __call__(self, value: ArrayLike, clip: bool | None = ...) -> ArrayLike:
|
|
...
|
|
|
|
@overload
|
|
def inverse(self, value: float) -> float:
|
|
...
|
|
|
|
@overload
|
|
def inverse(self, value: np.ndarray) -> np.ma.MaskedArray:
|
|
...
|
|
|
|
@overload
|
|
def inverse(self, value: ArrayLike) -> ArrayLike:
|
|
...
|
|
|
|
def autoscale(self, A: ArrayLike) -> None:
|
|
...
|
|
|
|
def autoscale_None(self, A: ArrayLike) -> None:
|
|
...
|
|
|
|
def scaled(self) -> bool:
|
|
...
|
|
|
|
|
|
|
|
class TwoSlopeNorm(Normalize):
|
|
def __init__(self, vcenter: float, vmin: float | None = ..., vmax: float | None = ...) -> None:
|
|
...
|
|
|
|
@property
|
|
def vcenter(self) -> float:
|
|
...
|
|
|
|
@vcenter.setter
|
|
def vcenter(self, value: float) -> None:
|
|
...
|
|
|
|
def autoscale_None(self, A: ArrayLike) -> None:
|
|
...
|
|
|
|
|
|
|
|
class CenteredNorm(Normalize):
|
|
def __init__(self, vcenter: float = ..., halfrange: float | None = ..., clip: bool = ...) -> None:
|
|
...
|
|
|
|
@property
|
|
def vcenter(self) -> float:
|
|
...
|
|
|
|
@vcenter.setter
|
|
def vcenter(self, vcenter: float) -> None:
|
|
...
|
|
|
|
@property
|
|
def halfrange(self) -> float:
|
|
...
|
|
|
|
@halfrange.setter
|
|
def halfrange(self, halfrange: float) -> None:
|
|
...
|
|
|
|
|
|
|
|
@overload
|
|
def make_norm_from_scale(scale_cls: type[scale.ScaleBase], base_norm_cls: type[Normalize], *, init: Callable | None = ...) -> type[Normalize]:
|
|
...
|
|
|
|
@overload
|
|
def make_norm_from_scale(scale_cls: type[scale.ScaleBase], base_norm_cls: None = ..., *, init: Callable | None = ...) -> Callable[[type[Normalize]], type[Normalize]]:
|
|
...
|
|
|
|
class FuncNorm(Normalize):
|
|
def __init__(self, functions: tuple[Callable, Callable], vmin: float | None = ..., vmax: float | None = ..., clip: bool = ...) -> None:
|
|
...
|
|
|
|
|
|
|
|
class LogNorm(Normalize):
|
|
...
|
|
|
|
|
|
class SymLogNorm(Normalize):
|
|
def __init__(self, linthresh: float, linscale: float = ..., vmin: float | None = ..., vmax: float | None = ..., clip: bool = ..., *, base: float = ...) -> None:
|
|
...
|
|
|
|
@property
|
|
def linthresh(self) -> float:
|
|
...
|
|
|
|
@linthresh.setter
|
|
def linthresh(self, value: float) -> None:
|
|
...
|
|
|
|
|
|
|
|
class AsinhNorm(Normalize):
|
|
def __init__(self, linear_width: float = ..., vmin: float | None = ..., vmax: float | None = ..., clip: bool = ...) -> None:
|
|
...
|
|
|
|
@property
|
|
def linear_width(self) -> float:
|
|
...
|
|
|
|
@linear_width.setter
|
|
def linear_width(self, value: float) -> None:
|
|
...
|
|
|
|
|
|
|
|
class PowerNorm(Normalize):
|
|
gamma: float
|
|
def __init__(self, gamma: float, vmin: float | None = ..., vmax: float | None = ..., clip: bool = ...) -> None:
|
|
...
|
|
|
|
|
|
|
|
class BoundaryNorm(Normalize):
|
|
boundaries: np.ndarray
|
|
N: int
|
|
Ncmap: int
|
|
extend: Literal["neither", "both", "min", "max"]
|
|
def __init__(self, boundaries: ArrayLike, ncolors: int, clip: bool = ..., *, extend: Literal["neither", "both", "min", "max"] = ...) -> None:
|
|
...
|
|
|
|
|
|
|
|
class NoNorm(Normalize):
|
|
...
|
|
|
|
|
|
def rgb_to_hsv(arr: ArrayLike) -> np.ndarray:
|
|
...
|
|
|
|
def hsv_to_rgb(hsv: ArrayLike) -> np.ndarray:
|
|
...
|
|
|
|
class LightSource:
|
|
azdeg: float
|
|
altdeg: float
|
|
hsv_min_val: float
|
|
hsv_max_val: float
|
|
hsv_min_sat: float
|
|
hsv_max_sat: float
|
|
def __init__(self, azdeg: float = ..., altdeg: float = ..., hsv_min_val: float = ..., hsv_max_val: float = ..., hsv_min_sat: float = ..., hsv_max_sat: float = ...) -> None:
|
|
...
|
|
|
|
@property
|
|
def direction(self) -> np.ndarray:
|
|
...
|
|
|
|
def hillshade(self, elevation: ArrayLike, vert_exag: float = ..., dx: float = ..., dy: float = ..., fraction: float = ...) -> np.ndarray:
|
|
...
|
|
|
|
def shade_normals(self, normals: np.ndarray, fraction: float = ...) -> np.ndarray:
|
|
...
|
|
|
|
def shade(self, data: ArrayLike, cmap: Colormap, norm: Normalize | None = ..., blend_mode: Literal["hsv", "overlay", "soft"] | Callable = ..., vmin: float | None = ..., vmax: float | None = ..., vert_exag: float = ..., dx: float = ..., dy: float = ..., fraction: float = ..., **kwargs) -> np.ndarray:
|
|
...
|
|
|
|
def shade_rgb(self, rgb: ArrayLike, elevation: ArrayLike, fraction: float = ..., blend_mode: Literal["hsv", "overlay", "soft"] | Callable = ..., vert_exag: float = ..., dx: float = ..., dy: float = ..., **kwargs) -> np.ndarray:
|
|
...
|
|
|
|
def blend_hsv(self, rgb: ArrayLike, intensity: ArrayLike, hsv_max_sat: float | None = ..., hsv_max_val: float | None = ..., hsv_min_val: float | None = ..., hsv_min_sat: float | None = ...) -> ArrayLike:
|
|
...
|
|
|
|
def blend_soft_light(self, rgb: np.ndarray, intensity: np.ndarray) -> np.ndarray:
|
|
...
|
|
|
|
def blend_overlay(self, rgb: np.ndarray, intensity: np.ndarray) -> np.ndarray:
|
|
...
|
|
|
|
|
|
|
|
def from_levels_and_colors(levels: Sequence[float], colors: Sequence[ColorType], extend: Literal["neither", "min", "max", "both"] = ...) -> tuple[ListedColormap, BoundaryNorm]:
|
|
...
|
|
|