mpl_plotter Module#
Matplotlib rendering backend for Episia.
This backend produces publication-quality static figures suitable for journals, theses, and reports. No animations are supported.
Class#
- class episia.viz.plotters.mpl_plotter.MatplotlibPlotter(config=None)[source]#
Bases:
BasePlotterMatplotlib rendering backend static, publication-quality figures.
Returns matplotlib.figure.Figure objects.
No animations are supported. Use PlotlyPlotter for animated output. Call .save() or fig.savefig(path, dpi=300) to export.
- Parameters:
config (Optional[PlotConfig])
- SUPPORTED_ANIMATIONS: Tuple[AnimationType, ...] = ()#
AnimationTypes this backend can handle.
- plot_association(result, config=None)[source]#
Single association measure horizontal CI with reference line. Compact figure, suitable as an inline element in a report.
- Parameters:
result (Any)
config (PlotConfig | None)
- Return type:
- plot_contingency(result, config=None)[source]#
2x2 contingency table annotated heatmap with summary table.
- Parameters:
result (Any)
config (PlotConfig | None)
- Return type:
- plot_diagnostic(result, config=None)[source]#
Diagnostic dashboard: confusion matrix heatmap + metrics bar chart. Two-panel layout, publication-ready.
- Parameters:
result (Any)
config (PlotConfig | None)
- Return type:
- plot_epicurve(result, config=None)[source]#
Epidemic curve bar chart suitable for publication. Trend line overlaid if available.
- Parameters:
result (Any)
config (PlotConfig | None)
- Return type:
- plot_forest(result, config=None)[source]#
Forest plot horizontal CI lines, suitable for meta-analysis tables.
- Parameters:
result (Any)
config (PlotConfig | None)
- Return type:
- plot_model(result, config=None)[source]#
Compartmental model trajectories clean multi-line plot. R₀ and peak annotations included.
- Parameters:
result (Any)
config (PlotConfig | None)
- Return type:
- plot_roc(result, config=None)[source]#
ROC curve square axes, AUC annotation, optimal threshold marker. Publication-ready with equal aspect ratio.
- Parameters:
result (Any)
config (PlotConfig | None)
- Return type:
Examples#
Basic usage:
from episia.viz.plotters import get_plotter
# Get Matplotlib backend
plotter = get_plotter("matplotlib")
# Create publication-quality figure
fig = plotter.plot_roc(result)
# Save at high resolution
plotter.save(fig, "roc_curve.pdf", dpi=300)
Journal-ready figures:
from episia.viz.plotters.base_plotter import PlotConfig
# Configure for journal submission
config = PlotConfig.publication(
title="Figure 2: ROC Curve Analysis",
width=700,
height=500
)
fig = plotter.plot_forest(result, config=config)
plotter.save(fig, "forest_plot.svg") # Vector format
Multiple panels:
# Create multi-panel figure (requires manual subplot handling)
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
# Plot on first subplot
plotter.plot_model(result, config=PlotConfig(width=600, height=400))
# Manual subplot management needed for complex layouts
Supported formats:
from episia.viz.plotters.base_plotter import OutputFormat
# All standard formats supported
plotter.save(fig, "output.png", fmt=OutputFormat.PNG) # Raster
plotter.save(fig, "output.svg", fmt=OutputFormat.SVG) # Vector
plotter.save(fig, "output.pdf", fmt=OutputFormat.PDF) # Vector