Source code for plopp.graphics.figures

# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2023 Scipp contributors (https://github.com/scipp)

from functools import partial

import scipp as sc

from .. import backends
from ..core import Node
from ..core.typing import FigureLike
from .graphicalview import GraphicalView


[docs] def linefigure( *nodes: Node, vmin: sc.Variable | float | None = None, vmax: sc.Variable | float | None = None, **kwargs, ) -> FigureLike: view_maker = partial( GraphicalView, dims={'x': None}, canvas_maker=partial( backends.get(group='2d', name='canvas'), user_vmin=vmin, user_vmax=vmax, ), artist_maker=backends.get(group='2d', name='line'), colormapper=False, ) return backends.get(group='2d', name='figure')(view_maker, *nodes, **kwargs)
[docs] def imagefigure(*nodes: Node, **kwargs) -> FigureLike: view_maker = partial( GraphicalView, dims={'y': None, 'x': None}, canvas_maker=backends.get(group='2d', name='canvas'), artist_maker=backends.get(group='2d', name='image'), colormapper=True, ) return backends.get(group='2d', name='figure')(view_maker, *nodes, **kwargs)
[docs] def scatterfigure( *nodes: Node, x: str = 'x', y: str = 'y', cbar: bool = False, **kwargs ) -> FigureLike: view_maker = partial( GraphicalView, dims={'x': x, 'y': y}, canvas_maker=backends.get(group='2d', name='canvas'), artist_maker=backends.get(group='2d', name='scatter'), colormapper=cbar, ) if cbar: kwargs = {**kwargs, **{"edgecolors": "none"}} return backends.get(group='2d', name='figure')( view_maker, *nodes, x=x, y=y, cbar=cbar, **kwargs )
[docs] def scatter3dfigure( *nodes: Node, x: str = 'x', y: str = 'y', z: str = 'z', cbar: bool = False, **kwargs ) -> FigureLike: view_maker = partial( GraphicalView, dims={'x': x, 'y': y, 'z': z}, canvas_maker=backends.get(group='3d', name='canvas'), artist_maker=backends.get(group='3d', name='scatter3d'), colormapper=cbar, ) return backends.get(group='3d', name='figure')( view_maker, *nodes, x=x, y=y, z=z, cbar=cbar, **kwargs )
[docs] def mesh3dfigure(*nodes: Node, vertexcolors, **kwargs) -> FigureLike: colormapper = vertexcolors is not None view_maker = partial( GraphicalView, dims={'x': 'x', 'y': 'y', 'z': 'z'}, canvas_maker=backends.get(group='3d', name='canvas'), artist_maker=backends.get(group='3d', name='mesh3d'), colormapper=colormapper, ) return backends.get(group='3d', name='figure')( view_maker, *nodes, cbar=colormapper, **kwargs )