RectanglePatchPlotElement

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

Bases: PatchPlotElement

plot a rectangle patch.

params: dict
dict of any rectangle patch related parameters.
must contain ‘x0’ and ‘y0’.
rectangle params are ‘x0’, ‘y0’, ‘width’, ‘height’.
(x0 and y0 point to lower left corner unless negative width or height.
units determined by transform; default data units.)
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.
‘height’ and ‘width’ may either be specified via params or as additional kwargs.
Additional kwargs can be any patch params (with same key as in matplotlib) or PlotSettings.
E.g. ‘angle’, ‘facecolor’, ‘hatch’.
See also: XarrayRectanglePatch, LimsPatchPlotElement

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_patch_init_kwargs(params)

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

_params_to_patch_update_kwargs(params)

returns kwargs to use for updating the patch, based on these 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_patch_init_kwargs(params)

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

The implementation here joins ‘x’ and ‘y’ into ‘xy’, but keeps other params unchanged.
_params_to_patch_update_kwargs(params)

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

The implementation here renames ‘x0’ and ‘y0’ to ‘x’ and ‘y’, but keeps other params unchanged.
_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])