237 lines
9.8 KiB
Python
237 lines
9.8 KiB
Python
|
from collections.abc import Callable, Iterable, Sequence
|
||
|
from typing import Literal
|
||
|
|
||
|
import numpy as np
|
||
|
from numpy.typing import ArrayLike, NDArray
|
||
|
|
||
|
from . import artist, cm, transforms
|
||
|
from .backend_bases import MouseEvent
|
||
|
from .artist import Artist
|
||
|
from .colors import Normalize, Colormap
|
||
|
from .lines import Line2D
|
||
|
from .path import Path
|
||
|
from .patches import Patch
|
||
|
from .ticker import Locator, Formatter
|
||
|
from .tri import Triangulation
|
||
|
from .typing import ColorType, LineStyleType, CapStyleType, JoinStyleType
|
||
|
|
||
|
class Collection(artist.Artist, cm.ScalarMappable):
|
||
|
def __init__(
|
||
|
self,
|
||
|
*,
|
||
|
edgecolors: ColorType | Sequence[ColorType] | None = ...,
|
||
|
facecolors: ColorType | Sequence[ColorType] | None = ...,
|
||
|
linewidths: float | Sequence[float] | None = ...,
|
||
|
linestyles: LineStyleType | Sequence[LineStyleType] = ...,
|
||
|
capstyle: CapStyleType | None = ...,
|
||
|
joinstyle: JoinStyleType | None = ...,
|
||
|
antialiaseds: bool | Sequence[bool] | None = ...,
|
||
|
offsets: tuple[float, float] | Sequence[tuple[float, float]] | None = ...,
|
||
|
offset_transform: transforms.Transform | None = ...,
|
||
|
norm: Normalize | None = ...,
|
||
|
cmap: Colormap | None = ...,
|
||
|
pickradius: float = ...,
|
||
|
hatch: str | None = ...,
|
||
|
urls: Sequence[str] | None = ...,
|
||
|
zorder: float = ...,
|
||
|
**kwargs
|
||
|
) -> None: ...
|
||
|
def get_paths(self) -> Sequence[Path]: ...
|
||
|
def set_paths(self, paths: Sequence[Path]) -> None: ...
|
||
|
def get_transforms(self) -> Sequence[transforms.Transform]: ...
|
||
|
def get_offset_transform(self) -> transforms.Transform: ...
|
||
|
def set_offset_transform(self, offset_transform: transforms.Transform) -> None: ...
|
||
|
def get_datalim(self, transData: transforms.Transform) -> transforms.Bbox: ...
|
||
|
def set_pickradius(self, pickradius: float) -> None: ...
|
||
|
def get_pickradius(self) -> float: ...
|
||
|
def set_urls(self, urls: Sequence[str | None]) -> None: ...
|
||
|
def get_urls(self) -> Sequence[str | None]: ...
|
||
|
def set_hatch(self, hatch: str) -> None: ...
|
||
|
def get_hatch(self) -> str: ...
|
||
|
def set_offsets(self, offsets: ArrayLike) -> None: ...
|
||
|
def get_offsets(self) -> ArrayLike: ...
|
||
|
def set_linewidth(self, lw: float | Sequence[float]) -> None: ...
|
||
|
def set_linestyle(self, ls: LineStyleType | Sequence[LineStyleType]) -> None: ...
|
||
|
def set_capstyle(self, cs: CapStyleType) -> None: ...
|
||
|
def get_capstyle(self) -> Literal["butt", "projecting", "round"] | None: ...
|
||
|
def set_joinstyle(self, js: JoinStyleType) -> None: ...
|
||
|
def get_joinstyle(self) -> Literal["miter", "round", "bevel"] | None: ...
|
||
|
def set_antialiased(self, aa: bool | Sequence[bool]) -> None: ...
|
||
|
def get_antialiased(self) -> NDArray[np.bool_]: ...
|
||
|
def set_color(self, c: ColorType | Sequence[ColorType]) -> None: ...
|
||
|
def set_facecolor(self, c: ColorType | Sequence[ColorType]) -> None: ...
|
||
|
def get_facecolor(self) -> ColorType | Sequence[ColorType]: ...
|
||
|
def get_edgecolor(self) -> ColorType | Sequence[ColorType]: ...
|
||
|
def set_edgecolor(self, c: ColorType | Sequence[ColorType]) -> None: ...
|
||
|
def set_alpha(self, alpha: float | Sequence[float] | None) -> None: ...
|
||
|
def get_linewidth(self) -> float | Sequence[float]: ...
|
||
|
def get_linestyle(self) -> LineStyleType | Sequence[LineStyleType]: ...
|
||
|
def update_scalarmappable(self) -> None: ...
|
||
|
def get_fill(self) -> bool: ...
|
||
|
def update_from(self, other: Artist) -> None: ...
|
||
|
|
||
|
class _CollectionWithSizes(Collection):
|
||
|
def get_sizes(self) -> np.ndarray: ...
|
||
|
def set_sizes(self, sizes: ArrayLike | None, dpi: float = ...) -> None: ...
|
||
|
|
||
|
class PathCollection(_CollectionWithSizes):
|
||
|
def __init__(
|
||
|
self, paths: Sequence[Path], sizes: ArrayLike | None = ..., **kwargs
|
||
|
) -> None: ...
|
||
|
def set_paths(self, paths: Sequence[Path]) -> None: ...
|
||
|
def get_paths(self) -> Sequence[Path]: ...
|
||
|
def legend_elements(
|
||
|
self,
|
||
|
prop: Literal["colors", "sizes"] = ...,
|
||
|
num: int | Literal["auto"] | ArrayLike | Locator = ...,
|
||
|
fmt: str | Formatter | None = ...,
|
||
|
func: Callable[[ArrayLike], ArrayLike] = ...,
|
||
|
**kwargs,
|
||
|
) -> tuple[list[Line2D], list[str]]: ...
|
||
|
|
||
|
class PolyCollection(_CollectionWithSizes):
|
||
|
def __init__(
|
||
|
self,
|
||
|
verts: Sequence[ArrayLike],
|
||
|
sizes: ArrayLike | None = ...,
|
||
|
*,
|
||
|
closed: bool = ...,
|
||
|
**kwargs
|
||
|
) -> None: ...
|
||
|
def set_verts(
|
||
|
self, verts: Sequence[ArrayLike | Path], closed: bool = ...
|
||
|
) -> None: ...
|
||
|
def set_paths(self, verts: Sequence[Path], closed: bool = ...) -> None: ...
|
||
|
def set_verts_and_codes(
|
||
|
self, verts: Sequence[ArrayLike | Path], codes: Sequence[int]
|
||
|
) -> None: ...
|
||
|
|
||
|
class RegularPolyCollection(_CollectionWithSizes):
|
||
|
def __init__(
|
||
|
self, numsides: int, *, rotation: float = ..., sizes: ArrayLike = ..., **kwargs
|
||
|
) -> None: ...
|
||
|
def get_numsides(self) -> int: ...
|
||
|
def get_rotation(self) -> float: ...
|
||
|
|
||
|
class StarPolygonCollection(RegularPolyCollection): ...
|
||
|
class AsteriskPolygonCollection(RegularPolyCollection): ...
|
||
|
|
||
|
class LineCollection(Collection):
|
||
|
def __init__(
|
||
|
self, segments: Sequence[ArrayLike], *, zorder: float = ..., **kwargs
|
||
|
) -> None: ...
|
||
|
def set_segments(self, segments: Sequence[ArrayLike] | None) -> None: ...
|
||
|
def set_verts(self, segments: Sequence[ArrayLike] | None) -> None: ...
|
||
|
def set_paths(self, segments: Sequence[ArrayLike] | None) -> None: ... # type: ignore[override]
|
||
|
def get_segments(self) -> list[np.ndarray]: ...
|
||
|
def set_color(self, c: ColorType | Sequence[ColorType]) -> None: ...
|
||
|
def set_colors(self, c: ColorType | Sequence[ColorType]) -> None: ...
|
||
|
def set_gapcolor(self, gapcolor: ColorType | Sequence[ColorType] | None) -> None: ...
|
||
|
def get_color(self) -> ColorType | Sequence[ColorType]: ...
|
||
|
def get_colors(self) -> ColorType | Sequence[ColorType]: ...
|
||
|
def get_gapcolor(self) -> ColorType | Sequence[ColorType] | None: ...
|
||
|
|
||
|
|
||
|
class EventCollection(LineCollection):
|
||
|
def __init__(
|
||
|
self,
|
||
|
positions: ArrayLike,
|
||
|
orientation: Literal["horizontal", "vertical"] = ...,
|
||
|
*,
|
||
|
lineoffset: float = ...,
|
||
|
linelength: float = ...,
|
||
|
linewidth: float | Sequence[float] | None = ...,
|
||
|
color: ColorType | Sequence[ColorType] | None = ...,
|
||
|
linestyle: LineStyleType | Sequence[LineStyleType] = ...,
|
||
|
antialiased: bool | Sequence[bool] | None = ...,
|
||
|
**kwargs
|
||
|
) -> None: ...
|
||
|
def get_positions(self) -> list[float]: ...
|
||
|
def set_positions(self, positions: Sequence[float] | None) -> None: ...
|
||
|
def add_positions(self, position: Sequence[float] | None) -> None: ...
|
||
|
def extend_positions(self, position: Sequence[float] | None) -> None: ...
|
||
|
def append_positions(self, position: Sequence[float] | None) -> None: ...
|
||
|
def is_horizontal(self) -> bool: ...
|
||
|
def get_orientation(self) -> Literal["horizontal", "vertical"]: ...
|
||
|
def switch_orientation(self) -> None: ...
|
||
|
def set_orientation(
|
||
|
self, orientation: Literal["horizontal", "vertical"]
|
||
|
) -> None: ...
|
||
|
def get_linelength(self) -> float | Sequence[float]: ...
|
||
|
def set_linelength(self, linelength: float | Sequence[float]) -> None: ...
|
||
|
def get_lineoffset(self) -> float: ...
|
||
|
def set_lineoffset(self, lineoffset: float) -> None: ...
|
||
|
def get_linewidth(self) -> float: ...
|
||
|
def get_linewidths(self) -> Sequence[float]: ...
|
||
|
def get_color(self) -> ColorType: ...
|
||
|
|
||
|
class CircleCollection(_CollectionWithSizes):
|
||
|
def __init__(self, sizes: float | ArrayLike, **kwargs) -> None: ...
|
||
|
|
||
|
class EllipseCollection(Collection):
|
||
|
def __init__(
|
||
|
self,
|
||
|
widths: ArrayLike,
|
||
|
heights: ArrayLike,
|
||
|
angles: ArrayLike,
|
||
|
*,
|
||
|
units: Literal[
|
||
|
"points", "inches", "dots", "width", "height", "x", "y", "xy"
|
||
|
] = ...,
|
||
|
**kwargs
|
||
|
) -> None: ...
|
||
|
def set_widths(self, widths: ArrayLike) -> None: ...
|
||
|
def set_heights(self, heights: ArrayLike) -> None: ...
|
||
|
def set_angles(self, angles: ArrayLike) -> None: ...
|
||
|
def get_widths(self) -> ArrayLike: ...
|
||
|
def get_heights(self) -> ArrayLike: ...
|
||
|
def get_angles(self) -> ArrayLike: ...
|
||
|
|
||
|
class PatchCollection(Collection):
|
||
|
def __init__(
|
||
|
self, patches: Iterable[Patch], *, match_original: bool = ..., **kwargs
|
||
|
) -> None: ...
|
||
|
def set_paths(self, patches: Iterable[Patch]) -> None: ... # type: ignore[override]
|
||
|
|
||
|
class TriMesh(Collection):
|
||
|
def __init__(self, triangulation: Triangulation, **kwargs) -> None: ...
|
||
|
def get_paths(self) -> list[Path]: ...
|
||
|
# Parent class has an argument, perhaps add a noop arg?
|
||
|
def set_paths(self) -> None: ... # type: ignore[override]
|
||
|
@staticmethod
|
||
|
def convert_mesh_to_paths(tri: Triangulation) -> list[Path]: ...
|
||
|
|
||
|
class _MeshData:
|
||
|
def __init__(
|
||
|
self,
|
||
|
coordinates: ArrayLike,
|
||
|
*,
|
||
|
shading: Literal["flat", "gouraud"] = ...,
|
||
|
) -> None: ...
|
||
|
def set_array(self, A: ArrayLike | None) -> None: ...
|
||
|
def get_coordinates(self) -> ArrayLike: ...
|
||
|
def get_facecolor(self) -> ColorType | Sequence[ColorType]: ...
|
||
|
def get_edgecolor(self) -> ColorType | Sequence[ColorType]: ...
|
||
|
|
||
|
class QuadMesh(_MeshData, Collection):
|
||
|
def __init__(
|
||
|
self,
|
||
|
coordinates: ArrayLike,
|
||
|
*,
|
||
|
antialiased: bool = ...,
|
||
|
shading: Literal["flat", "gouraud"] = ...,
|
||
|
**kwargs
|
||
|
) -> None: ...
|
||
|
def get_paths(self) -> list[Path]: ...
|
||
|
# Parent class has an argument, perhaps add a noop arg?
|
||
|
def set_paths(self) -> None: ... # type: ignore[override]
|
||
|
def get_datalim(self, transData: transforms.Transform) -> transforms.Bbox: ...
|
||
|
def get_cursor_data(self, event: MouseEvent) -> float: ...
|
||
|
|
||
|
class PolyQuadMesh(_MeshData, PolyCollection):
|
||
|
def __init__(
|
||
|
self,
|
||
|
coordinates: ArrayLike,
|
||
|
**kwargs
|
||
|
) -> None: ...
|