LimsPatchPlotElement

class PlasmaCalcs.plotting.patches.LimsPatchPlotElement(params, *, ax=None, transform=UNSET, **kw_super)

Bases: RectanglePatchPlotElement

plot a rectangle patch, from xmin, xmax, ymin, ymax, instead of x0, y0, width, height.

params: dict
dict of any rectangle patch related parameters.
must contain (‘xmin’ and ‘xmax’) and/or (‘ymin’ and ‘ymax’).
units determined by transform; default ‘data’ units.
if xlims not provided, transform[0] must allow ‘axes’ units (will put 0 to 1, i.e. fill horizontally)
if ylims not provided, transform[1] must allow ‘axes’ units (will put 0 to 1, i.e. fill vertically)
(if transform restricted above but not input directly,
default to ‘axes’ units where necessary, and ‘data’ units elsewhere.)
transform: UNSET, ‘data’, ‘axes’, 2-tuple of (‘data’ or ‘axes’), or Transform object (default: UNSET)
indicate coordinate system to use for x and y inputs.
single string –> x and y both in this coordinate system.
tuple –> xy[0] tells x system; xy[1] tells y system.
‘data’ coords means input values match data values.
‘axes’ coords means input values correspond to distance across axis:
for x: left=0, right=1.
for y: bottom=0, top=1.
See also: XarrayLimsPatch, RectanglePatchPlotElement
To view or adjust plot settings in self, see self.plot_settings, or help(self.plot_settings).

Methods

__init_subclass__(*args_super, **kw)

appends note about using self.plot_settings, to cls.__doc__.

init_patch()

initialize the patch; actually draw the patch on self.ax.

legend_handle(*[, hatch_density_scaling, label])

returns a Patch suitable for use as a handle in a legend.

update_data(data)

updating the plot using data['params'].

_all_patch_params(ax)

returns full list of all known patch params to use, i.e.:

_params_to_lims_and_transform(params)

get (xmin, xmax, ymin, ymax, transform), from dict of params,

_params_to_patch_init_kwargs(params)

returns kwargs to use for initializing the patch, based on self.params.

_params_to_patch_update_kwargs(params)

returns kwargs to use for updating the patch, based on self.params.

_set_patch_params(**params)

update the parameters of self.patch.

_transform_kw(ax)

get transform to use for this patch, as dict.

Attributes

MPL_SETTERS

PATCH_SETTINGS_LOOKUP

ax

the axes containing this patch

fig

the figure containing this patch

params

dict of patch parameters.

patch

the matplotlib.patches.Patch object

classmethod __init_subclass__(*args_super, **kw)

appends note about using self.plot_settings, to cls.__doc__.

if “PlotSettings” or “plot_settings” appears in cls.__doc__, do NOT append this note;
assuming instead that this means the doc already mentions how to use plot_settings.
_all_patch_params(ax)

returns full list of all known patch params to use, i.e.:

{**params_settings, **params_init}, where:
params_settings = self.plot_settings.get_mpl_kwargs(self.PATCH_SETTINGS_LOOKUP)
params_init = self._params_to_patch_init_kwargs()
_params_to_lims_and_transform(params)

get (xmin, xmax, ymin, ymax, transform), from dict of params,

and self.plot_settings[‘transform’]
_params_to_patch_init_kwargs(params)

returns kwargs to use for initializing the patch, based on self.params.

The implementation converts xmin, xmax, ymin, ymax, into x0, y0, width, height,
then calls super()._params_to_patch_init_kwargs() on the result.
The implementation here also sets self.plot_settings[‘transform’].
_params_to_patch_update_kwargs(params)

returns kwargs to use for updating the patch, based on self.params.

The implementation converts xmin, xmax, ymin, ymax, into x0, y0, width, height,
then calls super()._params_to_patch_update_kwargs() on the result.
_set_patch_params(**params)

update the parameters of self.patch.

params: dict
dict of patch parameters.
All must be provideable during (type of patch).__init__.
Many are probably settable directly via patch.set(**params).
E.g. ‘width’ and ‘height’ are options for rectangle patch.
Some might not be settable directly; see self.MPL_SETTERS and help(self) for details.
_transform_kw(ax)

get transform to use for this patch, as dict.

result is probably dict(transform=Transform object), but might be empty dict().
requires that self.ax is not None.
property ax

the axes containing this patch

property fig

the figure containing this patch

init_patch()

initialize the patch; actually draw the patch on self.ax.

stores plotted object in self.patch and returns self.patch.
legend_handle(*, hatch_density_scaling=2, label=UNSET)

returns a Patch suitable for use as a handle in a legend.

hatch_density_scaling: int
increase the hatch density by this factor, relative to the plot itself, if using hatches.
label: UNSET or str
if not UNSET, use this as the label, instead of self.plot_settings[‘label’]
Example:
handle1 = self.legend_handle()
handle2 = other_patch_element.legend_handle()
plt.legend(handles=[handle1, handle2])
property params

dict of patch parameters. Internally, stored at self.data[‘params’]

property patch

the matplotlib.patches.Patch object

patch_cls

alias of Rectangle

update_data(data)

updating the plot using data[‘params’].

return the list of all updated matplotlib Artist objects (i.e., [self.patch])