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.
		
		
		
		
		
			
		
			
				
	
	
		
			281 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			281 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Python
		
	
from collections.abc import Callable, Iterable, Sequence
 | 
						|
import datetime
 | 
						|
from typing import Any, Literal, overload
 | 
						|
from typing_extensions import Self  # < Py 3.11
 | 
						|
 | 
						|
import numpy as np
 | 
						|
from numpy.typing import ArrayLike
 | 
						|
 | 
						|
import matplotlib.artist as martist
 | 
						|
from matplotlib import cbook
 | 
						|
from matplotlib.axes import Axes
 | 
						|
from matplotlib.backend_bases import RendererBase
 | 
						|
from matplotlib.lines import Line2D
 | 
						|
from matplotlib.text import Text
 | 
						|
from matplotlib.ticker import Locator, Formatter
 | 
						|
from matplotlib.transforms import Transform, Bbox
 | 
						|
from matplotlib.typing import ColorType
 | 
						|
from matplotlib.units import ConversionInterface
 | 
						|
 | 
						|
 | 
						|
GRIDLINE_INTERPOLATION_STEPS: int
 | 
						|
 | 
						|
class Tick(martist.Artist):
 | 
						|
    axes: Axes
 | 
						|
    tick1line: Line2D
 | 
						|
    tick2line: Line2D
 | 
						|
    gridline: Line2D
 | 
						|
    label1: Text
 | 
						|
    label2: Text
 | 
						|
    def __init__(
 | 
						|
        self,
 | 
						|
        axes: Axes,
 | 
						|
        loc: float,
 | 
						|
        *,
 | 
						|
        size: float | None = ...,
 | 
						|
        width: float | None = ...,
 | 
						|
        color: ColorType | None = ...,
 | 
						|
        tickdir: Literal["in", "inout", "out"] | None = ...,
 | 
						|
        pad: float | None = ...,
 | 
						|
        labelsize: float | None = ...,
 | 
						|
        labelcolor: ColorType | None = ...,
 | 
						|
        labelfontfamily: str | Sequence[str] | None = ...,
 | 
						|
        zorder: float | None = ...,
 | 
						|
        gridOn: bool | None = ...,
 | 
						|
        tick1On: bool = ...,
 | 
						|
        tick2On: bool = ...,
 | 
						|
        label1On: bool = ...,
 | 
						|
        label2On: bool = ...,
 | 
						|
        major: bool = ...,
 | 
						|
        labelrotation: float = ...,
 | 
						|
        grid_color: ColorType | None = ...,
 | 
						|
        grid_linestyle: str | None = ...,
 | 
						|
        grid_linewidth: float | None = ...,
 | 
						|
        grid_alpha: float | None = ...,
 | 
						|
        **kwargs
 | 
						|
    ) -> None: ...
 | 
						|
    def get_tickdir(self) -> Literal["in", "inout", "out"]: ...
 | 
						|
    def get_tick_padding(self) -> float: ...
 | 
						|
    def get_children(self) -> list[martist.Artist]: ...
 | 
						|
    stale: bool
 | 
						|
    def set_pad(self, val: float) -> None: ...
 | 
						|
    def get_pad(self) -> None: ...
 | 
						|
    def get_loc(self) -> float: ...
 | 
						|
    def set_url(self, url: str | None) -> None: ...
 | 
						|
    def get_view_interval(self) -> ArrayLike: ...
 | 
						|
    def update_position(self, loc: float) -> None: ...
 | 
						|
 | 
						|
class XTick(Tick):
 | 
						|
    __name__: str
 | 
						|
    def __init__(self, *args, **kwargs) -> None: ...
 | 
						|
    stale: bool
 | 
						|
    def update_position(self, loc: float) -> None: ...
 | 
						|
    def get_view_interval(self) -> np.ndarray: ...
 | 
						|
 | 
						|
class YTick(Tick):
 | 
						|
    __name__: str
 | 
						|
    def __init__(self, *args, **kwargs) -> None: ...
 | 
						|
    stale: bool
 | 
						|
    def update_position(self, loc: float) -> None: ...
 | 
						|
    def get_view_interval(self) -> np.ndarray: ...
 | 
						|
 | 
						|
class Ticker:
 | 
						|
    def __init__(self) -> None: ...
 | 
						|
    @property
 | 
						|
    def locator(self) -> Locator | None: ...
 | 
						|
    @locator.setter
 | 
						|
    def locator(self, locator: Locator) -> None: ...
 | 
						|
    @property
 | 
						|
    def formatter(self) -> Formatter | None: ...
 | 
						|
    @formatter.setter
 | 
						|
    def formatter(self, formatter: Formatter) -> None: ...
 | 
						|
 | 
						|
class _LazyTickList:
 | 
						|
    def __init__(self, major: bool) -> None: ...
 | 
						|
    @overload
 | 
						|
    def __get__(self, instance: None, owner: None) -> Self: ...
 | 
						|
    @overload
 | 
						|
    def __get__(self, instance: Axis, owner: type[Axis]) -> list[Tick]: ...
 | 
						|
 | 
						|
class Axis(martist.Artist):
 | 
						|
    OFFSETTEXTPAD: int
 | 
						|
    isDefault_label: bool
 | 
						|
    axes: Axes
 | 
						|
    major: Ticker
 | 
						|
    minor: Ticker
 | 
						|
    callbacks: cbook.CallbackRegistry
 | 
						|
    label: Text
 | 
						|
    offsetText: Text
 | 
						|
    labelpad: float
 | 
						|
    pickradius: float
 | 
						|
    def __init__(self, axes, *, pickradius: float = ...,
 | 
						|
                 clear: bool = ...) -> None: ...
 | 
						|
    @property
 | 
						|
    def isDefault_majloc(self) -> bool: ...
 | 
						|
    @isDefault_majloc.setter
 | 
						|
    def isDefault_majloc(self, value: bool) -> None: ...
 | 
						|
    @property
 | 
						|
    def isDefault_majfmt(self) -> bool: ...
 | 
						|
    @isDefault_majfmt.setter
 | 
						|
    def isDefault_majfmt(self, value: bool) -> None: ...
 | 
						|
    @property
 | 
						|
    def isDefault_minloc(self) -> bool: ...
 | 
						|
    @isDefault_minloc.setter
 | 
						|
    def isDefault_minloc(self, value: bool) -> None: ...
 | 
						|
    @property
 | 
						|
    def isDefault_minfmt(self) -> bool: ...
 | 
						|
    @isDefault_minfmt.setter
 | 
						|
    def isDefault_minfmt(self, value: bool) -> None: ...
 | 
						|
    majorTicks: _LazyTickList
 | 
						|
    minorTicks: _LazyTickList
 | 
						|
    def get_remove_overlapping_locs(self) -> bool: ...
 | 
						|
    def set_remove_overlapping_locs(self, val: bool) -> None: ...
 | 
						|
    @property
 | 
						|
    def remove_overlapping_locs(self) -> bool: ...
 | 
						|
    @remove_overlapping_locs.setter
 | 
						|
    def remove_overlapping_locs(self, val: bool) -> None: ...
 | 
						|
    stale: bool
 | 
						|
    def set_label_coords(
 | 
						|
        self, x: float, y: float, transform: Transform | None = ...
 | 
						|
    ) -> None: ...
 | 
						|
    def get_transform(self) -> Transform: ...
 | 
						|
    def get_scale(self) -> str: ...
 | 
						|
    def limit_range_for_scale(
 | 
						|
        self, vmin: float, vmax: float
 | 
						|
    ) -> tuple[float, float]: ...
 | 
						|
    def get_children(self) -> list[martist.Artist]: ...
 | 
						|
    # TODO units
 | 
						|
    converter: Any
 | 
						|
    units: Any
 | 
						|
    def clear(self) -> None: ...
 | 
						|
    def reset_ticks(self) -> None: ...
 | 
						|
    def minorticks_on(self) -> None: ...
 | 
						|
    def minorticks_off(self) -> None: ...
 | 
						|
    def set_tick_params(
 | 
						|
        self,
 | 
						|
        which: Literal["major", "minor", "both"] = ...,
 | 
						|
        reset: bool = ...,
 | 
						|
        **kwargs
 | 
						|
    ) -> None: ...
 | 
						|
    def get_tick_params(
 | 
						|
        self, which: Literal["major", "minor"] = ...
 | 
						|
    ) -> dict[str, Any]: ...
 | 
						|
    def get_view_interval(self) -> tuple[float, float]: ...
 | 
						|
    def set_view_interval(
 | 
						|
        self, vmin: float, vmax: float, ignore: bool = ...
 | 
						|
    ) -> None: ...
 | 
						|
    def get_data_interval(self) -> tuple[float, float]: ...
 | 
						|
    def set_data_interval(
 | 
						|
        self, vmin: float, vmax: float, ignore: bool = ...
 | 
						|
    ) -> None: ...
 | 
						|
    def get_inverted(self) -> bool: ...
 | 
						|
    def set_inverted(self, inverted: bool) -> None: ...
 | 
						|
    def set_default_intervals(self) -> None: ...
 | 
						|
    def get_tightbbox(
 | 
						|
        self, renderer: RendererBase | None = ..., *, for_layout_only: bool = ...
 | 
						|
    ) -> Bbox | None: ...
 | 
						|
    def get_tick_padding(self) -> float: ...
 | 
						|
    def get_gridlines(self) -> list[Line2D]: ...
 | 
						|
    def get_label(self) -> Text: ...
 | 
						|
    def get_offset_text(self) -> Text: ...
 | 
						|
    def get_pickradius(self) -> float: ...
 | 
						|
    def get_majorticklabels(self) -> list[Text]: ...
 | 
						|
    def get_minorticklabels(self) -> list[Text]: ...
 | 
						|
    def get_ticklabels(
 | 
						|
        self, minor: bool = ..., which: Literal["major", "minor", "both"] | None = ...
 | 
						|
    ) -> list[Text]: ...
 | 
						|
    def get_majorticklines(self) -> list[Line2D]: ...
 | 
						|
    def get_minorticklines(self) -> list[Line2D]: ...
 | 
						|
    def get_ticklines(self, minor: bool = ...) -> list[Line2D]: ...
 | 
						|
    def get_majorticklocs(self) -> np.ndarray: ...
 | 
						|
    def get_minorticklocs(self) -> np.ndarray: ...
 | 
						|
    def get_ticklocs(self, *, minor: bool = ...) -> np.ndarray: ...
 | 
						|
    def get_ticks_direction(self, minor: bool = ...) -> np.ndarray: ...
 | 
						|
    def get_label_text(self) -> str: ...
 | 
						|
    def get_major_locator(self) -> Locator: ...
 | 
						|
    def get_minor_locator(self) -> Locator: ...
 | 
						|
    def get_major_formatter(self) -> Formatter: ...
 | 
						|
    def get_minor_formatter(self) -> Formatter: ...
 | 
						|
    def get_major_ticks(self, numticks: int | None = ...) -> list[Tick]: ...
 | 
						|
    def get_minor_ticks(self, numticks: int | None = ...) -> list[Tick]: ...
 | 
						|
    def grid(
 | 
						|
        self,
 | 
						|
        visible: bool | None = ...,
 | 
						|
        which: Literal["major", "minor", "both"] = ...,
 | 
						|
        **kwargs
 | 
						|
    ) -> None: ...
 | 
						|
    # TODO units
 | 
						|
    def update_units(self, data): ...
 | 
						|
    def have_units(self) -> bool: ...
 | 
						|
    def convert_units(self, x): ...
 | 
						|
    def get_converter(self) -> ConversionInterface | None: ...
 | 
						|
    def set_converter(self, converter: ConversionInterface) -> None: ...
 | 
						|
    def set_units(self, u) -> None: ...
 | 
						|
    def get_units(self): ...
 | 
						|
    def set_label_text(
 | 
						|
        self, label: str, fontdict: dict[str, Any] | None = ..., **kwargs
 | 
						|
    ) -> Text: ...
 | 
						|
    def set_major_formatter(
 | 
						|
        self, formatter: Formatter | str | Callable[[float, float], str]
 | 
						|
    ) -> None: ...
 | 
						|
    def set_minor_formatter(
 | 
						|
        self, formatter: Formatter | str | Callable[[float, float], str]
 | 
						|
    ) -> None: ...
 | 
						|
    def set_major_locator(self, locator: Locator) -> None: ...
 | 
						|
    def set_minor_locator(self, locator: Locator) -> None: ...
 | 
						|
    def set_pickradius(self, pickradius: float) -> None: ...
 | 
						|
    def set_ticklabels(
 | 
						|
        self,
 | 
						|
        labels: Iterable[str | Text],
 | 
						|
        *,
 | 
						|
        minor: bool = ...,
 | 
						|
        fontdict: dict[str, Any] | None = ...,
 | 
						|
        **kwargs
 | 
						|
    ) -> list[Text]: ...
 | 
						|
    def set_ticks(
 | 
						|
        self,
 | 
						|
        ticks: ArrayLike,
 | 
						|
        labels: Iterable[str] | None = ...,
 | 
						|
        *,
 | 
						|
        minor: bool = ...,
 | 
						|
        **kwargs
 | 
						|
    ) -> list[Tick]: ...
 | 
						|
    def axis_date(self, tz: str | datetime.tzinfo | None = ...) -> None: ...
 | 
						|
    def get_tick_space(self) -> int: ...
 | 
						|
    def get_label_position(self) -> Literal["top", "bottom"]: ...
 | 
						|
    def set_label_position(
 | 
						|
        self, position: Literal["top", "bottom", "left", "right"]
 | 
						|
    ) -> None: ...
 | 
						|
    def get_minpos(self) -> float: ...
 | 
						|
 | 
						|
class XAxis(Axis):
 | 
						|
    __name__: str
 | 
						|
    axis_name: str
 | 
						|
    def __init__(self, *args, **kwargs) -> None: ...
 | 
						|
    label_position: Literal["bottom", "top"]
 | 
						|
    stale: bool
 | 
						|
    def set_label_position(self, position: Literal["bottom", "top"]) -> None: ...  # type: ignore[override]
 | 
						|
    def set_ticks_position(
 | 
						|
        self, position: Literal["top", "bottom", "both", "default", "none"]
 | 
						|
    ) -> None: ...
 | 
						|
    def tick_top(self) -> None: ...
 | 
						|
    def tick_bottom(self) -> None: ...
 | 
						|
    def get_ticks_position(self) -> Literal["top", "bottom", "default", "unknown"]: ...
 | 
						|
    def get_tick_space(self) -> int: ...
 | 
						|
 | 
						|
class YAxis(Axis):
 | 
						|
    __name__: str
 | 
						|
    axis_name: str
 | 
						|
    def __init__(self, *args, **kwargs) -> None: ...
 | 
						|
    label_position: Literal["left", "right"]
 | 
						|
    stale: bool
 | 
						|
    def set_label_position(self, position: Literal["left", "right"]) -> None: ...  # type: ignore[override]
 | 
						|
    def set_offset_position(self, position: Literal["left", "right"]) -> None: ...
 | 
						|
    def set_ticks_position(
 | 
						|
        self, position: Literal["left", "right", "both", "default", "none"]
 | 
						|
    ) -> None: ...
 | 
						|
    def tick_right(self) -> None: ...
 | 
						|
    def tick_left(self) -> None: ...
 | 
						|
    def get_ticks_position(self) -> Literal["left", "right", "default", "unknown"]: ...
 | 
						|
    def get_tick_space(self) -> int: ...
 |