PlasmaCalcs.plotting.patches.PatchPlotElement

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

Bases: MoviePlotElement

plot a 2D Patch.
Base class for useable 2D patch plot elements, e.g. XarrayRectanglePatchPlotElement.
params: dict
dict of patch-related parameters.
Many are probably settable directly via patch.set(**params).
E.g. ‘width’ and ‘height’ are options for rectangle patch.
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.
cls.MPL_SETTERS: dict of {param key: how to set that param}
for params with nonstandard setters in matplotlib, tells the alternative to patch.set(k=value):
{str k: str v} –> patch.set(v=value)
{str k: (str attr, str v)} –> patch.attr(v=value)
Examples:
- for Annulus patch, need MPL_SETTERS[‘r’] = ‘radii’,
because patch.set(r=value) isn’t allowed; it’s patch.set(radii=value) instead.
- for Arrow patch, need MPL_SETTERS[‘x’] = (‘set_data’, ‘x’),
because patch.set(x=value) isn’t allowed; it’s patch.set_data(x=value) instead.
To view or adjust plot settings in self, see self.plot_settings, or help(self.plot_settings).
__init__(params, *, ax=None, transform=UNSET, **kw_super)

Methods

__init__(params, *[, ax, transform])

init_patch()

legend_handle(*[, hatch_density_scaling, label])

update_data(data)

Attributes

MPL_SETTERS

PATCH_SETTINGS_LOOKUP

ax

fig

params

patch

patch_cls

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
update_data(data)
updating the plot using data[‘params’].
return the list of all updated matplotlib Artist objects (i.e., [self.patch])