Source code for analyzer.postprocessing.plots.common

import matplotlib.typing as mplt
import copy
from typing import Optional
from attrs import define


@define
[docs] class PlotConfiguration:
[docs] lumi_text: Optional[str] = None
[docs] extra_text: Optional[str] = None
[docs] cms_text: str | list[str] | None = None
[docs] cms_text_pos: int = 2
[docs] cms_text_color: Optional[str] = None
[docs] x_scale: Optional[str] = "linear"
[docs] y_scale: Optional[str] = "linear"
[docs] x_label: Optional[str] = None
[docs] y_label: Optional[str] = None
[docs] image_type: str | list[str] | None = None
[docs] legend_fill_color: mplt.ColorType | None = None
[docs] legend_fill_alpha: float | None = None
[docs] legend_font: str | None = None
[docs] legend_loc: str = "upper right"
[docs] legend_num_cols: int = 1
[docs] def makeFormatted(self, meta): ret = copy.deepcopy(self) if ret.extra_text: ret.extra_text = ret.extra_text.format(**meta) if ret.cms_text: if isinstance(ret.cms_text, list): ret.cms_text = [t.format(**meta) for t in ret.cms_text] else: ret.cms_text = ret.cms_text.format(**meta) return ret