Source code for croissance.figures.writer

import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages

from croissance.estimation import AnnotatedGrowthCurve
from croissance.figures.plot import plot_processed_curve


[docs] class PDFWriter: def __init__(self, filepath, yscale="both"): self._handle = open(filepath, "wb") self._doc = PdfPages(self._handle) self._yscale = yscale
[docs] def write(self, name: str, curve: AnnotatedGrowthCurve): fig, _axes = plot_processed_curve(curve=curve, yscale=self._yscale) fig.suptitle(name) fig.set_figwidth(16) fig.set_figheight(16 if self._yscale == "both" else 8) try: self._doc.savefig(fig) finally: plt.close(fig)
def __enter__(self): return self def __exit__(self, *args, **kwargs): self.close()
[docs] def close(self): self._doc.close() self._handle.close()