491 lines
16 KiB
Python
491 lines
16 KiB
Python
|
from enum import Enum, IntEnum
|
||
|
import os
|
||
|
from matplotlib import (
|
||
|
cbook,
|
||
|
transforms,
|
||
|
widgets,
|
||
|
_api,
|
||
|
)
|
||
|
from matplotlib.artist import Artist
|
||
|
from matplotlib.axes import Axes
|
||
|
from matplotlib.backend_managers import ToolManager
|
||
|
from matplotlib.backend_tools import Cursors, ToolBase
|
||
|
from matplotlib.colorbar import Colorbar
|
||
|
from matplotlib.figure import Figure
|
||
|
from matplotlib.font_manager import FontProperties
|
||
|
from matplotlib.path import Path
|
||
|
from matplotlib.texmanager import TexManager
|
||
|
from matplotlib.text import Text
|
||
|
from matplotlib.transforms import Bbox, BboxBase, Transform, TransformedPath
|
||
|
|
||
|
from collections.abc import Callable, Iterable, Sequence
|
||
|
from typing import Any, IO, Literal, NamedTuple, TypeVar
|
||
|
from numpy.typing import ArrayLike
|
||
|
from .typing import ColorType, LineStyleType, CapStyleType, JoinStyleType
|
||
|
|
||
|
def register_backend(
|
||
|
format: str, backend: str | type[FigureCanvasBase], description: str | None = ...
|
||
|
) -> None: ...
|
||
|
def get_registered_canvas_class(format: str) -> type[FigureCanvasBase]: ...
|
||
|
|
||
|
class RendererBase:
|
||
|
def __init__(self) -> None: ...
|
||
|
def open_group(self, s: str, gid: str | None = ...) -> None: ...
|
||
|
def close_group(self, s: str) -> None: ...
|
||
|
def draw_path(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
path: Path,
|
||
|
transform: Transform,
|
||
|
rgbFace: ColorType | None = ...,
|
||
|
) -> None: ...
|
||
|
def draw_markers(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
marker_path: Path,
|
||
|
marker_trans: Transform,
|
||
|
path: Path,
|
||
|
trans: Transform,
|
||
|
rgbFace: ColorType | None = ...,
|
||
|
) -> None: ...
|
||
|
def draw_path_collection(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
master_transform: Transform,
|
||
|
paths: Sequence[Path],
|
||
|
all_transforms: Sequence[ArrayLike],
|
||
|
offsets: ArrayLike | Sequence[ArrayLike],
|
||
|
offset_trans: Transform,
|
||
|
facecolors: ColorType | Sequence[ColorType],
|
||
|
edgecolors: ColorType | Sequence[ColorType],
|
||
|
linewidths: float | Sequence[float],
|
||
|
linestyles: LineStyleType | Sequence[LineStyleType],
|
||
|
antialiaseds: bool | Sequence[bool],
|
||
|
urls: str | Sequence[str],
|
||
|
offset_position: Any,
|
||
|
) -> None: ...
|
||
|
def draw_quad_mesh(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
master_transform: Transform,
|
||
|
meshWidth,
|
||
|
meshHeight,
|
||
|
coordinates: ArrayLike,
|
||
|
offsets: ArrayLike | Sequence[ArrayLike],
|
||
|
offsetTrans: Transform,
|
||
|
facecolors: Sequence[ColorType],
|
||
|
antialiased: bool,
|
||
|
edgecolors: Sequence[ColorType] | ColorType | None,
|
||
|
) -> None: ...
|
||
|
def draw_gouraud_triangle(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
points: ArrayLike,
|
||
|
colors: ArrayLike,
|
||
|
transform: Transform,
|
||
|
) -> None: ...
|
||
|
def draw_gouraud_triangles(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
triangles_array: ArrayLike,
|
||
|
colors_array: ArrayLike,
|
||
|
transform: Transform,
|
||
|
) -> None: ...
|
||
|
def get_image_magnification(self) -> float: ...
|
||
|
def draw_image(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
x: float,
|
||
|
y: float,
|
||
|
im: ArrayLike,
|
||
|
transform: transforms.Affine2DBase | None = ...,
|
||
|
) -> None: ...
|
||
|
def option_image_nocomposite(self) -> bool: ...
|
||
|
def option_scale_image(self) -> bool: ...
|
||
|
def draw_tex(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
x: float,
|
||
|
y: float,
|
||
|
s: str,
|
||
|
prop: FontProperties,
|
||
|
angle: float,
|
||
|
*,
|
||
|
mtext: Text | None = ...
|
||
|
) -> None: ...
|
||
|
def draw_text(
|
||
|
self,
|
||
|
gc: GraphicsContextBase,
|
||
|
x: float,
|
||
|
y: float,
|
||
|
s: str,
|
||
|
prop: FontProperties,
|
||
|
angle: float,
|
||
|
ismath: bool | Literal["TeX"] = ...,
|
||
|
mtext: Text | None = ...,
|
||
|
) -> None: ...
|
||
|
def get_text_width_height_descent(
|
||
|
self, s: str, prop: FontProperties, ismath: bool | Literal["TeX"]
|
||
|
) -> tuple[float, float, float]: ...
|
||
|
def flipy(self) -> bool: ...
|
||
|
def get_canvas_width_height(self) -> tuple[float, float]: ...
|
||
|
def get_texmanager(self) -> TexManager: ...
|
||
|
def new_gc(self) -> GraphicsContextBase: ...
|
||
|
def points_to_pixels(self, points: ArrayLike) -> ArrayLike: ...
|
||
|
def start_rasterizing(self) -> None: ...
|
||
|
def stop_rasterizing(self) -> None: ...
|
||
|
def start_filter(self) -> None: ...
|
||
|
def stop_filter(self, filter_func) -> None: ...
|
||
|
|
||
|
class GraphicsContextBase:
|
||
|
def __init__(self) -> None: ...
|
||
|
def copy_properties(self, gc: GraphicsContextBase) -> None: ...
|
||
|
def restore(self) -> None: ...
|
||
|
def get_alpha(self) -> float: ...
|
||
|
def get_antialiased(self) -> int: ...
|
||
|
def get_capstyle(self) -> Literal["butt", "projecting", "round"]: ...
|
||
|
def get_clip_rectangle(self) -> Bbox | None: ...
|
||
|
def get_clip_path(
|
||
|
self,
|
||
|
) -> tuple[TransformedPath, Transform] | tuple[None, None]: ...
|
||
|
def get_dashes(self) -> tuple[float, ArrayLike | None]: ...
|
||
|
def get_forced_alpha(self) -> bool: ...
|
||
|
def get_joinstyle(self) -> Literal["miter", "round", "bevel"]: ...
|
||
|
def get_linewidth(self) -> float: ...
|
||
|
def get_rgb(self) -> tuple[float, float, float, float]: ...
|
||
|
def get_url(self) -> str | None: ...
|
||
|
def get_gid(self) -> int | None: ...
|
||
|
def get_snap(self) -> bool | None: ...
|
||
|
def set_alpha(self, alpha: float) -> None: ...
|
||
|
def set_antialiased(self, b: bool) -> None: ...
|
||
|
def set_capstyle(self, cs: CapStyleType) -> None: ...
|
||
|
def set_clip_rectangle(self, rectangle: Bbox | None) -> None: ...
|
||
|
def set_clip_path(self, path: TransformedPath | None) -> None: ...
|
||
|
def set_dashes(self, dash_offset: float, dash_list: ArrayLike | None) -> None: ...
|
||
|
def set_foreground(self, fg: ColorType, isRGBA: bool = ...) -> None: ...
|
||
|
def set_joinstyle(self, js: JoinStyleType) -> None: ...
|
||
|
def set_linewidth(self, w: float) -> None: ...
|
||
|
def set_url(self, url: str | None) -> None: ...
|
||
|
def set_gid(self, id: int | None) -> None: ...
|
||
|
def set_snap(self, snap: bool | None) -> None: ...
|
||
|
def set_hatch(self, hatch: str | None) -> None: ...
|
||
|
def get_hatch(self) -> str | None: ...
|
||
|
def get_hatch_path(self, density: float = ...) -> Path: ...
|
||
|
def get_hatch_color(self) -> ColorType: ...
|
||
|
def set_hatch_color(self, hatch_color: ColorType) -> None: ...
|
||
|
def get_hatch_linewidth(self) -> float: ...
|
||
|
def get_sketch_params(self) -> tuple[float, float, float] | None: ...
|
||
|
def set_sketch_params(
|
||
|
self,
|
||
|
scale: float | None = ...,
|
||
|
length: float | None = ...,
|
||
|
randomness: float | None = ...,
|
||
|
) -> None: ...
|
||
|
|
||
|
class TimerBase:
|
||
|
callbacks: list[tuple[Callable, tuple, dict[str, Any]]]
|
||
|
def __init__(
|
||
|
self,
|
||
|
interval: int | None = ...,
|
||
|
callbacks: list[tuple[Callable, tuple, dict[str, Any]]] | None = ...,
|
||
|
) -> None: ...
|
||
|
def __del__(self) -> None: ...
|
||
|
def start(self, interval: int | None = ...) -> None: ...
|
||
|
def stop(self) -> None: ...
|
||
|
@property
|
||
|
def interval(self) -> int: ...
|
||
|
@interval.setter
|
||
|
def interval(self, interval: int) -> None: ...
|
||
|
@property
|
||
|
def single_shot(self) -> bool: ...
|
||
|
@single_shot.setter
|
||
|
def single_shot(self, ss: bool) -> None: ...
|
||
|
def add_callback(self, func: Callable, *args, **kwargs) -> Callable: ...
|
||
|
def remove_callback(self, func: Callable, *args, **kwargs) -> None: ...
|
||
|
|
||
|
class Event:
|
||
|
name: str
|
||
|
canvas: FigureCanvasBase
|
||
|
def __init__(
|
||
|
self, name: str, canvas: FigureCanvasBase, guiEvent: Any | None = ...
|
||
|
) -> None: ...
|
||
|
|
||
|
@property
|
||
|
def guiEvent(self) -> Any: ...
|
||
|
|
||
|
class DrawEvent(Event):
|
||
|
renderer: RendererBase
|
||
|
def __init__(
|
||
|
self, name: str, canvas: FigureCanvasBase, renderer: RendererBase
|
||
|
) -> None: ...
|
||
|
|
||
|
class ResizeEvent(Event):
|
||
|
width: int
|
||
|
height: int
|
||
|
def __init__(self, name: str, canvas: FigureCanvasBase) -> None: ...
|
||
|
|
||
|
class CloseEvent(Event): ...
|
||
|
|
||
|
class LocationEvent(Event):
|
||
|
lastevent: Event | None
|
||
|
x: int
|
||
|
y: int
|
||
|
inaxes: Axes | None
|
||
|
xdata: float | None
|
||
|
ydata: float | None
|
||
|
def __init__(
|
||
|
self,
|
||
|
name: str,
|
||
|
canvas: FigureCanvasBase,
|
||
|
x: int,
|
||
|
y: int,
|
||
|
guiEvent: Any | None = ...,
|
||
|
*,
|
||
|
modifiers: Iterable[str] | None = ...,
|
||
|
) -> None: ...
|
||
|
|
||
|
class MouseButton(IntEnum):
|
||
|
LEFT: int
|
||
|
MIDDLE: int
|
||
|
RIGHT: int
|
||
|
BACK: int
|
||
|
FORWARD: int
|
||
|
|
||
|
class MouseEvent(LocationEvent):
|
||
|
button: MouseButton | Literal["up", "down"] | None
|
||
|
key: str | None
|
||
|
step: float
|
||
|
dblclick: bool
|
||
|
def __init__(
|
||
|
self,
|
||
|
name: str,
|
||
|
canvas: FigureCanvasBase,
|
||
|
x: int,
|
||
|
y: int,
|
||
|
button: MouseButton | Literal["up", "down"] | None = ...,
|
||
|
key: str | None = ...,
|
||
|
step: float = ...,
|
||
|
dblclick: bool = ...,
|
||
|
guiEvent: Any | None = ...,
|
||
|
*,
|
||
|
modifiers: Iterable[str] | None = ...,
|
||
|
) -> None: ...
|
||
|
|
||
|
class PickEvent(Event):
|
||
|
mouseevent: MouseEvent
|
||
|
artist: Artist
|
||
|
def __init__(
|
||
|
self,
|
||
|
name: str,
|
||
|
canvas: FigureCanvasBase,
|
||
|
mouseevent: MouseEvent,
|
||
|
artist: Artist,
|
||
|
guiEvent: Any | None = ...,
|
||
|
**kwargs
|
||
|
) -> None: ...
|
||
|
|
||
|
class KeyEvent(LocationEvent):
|
||
|
key: str | None
|
||
|
def __init__(
|
||
|
self,
|
||
|
name: str,
|
||
|
canvas: FigureCanvasBase,
|
||
|
key: str | None,
|
||
|
x: int = ...,
|
||
|
y: int = ...,
|
||
|
guiEvent: Any | None = ...,
|
||
|
) -> None: ...
|
||
|
|
||
|
class FigureCanvasBase:
|
||
|
required_interactive_framework: str | None
|
||
|
|
||
|
@_api.classproperty
|
||
|
def manager_class(cls) -> type[FigureManagerBase]: ...
|
||
|
events: list[str]
|
||
|
fixed_dpi: None | float
|
||
|
filetypes: dict[str, str]
|
||
|
|
||
|
@_api.classproperty
|
||
|
def supports_blit(cls) -> bool: ...
|
||
|
|
||
|
figure: Figure
|
||
|
manager: None | FigureManagerBase
|
||
|
widgetlock: widgets.LockDraw
|
||
|
mouse_grabber: None | Axes
|
||
|
toolbar: None | NavigationToolbar2
|
||
|
def __init__(self, figure: Figure | None = ...) -> None: ...
|
||
|
@property
|
||
|
def callbacks(self) -> cbook.CallbackRegistry: ...
|
||
|
@property
|
||
|
def button_pick_id(self) -> int: ...
|
||
|
@property
|
||
|
def scroll_pick_id(self) -> int: ...
|
||
|
@classmethod
|
||
|
def new_manager(cls, figure: Figure, num: int | str) -> FigureManagerBase: ...
|
||
|
def is_saving(self) -> bool: ...
|
||
|
def blit(self, bbox: BboxBase | None = ...) -> None: ...
|
||
|
def inaxes(self, xy: tuple[float, float]) -> Axes | None: ...
|
||
|
def grab_mouse(self, ax: Axes) -> None: ...
|
||
|
def release_mouse(self, ax: Axes) -> None: ...
|
||
|
def set_cursor(self, cursor: Cursors) -> None: ...
|
||
|
def draw(self, *args, **kwargs) -> None: ...
|
||
|
def draw_idle(self, *args, **kwargs) -> None: ...
|
||
|
@property
|
||
|
def device_pixel_ratio(self) -> float: ...
|
||
|
def get_width_height(self, *, physical: bool = ...) -> tuple[int, int]: ...
|
||
|
@classmethod
|
||
|
def get_supported_filetypes(cls) -> dict[str, str]: ...
|
||
|
@classmethod
|
||
|
def get_supported_filetypes_grouped(cls) -> dict[str, list[str]]: ...
|
||
|
def print_figure(
|
||
|
self,
|
||
|
filename: str | os.PathLike | IO,
|
||
|
dpi: float | None = ...,
|
||
|
facecolor: ColorType | Literal["auto"] | None = ...,
|
||
|
edgecolor: ColorType | Literal["auto"] | None = ...,
|
||
|
orientation: str = ...,
|
||
|
format: str | None = ...,
|
||
|
*,
|
||
|
bbox_inches: Literal["tight"] | Bbox | None = ...,
|
||
|
pad_inches: float | None = ...,
|
||
|
bbox_extra_artists: list[Artist] | None = ...,
|
||
|
backend: str | None = ...,
|
||
|
**kwargs
|
||
|
) -> Any: ...
|
||
|
@classmethod
|
||
|
def get_default_filetype(cls) -> str: ...
|
||
|
def get_default_filename(self) -> str: ...
|
||
|
_T = TypeVar("_T", bound=FigureCanvasBase)
|
||
|
def switch_backends(self, FigureCanvasClass: type[_T]) -> _T: ...
|
||
|
def mpl_connect(self, s: str, func: Callable[[Event], Any]) -> int: ...
|
||
|
def mpl_disconnect(self, cid: int) -> None: ...
|
||
|
def new_timer(
|
||
|
self,
|
||
|
interval: int | None = ...,
|
||
|
callbacks: list[tuple[Callable, tuple, dict[str, Any]]] | None = ...,
|
||
|
) -> TimerBase: ...
|
||
|
def flush_events(self) -> None: ...
|
||
|
def start_event_loop(self, timeout: float = ...) -> None: ...
|
||
|
def stop_event_loop(self) -> None: ...
|
||
|
|
||
|
def key_press_handler(
|
||
|
event: KeyEvent,
|
||
|
canvas: FigureCanvasBase | None = ...,
|
||
|
toolbar: NavigationToolbar2 | None = ...,
|
||
|
) -> None: ...
|
||
|
def button_press_handler(
|
||
|
event: MouseEvent,
|
||
|
canvas: FigureCanvasBase | None = ...,
|
||
|
toolbar: NavigationToolbar2 | None = ...,
|
||
|
) -> None: ...
|
||
|
|
||
|
class NonGuiException(Exception): ...
|
||
|
|
||
|
class FigureManagerBase:
|
||
|
canvas: FigureCanvasBase
|
||
|
num: int | str
|
||
|
key_press_handler_id: int | None
|
||
|
button_press_handler_id: int | None
|
||
|
toolmanager: ToolManager | None
|
||
|
toolbar: NavigationToolbar2 | ToolContainerBase | None
|
||
|
def __init__(self, canvas: FigureCanvasBase, num: int | str) -> None: ...
|
||
|
@classmethod
|
||
|
def create_with_canvas(
|
||
|
cls, canvas_class: type[FigureCanvasBase], figure: Figure, num: int | str
|
||
|
) -> FigureManagerBase: ...
|
||
|
@classmethod
|
||
|
def start_main_loop(cls) -> None: ...
|
||
|
@classmethod
|
||
|
def pyplot_show(cls, *, block: bool | None = ...) -> None: ...
|
||
|
def show(self) -> None: ...
|
||
|
def destroy(self) -> None: ...
|
||
|
def full_screen_toggle(self) -> None: ...
|
||
|
def resize(self, w: int, h: int) -> None: ...
|
||
|
def get_window_title(self) -> str: ...
|
||
|
def set_window_title(self, title: str) -> None: ...
|
||
|
|
||
|
cursors = Cursors
|
||
|
|
||
|
class _Mode(str, Enum):
|
||
|
NONE: str
|
||
|
PAN: str
|
||
|
ZOOM: str
|
||
|
|
||
|
class NavigationToolbar2:
|
||
|
toolitems: tuple[tuple[str, ...] | tuple[None, ...], ...]
|
||
|
canvas: FigureCanvasBase
|
||
|
mode: _Mode
|
||
|
def __init__(self, canvas: FigureCanvasBase) -> None: ...
|
||
|
def set_message(self, s: str) -> None: ...
|
||
|
def draw_rubberband(
|
||
|
self, event: Event, x0: float, y0: float, x1: float, y1: float
|
||
|
) -> None: ...
|
||
|
def remove_rubberband(self) -> None: ...
|
||
|
def home(self, *args) -> None: ...
|
||
|
def back(self, *args) -> None: ...
|
||
|
def forward(self, *args) -> None: ...
|
||
|
def mouse_move(self, event: MouseEvent) -> None: ...
|
||
|
def pan(self, *args) -> None: ...
|
||
|
|
||
|
class _PanInfo(NamedTuple):
|
||
|
button: MouseButton
|
||
|
axes: list[Axes]
|
||
|
cid: int
|
||
|
def press_pan(self, event: Event) -> None: ...
|
||
|
def drag_pan(self, event: Event) -> None: ...
|
||
|
def release_pan(self, event: Event) -> None: ...
|
||
|
def zoom(self, *args) -> None: ...
|
||
|
|
||
|
class _ZoomInfo(NamedTuple):
|
||
|
direction: Literal["in", "out"]
|
||
|
start_xy: tuple[float, float]
|
||
|
axes: list[Axes]
|
||
|
cid: int
|
||
|
cbar: Colorbar
|
||
|
def press_zoom(self, event: Event) -> None: ...
|
||
|
def drag_zoom(self, event: Event) -> None: ...
|
||
|
def release_zoom(self, event: Event) -> None: ...
|
||
|
def push_current(self) -> None: ...
|
||
|
subplot_tool: widgets.SubplotTool
|
||
|
def configure_subplots(self, *args): ...
|
||
|
def save_figure(self, *args) -> None: ...
|
||
|
def update(self) -> None: ...
|
||
|
def set_history_buttons(self) -> None: ...
|
||
|
|
||
|
class ToolContainerBase:
|
||
|
toolmanager: ToolManager
|
||
|
def __init__(self, toolmanager: ToolManager) -> None: ...
|
||
|
def add_tool(self, tool: ToolBase, group: str, position: int = ...) -> None: ...
|
||
|
def trigger_tool(self, name: str) -> None: ...
|
||
|
def add_toolitem(
|
||
|
self,
|
||
|
name: str,
|
||
|
group: str,
|
||
|
position: int,
|
||
|
image: str,
|
||
|
description: str,
|
||
|
toggle: bool,
|
||
|
) -> None: ...
|
||
|
def toggle_toolitem(self, name: str, toggled: bool) -> None: ...
|
||
|
def remove_toolitem(self, name: str) -> None: ...
|
||
|
def set_message(self, s: str) -> None: ...
|
||
|
|
||
|
class _Backend:
|
||
|
backend_version: str
|
||
|
FigureCanvas: type[FigureCanvasBase] | None
|
||
|
FigureManager: type[FigureManagerBase]
|
||
|
mainloop: None | Callable[[], Any]
|
||
|
@classmethod
|
||
|
def new_figure_manager(cls, num: int | str, *args, **kwargs) -> FigureManagerBase: ...
|
||
|
@classmethod
|
||
|
def new_figure_manager_given_figure(cls, num: int | str, figure: Figure) -> FigureManagerBase: ...
|
||
|
@classmethod
|
||
|
def draw_if_interactive(cls) -> None: ...
|
||
|
@classmethod
|
||
|
def show(cls, *, block: bool | None = ...) -> None: ...
|
||
|
@staticmethod
|
||
|
def export(cls) -> type[_Backend]: ...
|
||
|
|
||
|
class ShowBase(_Backend):
|
||
|
def __call__(self, block: bool | None = ...) -> None: ...
|