123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- from __future__ import annotations
- from abc import ABC, abstractmethod
- from typing import TYPE_CHECKING, Any
- import numpy as np
- if TYPE_CHECKING:
- import io
- from numpy.typing import ArrayLike
- from contourpy._contourpy import CoordinateArray, FillReturn, FillType, LineReturn, LineType
- class Renderer(ABC):
- """Abstract base class for renderers, defining the interface that they must implement."""
- def _grid_as_2d(self, x: ArrayLike, y: ArrayLike) -> tuple[CoordinateArray, CoordinateArray]:
- x = np.asarray(x)
- y = np.asarray(y)
- if x.ndim == 1:
- x, y = np.meshgrid(x, y)
- return x, y
- x = np.asarray(x)
- y = np.asarray(y)
- if x.ndim == 1:
- x, y = np.meshgrid(x, y)
- return x, y
- @abstractmethod
- def filled(
- self,
- filled: FillReturn,
- fill_type: FillType | str,
- ax: Any = 0,
- color: str = "C0",
- alpha: float = 0.7,
- ) -> None:
- pass
- @abstractmethod
- def grid(
- self,
- x: ArrayLike,
- y: ArrayLike,
- ax: Any = 0,
- color: str = "black",
- alpha: float = 0.1,
- point_color: str | None = None,
- quad_as_tri_alpha: float = 0,
- ) -> None:
- pass
- @abstractmethod
- def lines(
- self,
- lines: LineReturn,
- line_type: LineType | str,
- ax: Any = 0,
- color: str = "C0",
- alpha: float = 1.0,
- linewidth: float = 1,
- ) -> None:
- pass
- @abstractmethod
- def mask(
- self,
- x: ArrayLike,
- y: ArrayLike,
- z: ArrayLike | np.ma.MaskedArray[Any, Any],
- ax: Any = 0,
- color: str = "black",
- ) -> None:
- pass
- @abstractmethod
- def save(self, filename: str, transparent: bool = False) -> None:
- pass
- @abstractmethod
- def save_to_buffer(self) -> io.BytesIO:
- pass
- @abstractmethod
- def show(self) -> None:
- pass
- @abstractmethod
- def title(self, title: str, ax: Any = 0, color: str | None = None) -> None:
- pass
- @abstractmethod
- def z_values(
- self,
- x: ArrayLike,
- y: ArrayLike,
- z: ArrayLike,
- ax: Any = 0,
- color: str = "green",
- fmt: str = ".1f",
- quad_as_tri: bool = False,
- ) -> None:
- pass
|