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.
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.