PlasmaCalcs.plotting.plot_tools.lims.calculate_lims_from_margin

PlasmaCalcs.plotting.plot_tools.lims.calculate_lims_from_margin(min, max, margin=None, *, x=None, skipna=False, scale=None)
calculate the lims to use, based on min, max, and margin.
Return (min, max) after scaling them by this margin.
min, max: None or number
None –> return (None, None). (in this case, provided min and max must both be None.)
number –> treat this as the before-applying-margin limits (in data-coordinates).
margin: None or number (greater than -0.5, probably close to 0.05) (default: None)
margin to use for x/y axis, as a fraction of the data interval for that axis.
None –> use matplotlib defaults
(e.g., plt.rcParams[“axes.xmargin”] or [“axes.ymargin”], or 0 if using imshow)
positive number –> pad around the data region, with this much whitespace.
E.g. 0.05 means adding 5% whitespace on each side.
Use this to zoom out.
negative number –> remove this much of the outer parts of the data region.
E.g. -0.2 means removing 20% space from each side.
Use this to zoom in.
For line plots, if also using robust, ymargin will be applied to the robust y lims.
(margin-related params share the same docstring, but refer to:
‘xmargin’: x-axis, ‘ymargin’: y-axis, ‘margin’: x and/or y-axis.)
x: None, ‘x’, or ‘y’
must be provided if margin is not; tells which matplotlib default to use.
ignored if margin is provided.
skipna: bool
whether to return None instead of nan if min or max would be nan.
scale: None, ‘linear’, or ‘log’
whether margin is in linear or log space. If None, use ax’s current scale.
(Actually, if None then default to ‘linear’ scale, in this function.)