Skip to content

Plotting

Create explicit plot objects for a generator, \(z\phi\), or the canonical extremal and export coefficient, domain, real-part, or phase visualizations. Finite plots remain visual evidence, not proofs of a full image domain.

geometric_function_atlas.plotting

Dependency-free sampled plots of finite Taylor polynomials.

Named generators can be displayed as the generator phi itself, as the normalized truncation z*phi, or as the canonical Ma-Minda extremal f_phi; supplied coefficients are a normalized polynomial. Every output is a sampled finite-truncation visualization, never a proof of the full image domain.

PLOT_KINDS: tuple[str, ...] = ('domain', 'coefficients', 'real-part', 'phase') module-attribute

PLOT_OBJECTS: tuple[str, ...] = ('phi', 'z*phi', 'f_phi') module-attribute

export_png = write_png_plot module-attribute

export_tikz = write_tikz_plot module-attribute

ConformalGrid dataclass

Sampled images of concentric circles and radial spokes.

rings: tuple[tuple[tuple[float, float], ...], ...] instance-attribute

spokes: tuple[tuple[tuple[float, float], ...], ...] instance-attribute

__init__(rings: tuple[tuple[tuple[float, float], ...], ...], spokes: tuple[tuple[tuple[float, float], ...], ...]) -> None

DomainPlotResult dataclass

Metadata for a generated standalone SVG domain plot.

coefficients holds the finite Taylor coefficients of the plotted object above its linear term (z^2, z^3, ...); constant and linear hold the degree-0 and degree-1 coefficients. object is the named-generator selector (phi, z*phi, or f_phi), or normalized_polynomial for supplied coefficients (constant 0, linear 1), which cannot carry a generator selector.

generator is the catalog key for a built-in definition. For a caller-supplied :class:Generator, it is the collision-safe identity user:<key>:<sha256> rather than the caller's potentially colliding key.

output: Path instance-attribute

generator: str | None instance-attribute

coefficients: tuple[float, ...] instance-attribute

approximation: str instance-attribute

object: str = 'z*phi' class-attribute instance-attribute

constant: float = 0.0 class-attribute instance-attribute

linear: float = 1.0 class-attribute instance-attribute

__init__(output: Path, generator: str | None, coefficients: tuple[float, ...], approximation: str, object: str = 'z*phi', constant: float = 0.0, linear: float = 1.0) -> None

PlotResult dataclass

Metadata for a generated SVG plot of any supported kind.

coefficients holds the finite Taylor coefficients of the plotted object above its linear term (z^2, z^3, ...); constant and linear hold the degree-0 and degree-1 coefficients. object is the named-generator selector (phi, z*phi, or f_phi), or normalized_polynomial for supplied coefficients.

output: Path instance-attribute

kind: str instance-attribute

generator: str | None instance-attribute

coefficients: tuple[float, ...] instance-attribute

approximation: str instance-attribute

object: str = 'z*phi' class-attribute instance-attribute

constant: float = 0.0 class-attribute instance-attribute

linear: float = 1.0 class-attribute instance-attribute

__init__(output: Path, kind: str, generator: str | None, coefficients: tuple[float, ...], approximation: str, object: str = 'z*phi', constant: float = 0.0, linear: float = 1.0) -> None

resolve_plot_object(value: str | None) -> str

Return the canonical plot-object selector; None means z*phi.

The selector names which function a named generator plot displays:

phi the generator itself, phi(z) = 1 + B_1*z + B_2*z^2 + ...; z*phi the normalized truncation z*phi(z) (the legacy default); f_phi the canonical Ma-Minda extremal f_phi(z) = z*exp(integral_0^z (phi(t) - 1)/t dt).

Unknown values are rejected instead of being silently reinterpreted.

generator_function_coefficients(generator: str | Generator, *, order: int) -> tuple[float, ...]

Return coefficients of the truncation f(z)=z*phi(z).

The returned tuple is (a2, a3, ...). This is a visual approximation, not a proof about the full analytic image domain.

plot_object_coefficients(generator: str | Generator, *, object: str | None = None, order: int = 12) -> tuple[sp.Expr, ...]

Exact coefficients of the selected plot object's Taylor truncation.

The tuple starts at degree 0 so the finite polynomial is fully represented: phi gives (1, B_1, ..., B_order); z*phi gives (0, 1, B_1, ..., B_order); f_phi gives (0, 1, a_2, ..., a_{order+1}) for the canonical Ma-Minda extremal f_phi(z) = z*exp(integral_0^z (phi(t) - 1)/t dt).

Coefficients stay exact (rational, algebraic, or transcendental) and are only converted to floats at the plotting boundary.

conformal_grid(coefficients: tuple[float, ...], *, constant: float = 0.0, linear: float = 1.0, rmax: float = 0.98, rings: int = 5, spokes: int = 12, samples: int = 480) -> ConformalGrid

Sample the conformal grid used by the Atlas website's domain figures.

coefficients holds the coefficients of z^2, z^3, ...; constant and linear supply the degree-0 and degree-1 terms, so the sampled polynomial is constant + linear*z + c_2*z^2 + .... The default constant=0, linear=1 is the normalized polynomial used by the legacy z*phi plots.

write_domain_plot(output: str | Path, *, generator: str | Generator | None = None, coefficients: tuple[float, ...] | None = None, order: int = 12, rmax: float = 0.98, rings: int = 5, spokes: int = 12, samples: int = 480, object: str | None = None) -> DomainPlotResult

Write a standalone SVG plot of the selected object's sampled image.

Exactly one of generator and coefficients is required. Named generators plot the finite Taylor polynomial of the selected object: the generator phi (constant term 1), the normalized truncation z*phi (the legacy default), or the canonical Ma-Minda extremal f_phi. Supplied coefficients represent the normalized polynomial f(z)=z+a2*z^2+a3*z^3+... directly and must not be combined with object.

write_tikz_plot(output: str | Path, *, generator: str | Generator | None = None, coefficients: tuple[float, ...] | None = None, order: int = 12, rmax: float = _DISK_RMAX, rings: int = 5, spokes: int = 12, samples: int = 480, object: str | None = None) -> DomainPlotResult

Write the website-compatible standalone TikZ conformal-grid export.

A non-default object adds an explicit % object: ... comment naming the selected object and its truncation, and marks the image of z=0 with the correct value; the legacy z*phi export keeps its original bytes.

write_png_plot(output: str | Path, *, generator: str | Generator | None = None, coefficients: tuple[float, ...] | None = None, order: int = 12, rmax: float = _DISK_RMAX, rings: int = 5, spokes: int = 12, samples: int = 480, width: int = 900, height: int = 700, object: str | None = None) -> DomainPlotResult

Write a dependency-free PNG conformal-grid export of the selected object.

write_coefficient_plot(output: str | Path, *, generator: str | Generator | None = None, coefficients: tuple[float, ...] | None = None, order: int = 12, object: str | None = None) -> PlotResult

Write an SVG bar chart of the selected object's coefficient magnitudes.

For phi the bars are |B_1|, ..., |B_order| (the constant term is not a bar); for z*phi and f_phi they are the normalized |a_2|, ..., |a_{order+1}|. Supplied coefficients are the normalized polynomial directly and must not be combined with object.

write_real_part_plot(output: str | Path, *, generator: str | Generator | None = None, coefficients: tuple[float, ...] | None = None, order: int = 12, grid: int = 64, rmax: float = _DISK_RMAX, object: str | None = None) -> PlotResult

Write an SVG heatmap of Re(z f'(z)/f(z)) for the selected object.

A numerical screen: sampled visualization, never a proof of the full starlikeness domain. For the generator phi the plotted quotient is z*phi'(z)/phi(z); it is not a starlikeness screen for normalized functions.

write_phase_plot(output: str | Path, *, generator: str | Generator | None = None, coefficients: tuple[float, ...] | None = None, order: int = 12, grid: int = 64, rmax: float = _DISK_RMAX, object: str | None = None) -> PlotResult

Write an SVG phase portrait of the selected object's Taylor polynomial.

Empirical visualization: hue encodes arg f(z) on the sampled disk.

write_plot(kind: str, output: str | Path, *, generator: str | Generator | None = None, coefficients: tuple[float, ...] | None = None, order: int = 12, grid: int = 64, rmax: float = _DISK_RMAX, rings: int = 5, spokes: int = 12, samples: int = 480, object: str | None = None) -> PlotResult | DomainPlotResult

Write an SVG plot of the requested kind.

Kinds: domain (conformal grid), coefficients (|a_n| bars), real-part (Re(z f'/f) heatmap), phase (phase portrait).

Named generators plot the selected object (phi, z*phi, f_phi; the legacy default is z*phi); supplied coefficients are the normalized polynomial and reject an explicit selector.