prolint.plotting.base

Plotting base module.

This module provides the base classes and registry for ProLint plotters.

Classes

BasePlotter

Abstract base class for all ProLint plotters.

PlottingRegistry

Registry for plotter types.

Functions

plot(→ Tuple[matplotlib.figure.Figure, ...)

Create a plot from an AnalysisResult.

Module Contents

class prolint.plotting.base.BasePlotter[source]

Bases: abc.ABC

Abstract base class for all ProLint plotters.

Plotters convert AnalysisResult objects into matplotlib visualizations. Subclasses must implement the plot() method.

name[source]

Plotter name for registry lookup.

Type:

str

required_analysis[source]

Name of the analysis type this plotter expects.

Type:

str

description[source]

Human-readable description.

Type:

str

See also

PlottingRegistry

Registry for creating plotters by name

plot

Convenience function for plotting

name: str = 'base_plotter'[source]
required_analysis: str = ''[source]
description: str = 'Base plotter class'[source]
classmethod validate_result(result: prolint.analysis.base.AnalysisResult) None[source]

Validate that the AnalysisResult contains required data keys.

Parameters:

result (AnalysisResult) – Result to validate.

Raises:

ValueError – If result is missing required keys for this plotter.

classmethod plot(result: prolint.analysis.base.AnalysisResult, **kwargs) Tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]
Abstractmethod:

Create the plot from an AnalysisResult.

Parameters:
  • result (AnalysisResult) – Analysis result containing data to plot.

  • **kwargs (dict) – Plotter-specific options.

Returns:

Matplotlib figure and axes objects.

Return type:

tuple of (Figure, Axes)

class prolint.plotting.base.PlottingRegistry[source]

Registry for plotter types.

Manages registration and creation of plotter classes. All built-in plotters are registered automatically on import.

Examples

List available plotters:

>>> from prolint.plotting import PlottingRegistry
>>> PlottingRegistry.available()
['heatmap', 'density_map', 'survival_curve', ...]

Create a plot:

>>> fig, ax = PlottingRegistry.plot("heatmap", result)
classmethod register(name: str, plotter_class: Type[BasePlotter]) None[source]

Register a plotter class.

Parameters:
  • name (str) – Name to register under.

  • plotter_class (type) – Plotter class (must inherit from BasePlotter).

classmethod plot(name: str, result: prolint.analysis.base.AnalysisResult, **kwargs) Tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Create a plot using a registered plotter.

Parameters:
  • name (str) – Plotter type name.

  • result (AnalysisResult) – Analysis result to plot.

  • **kwargs (dict) – Plotter-specific options.

Returns:

Matplotlib figure and axes objects.

Return type:

tuple of (Figure, Axes)

Raises:

ValueError – If plotter name is not registered.

classmethod available() List[str][source]

List all available plot types.

Returns:

Registered plotter names.

Return type:

list of str

classmethod get_class(name: str) Type[BasePlotter][source]

Get a plotter class by name.

Parameters:

name (str) – Plotter name.

Returns:

Plotter class.

Return type:

type

classmethod get_info(name: str) Dict[str, str][source]

Get information about a plotter.

Parameters:

name (str) – Plotter name.

Returns:

Dict with name, required_analysis, and description keys.

Return type:

dict

classmethod list_plotters() List[Dict[str, str]][source]

List all plotters with their info.

Returns:

Info dict for each registered plotter.

Return type:

list of dict

prolint.plotting.base.plot(name: str, result: prolint.analysis.base.AnalysisResult, **kwargs) Tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Create a plot from an AnalysisResult.

Convenience function that delegates to PlottingRegistry.plot().

Parameters:
  • name (str) – Plotter type name.

  • result (AnalysisResult) – Analysis result to plot.

  • **kwargs (dict) – Plotter-specific options.

Returns:

Matplotlib figure and axes objects.

Return type:

tuple of (Figure, Axes)

Examples

>>> from prolint.plotting import plot
>>> fig, ax = plot("heatmap", timeseries_result)
>>> fig, ax = plot("survival_curve", kinetics_result)