Source code for threeML.config.plotting_structure

from dataclasses import dataclass, field
from enum import Enum, Flag
from typing import Any, Dict, List, Optional

import matplotlib.pyplot as plt
from omegaconf import II, MISSING, SI, OmegaConf

# type checking matplotlib colormaps
MPLCmap = Enum("MPLCmap", zip(plt.colormaps(), plt.colormaps()))


[docs]@dataclass class BinnedSpectrumPlot: data_cmap: MPLCmap = MPLCmap.Set1 model_cmap: MPLCmap = MPLCmap.Set1 background_cmap: MPLCmap = MPLCmap.Set1 n_colors: int = 5 step: bool = False show_legend: bool = True show_residuals: bool = True data_color: Optional[str] = None model_color: Optional[str] = None background_color: Optional[str] = None show_background: bool = False data_mpl_kwargs: Optional[Dict[str, Any]] = None model_mpl_kwargs: Optional[Dict[str, Any]] = None background_mpl_kwargs: Optional[Dict[str, Any]] = None
[docs]@dataclass class DataHistPlot: counts_color: str = "#500472" background_color: str = "#79cbb8" warn_channels_color: str = "#C79BFE" bad_channels_color: str = "#FE3131" masked_channels_color: str = "#566573"
[docs]@dataclass class PlotStyle: linestyle: Optional[str] = '-' linewidth: Optional[float] = 1.7
[docs]@dataclass class ContourStyle: alpha: float = 0.4
# class LegendLoc(Enum): # best = 'best' # lower_left = 'lower left' # lower_right = 'lower right' # upper_left = 'upper left' # upper_right = 'upper right'
[docs]@dataclass class LegendStyle: loc: str = "best" fancybox: bool = True shadow: bool = True
[docs]@dataclass class PointSourcePlot: fit_cmap: MPLCmap = MPLCmap.Set1 contour_cmap: MPLCmap = MPLCmap.Set1 bayes_cmap: MPLCmap = MPLCmap.Set1 plot_style: PlotStyle = PlotStyle() contour_style: ContourStyle = ContourStyle() show_legend: bool = True legend_style: LegendStyle = LegendStyle() flux_unit: str = "1/(keV s cm2)" emin: float = 10. emax: float = 1e4 num_ene: int = 100 ene_unit: str = "keV"
[docs]@dataclass class ResidualPlot: linewidth: float = 1 marker: str = "." size: float = 3
[docs]@dataclass class GenericPlotting: mplstyle: str = "threeml.mplstyle" residual_plot: ResidualPlot = ResidualPlot()
[docs]@dataclass class ModelPlotting: point_source_plot: PointSourcePlot = PointSourcePlot()