Source code for autoarray.plot.wrap.base.units

import logging
from typing import Optional

from autoconf import conf

logger = logging.getLogger(__name__)

[docs]class Units: def __init__( self, use_scaled: Optional[bool] = None, ticks_convert_factor: Optional[float] = None, ticks_label: Optional[str] = None, colorbar_convert_factor: Optional[float] = None, colorbar_label: Optional[str] = None, **kwargs ): """ This object controls the units of a plotted figure, and performs multiple tasks when making the plot: 1: Species the units of the plot (e.g. meters, kilometers) and contains a conversion factor which converts the plotted data from its current units (e.g. meters) to the units plotted (e.g. kilometeters). Pixel units can be used if `use_scaled=False`. 2: Uses the conversion above to manually override the yticks and xticks of the figure, so it appears in the converted units. 3: Sets the ylabel and xlabel to include a string containing the units. Parameters ---------- use_scaled If True, plot the 2D data with y and x ticks corresponding to its scaled coordinates (its `pixel_scales` attribute is used as the `ticks_convert_factor`). If `False` plot them in pixel units. ticks_convert_factor If plotting the labels in scaled units, this factor multiplies the values that are used for the labels. This allows for additional unit conversions of the figure labels. """ self.ticks_convert_factor = ticks_convert_factor self.ticks_label = ticks_label if use_scaled is not None: self.use_scaled = use_scaled else: try: self.use_scaled = conf.instance["visualize"]["general"]["units"][ "use_scaled" ] except KeyError: self.use_scaled = True self.colorbar_convert_factor = colorbar_convert_factor self.colorbar_label = colorbar_label self.kwargs = kwargs