marsilea.layers.LayersMesh#
- class LayersMesh(data=None, layers=None, pieces=None, shrink=(1.0, 1.0), label=None, label_loc=None, props=None, legend_kws=None)#
Bases:
RenderPlanThe mesh that draw customized elements in multi-layers
LayersMesh is a powerful solution for drawing and visualizing customized elements in multi-layered formats. It offers two flexible ways to specify layers:
A single layer of data containing different elements.
Multiple layers of data, where each layer represents a customized element, overlaying elements on top of one another.
When supplying multiple layers, the drawing order follows the order of the input array. Override this order by controlling the zorder attribute in your
Pieces.- Parameters:
- datanp.ndarray, optional
Use this parameter for a single layer
- layerslist of data
For multiple layers, use this parameter. Each layer must be a boolean matrix indicating whether the element is rendered at a specific cell.
- piecesdict or array
For a single layer, use a dict to define how to render each element. For multiple layers, use an array to define the rendering of each layer.
- labelstr
The mesh label, displayed only when added to the side plot.
- label_locstr
The label location.
- propsdict
Examples
Drawing a single layer:
>>> from marsilea.layers import LayersMesh, Rect, FrameRect >>> data = np.random.choice([1, 2, 3], (10, 10)) >>> pieces = {1: Rect(color="r", label="1"), ... 2: FrameRect(color="g", label="2"), ... 3: Rect(color="b", label="3")} >>> _, ax = plt.subplots() >>> LayersMesh(data=data, pieces=pieces).render(ax)
Drawing multiple layers:
>>> d1 = np.random.choice([1, 2, 3], (10, 10)) >>> d2 = np.random.choice([1, 2, 3], (10, 10)) >>> d3 = np.random.choice([1, 2, 3], (10, 10)) >>> pieces = [Rect(color="r", label="1"), ... FrameRect(color="g", label="2"), ... Rect(color="b", label="3")] >>> _, ax = plt.subplots() >>> LayersMesh(layers=[d1, d2, d3], pieces=pieces).render(ax)
- render_main = True#