up follow livre
This commit is contained in:
parent
b4b4398bb0
commit
3a7a3849ae
12242 changed files with 2564461 additions and 6914 deletions
166
venv/lib/python3.13/site-packages/contourpy/util/renderer.py
Normal file
166
venv/lib/python3.13/site-packages/contourpy/util/renderer.py
Normal file
|
|
@ -0,0 +1,166 @@
|
|||
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."""
|
||||
|
||||
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
|
||||
|
||||
@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
|
||||
|
||||
def multi_filled(
|
||||
self,
|
||||
multi_filled: list[FillReturn],
|
||||
fill_type: FillType | str,
|
||||
ax: Any = 0,
|
||||
color: str | None = None,
|
||||
**kwargs: Any,
|
||||
) -> None:
|
||||
"""Plot multiple sets of filled contours on a single axes.
|
||||
|
||||
Args:
|
||||
multi_filled (list of filled contour arrays): Multiple filled contour sets as returned
|
||||
by :meth:`.ContourGenerator.multi_filled`.
|
||||
fill_type (FillType or str): Type of filled data as returned by
|
||||
:attr:`~.ContourGenerator.fill_type`, or string equivalent.
|
||||
ax (int or Renderer-specific axes or figure object, optional): Which axes to plot on,
|
||||
default ``0``.
|
||||
color (str or None, optional): If a string color then this same color is used for all
|
||||
filled contours. If ``None``, the default, then the filled contour sets use colors
|
||||
from the ``tab10`` colormap in order, wrapping around to the beginning if more than
|
||||
10 sets of filled contours are rendered.
|
||||
kwargs: All other keyword argument are passed on to
|
||||
:meth:`.Renderer.filled` unchanged.
|
||||
|
||||
.. versionadded:: 1.3.0
|
||||
"""
|
||||
if color is not None:
|
||||
kwargs["color"] = color
|
||||
for i, filled in enumerate(multi_filled):
|
||||
if color is None:
|
||||
kwargs["color"] = f"C{i % 10}"
|
||||
self.filled(filled, fill_type, ax, **kwargs)
|
||||
|
||||
def multi_lines(
|
||||
self,
|
||||
multi_lines: list[LineReturn],
|
||||
line_type: LineType | str,
|
||||
ax: Any = 0,
|
||||
color: str | None = None,
|
||||
**kwargs: Any,
|
||||
) -> None:
|
||||
"""Plot multiple sets of contour lines on a single axes.
|
||||
|
||||
Args:
|
||||
multi_lines (list of contour line arrays): Multiple contour line sets as returned by
|
||||
:meth:`.ContourGenerator.multi_lines`.
|
||||
line_type (LineType or str): Type of line data as returned by
|
||||
:attr:`~.ContourGenerator.line_type`, or string equivalent.
|
||||
ax (int or Renderer-specific axes or figure object, optional): Which axes to plot on,
|
||||
default ``0``.
|
||||
color (str or None, optional): If a string color then this same color is used for all
|
||||
lines. If ``None``, the default, then the line sets use colors from the ``tab10``
|
||||
colormap in order, wrapping around to the beginning if more than 10 sets of lines
|
||||
are rendered.
|
||||
kwargs: All other keyword argument are passed on to
|
||||
:meth:`Renderer.lines` unchanged.
|
||||
|
||||
.. versionadded:: 1.3.0
|
||||
"""
|
||||
if color is not None:
|
||||
kwargs["color"] = color
|
||||
for i, lines in enumerate(multi_lines):
|
||||
if color is None:
|
||||
kwargs["color"] = f"C{i % 10}"
|
||||
self.lines(lines, line_type, ax, **kwargs)
|
||||
|
||||
@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
|
||||
Loading…
Add table
Add a link
Reference in a new issue