Source code for probscale.validate

from matplotlib import pyplot

from .algo import _bs_fit


[docs]def axes_object(ax): """ Checks if a value if an Axes. If None, a new one is created. Both the figure and axes are returned (in that order). """ if ax is None: ax = pyplot.gca() fig = ax.figure elif isinstance(ax, pyplot.Axes): fig = ax.figure else: msg = "`ax` must be a matplotlib Axes instance or None" raise ValueError(msg) return fig, ax
[docs]def axis_name(axis, axname): """ Checks that an axis name is in ``{'x', 'y'}``. Raises an error on an invalid value. Returns the lower case verion of valid values. """ valid_args = ['x', 'y'] if axis.lower() not in valid_args: msg = 'Invalid value for {} ({}). Must be on of {}.' raise ValueError(msg.format(axname, axis, valid_args)) return axis.lower()
[docs]def fit_argument(arg, argname): """ Checks that an axis options is in ``{'x', y', 'both', None}``. Raises an error on an invalid value. Returns the lower case verion of valid values. """ valid_args = ['x', 'y', 'both', None] if arg not in valid_args: msg = 'Invalid value for {} ({}). Must be on of {}.' raise ValueError(msg.format(argname, arg, valid_args)) elif arg is not None: arg = arg.lower() return arg
[docs]def axis_type(axtype): """ Checks that a valid axis type is requested. - *pp* - percentile axis - *qq* - quantile axis - *prob* - probability axis Raises an error on an invalid value. Returns the lower case verion of valid values. """ if axtype.lower() not in ['pp', 'qq', 'prob']: raise ValueError("invalid axtype: {}".format(axtype)) return axtype.lower()
[docs]def axis_label(label): """ Replaces None with an empty string for axis labels. """ return '' if label is None else label
[docs]def other_options(options): """ Replaces None with an empty dict for plotting options. """ return dict() if options is None else options.copy()
[docs]def estimator(value): if value.lower() in ['res', 'resid', 'resids', 'residual', 'residuals']: msg = 'Bootstrapping the residuals is not ready yet' raise NotImplementedError(msg) elif value.lower() in ['fit', 'values']: est = _bs_fit else: raise ValueError('estimator must be either "resid" or "fit".') return est