You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			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: ...
 |