153 lines
5.2 KiB
Python
153 lines
5.2 KiB
Python
from matplotlib.axes import Axes
|
|
from matplotlib.artist import Artist
|
|
from matplotlib.backend_bases import MouseEvent
|
|
from matplotlib.figure import Figure
|
|
from matplotlib.font_manager import FontProperties
|
|
from matplotlib.legend_handler import HandlerBase
|
|
from matplotlib.lines import Line2D
|
|
from matplotlib.offsetbox import (
|
|
DraggableOffsetBox,
|
|
)
|
|
from matplotlib.patches import FancyBboxPatch, Patch, Rectangle
|
|
from matplotlib.text import Text
|
|
from matplotlib.transforms import (
|
|
BboxBase,
|
|
Transform,
|
|
)
|
|
|
|
|
|
import pathlib
|
|
from collections.abc import Iterable
|
|
from typing import Any, Literal, overload
|
|
from .typing import ColorType
|
|
|
|
class DraggableLegend(DraggableOffsetBox):
|
|
legend: Legend
|
|
def __init__(
|
|
self, legend: Legend, use_blit: bool = ..., update: Literal["loc", "bbox"] = ...
|
|
) -> None: ...
|
|
def finalize_offset(self) -> None: ...
|
|
|
|
class Legend(Artist):
|
|
codes: dict[str, int]
|
|
zorder: float
|
|
prop: FontProperties
|
|
texts: list[Text]
|
|
legend_handles: list[Artist | None]
|
|
numpoints: int
|
|
markerscale: float
|
|
scatterpoints: int
|
|
borderpad: float
|
|
labelspacing: float
|
|
handlelength: float
|
|
handleheight: float
|
|
handletextpad: float
|
|
borderaxespad: float
|
|
columnspacing: float
|
|
shadow: bool
|
|
isaxes: bool
|
|
axes: Axes
|
|
parent: Axes | Figure
|
|
legendPatch: FancyBboxPatch
|
|
def __init__(
|
|
self,
|
|
parent: Axes | Figure,
|
|
handles: Iterable[Artist | tuple[Artist, ...]],
|
|
labels: Iterable[str],
|
|
*,
|
|
loc: str | tuple[float, float] | int | None = ...,
|
|
numpoints: int | None = ...,
|
|
markerscale: float | None = ...,
|
|
markerfirst: bool = ...,
|
|
reverse: bool = ...,
|
|
scatterpoints: int | None = ...,
|
|
scatteryoffsets: Iterable[float] | None = ...,
|
|
prop: FontProperties | dict[str, Any] | None = ...,
|
|
fontsize: float | str | None = ...,
|
|
labelcolor: ColorType
|
|
| Iterable[ColorType]
|
|
| Literal["linecolor", "markerfacecolor", "mfc", "markeredgecolor", "mec"]
|
|
| None = ...,
|
|
borderpad: float | None = ...,
|
|
labelspacing: float | None = ...,
|
|
handlelength: float | None = ...,
|
|
handleheight: float | None = ...,
|
|
handletextpad: float | None = ...,
|
|
borderaxespad: float | None = ...,
|
|
columnspacing: float | None = ...,
|
|
ncols: int = ...,
|
|
mode: Literal["expand"] | None = ...,
|
|
fancybox: bool | None = ...,
|
|
shadow: bool | dict[str, Any] | None = ...,
|
|
title: str | None = ...,
|
|
title_fontsize: float | None = ...,
|
|
framealpha: float | None = ...,
|
|
edgecolor: Literal["inherit"] | ColorType | None = ...,
|
|
facecolor: Literal["inherit"] | ColorType | None = ...,
|
|
bbox_to_anchor: BboxBase
|
|
| tuple[float, float]
|
|
| tuple[float, float, float, float]
|
|
| None = ...,
|
|
bbox_transform: Transform | None = ...,
|
|
frameon: bool | None = ...,
|
|
handler_map: dict[Artist | type, HandlerBase] | None = ...,
|
|
title_fontproperties: FontProperties | dict[str, Any] | None = ...,
|
|
alignment: Literal["center", "left", "right"] = ...,
|
|
ncol: int = ...,
|
|
draggable: bool = ...
|
|
) -> None: ...
|
|
def contains(self, mouseevent: MouseEvent) -> tuple[bool, dict[Any, Any]]: ...
|
|
def set_ncols(self, ncols: int) -> None: ...
|
|
@classmethod
|
|
def get_default_handler_map(cls) -> dict[type, HandlerBase]: ...
|
|
@classmethod
|
|
def set_default_handler_map(cls, handler_map: dict[type, HandlerBase]) -> None: ...
|
|
@classmethod
|
|
def update_default_handler_map(
|
|
cls, handler_map: dict[type, HandlerBase]
|
|
) -> None: ...
|
|
def get_legend_handler_map(self) -> dict[type, HandlerBase]: ...
|
|
@staticmethod
|
|
def get_legend_handler(
|
|
legend_handler_map: dict[type, HandlerBase], orig_handle: Any
|
|
) -> HandlerBase | None: ...
|
|
def get_children(self) -> list[Artist]: ...
|
|
def get_frame(self) -> Rectangle: ...
|
|
def get_lines(self) -> list[Line2D]: ...
|
|
def get_patches(self) -> list[Patch]: ...
|
|
def get_texts(self) -> list[Text]: ...
|
|
def set_alignment(self, alignment: Literal["center", "left", "right"]) -> None: ...
|
|
def get_alignment(self) -> Literal["center", "left", "right"]: ...
|
|
def set_loc(self, loc: str | tuple[float, float] | int | None = ...) -> None: ...
|
|
def set_title(
|
|
self, title: str, prop: FontProperties | str | pathlib.Path | None = ...
|
|
) -> None: ...
|
|
def get_title(self) -> Text: ...
|
|
def get_frame_on(self) -> bool: ...
|
|
def set_frame_on(self, b: bool) -> None: ...
|
|
draw_frame = set_frame_on
|
|
def get_bbox_to_anchor(self) -> BboxBase: ...
|
|
def set_bbox_to_anchor(
|
|
self,
|
|
bbox: BboxBase
|
|
| tuple[float, float]
|
|
| tuple[float, float, float, float]
|
|
| None,
|
|
transform: Transform | None = ...
|
|
) -> None: ...
|
|
@overload
|
|
def set_draggable(
|
|
self,
|
|
state: Literal[True],
|
|
use_blit: bool = ...,
|
|
update: Literal["loc", "bbox"] = ...,
|
|
) -> DraggableLegend: ...
|
|
@overload
|
|
def set_draggable(
|
|
self,
|
|
state: Literal[False],
|
|
use_blit: bool = ...,
|
|
update: Literal["loc", "bbox"] = ...,
|
|
) -> None: ...
|
|
def get_draggable(self) -> bool: ...
|