Source code for autoarray.plot.visuals.two_d

from matplotlib import patches as ptch
from typing import List, Optional, Union

from autoarray.mask.mask_2d import Mask2D
from autoarray.plot.visuals.abstract import AbstractVisuals
from autoarray.structures.arrays.uniform_1d import Array1D
from autoarray.structures.arrays.uniform_2d import Array2D
from autoarray.structures.grids.uniform_2d import Grid2D
from autoarray.structures.grids.irregular_2d import Grid2DIrregular
from autoarray.structures.vectors.irregular import VectorYX2DIrregular


[docs]class Visuals2D(AbstractVisuals): def __init__( self, origin: Optional[Grid2D] = None, mask: Optional[Mask2D] = None, border: Optional[Grid2D] = None, lines: Optional[List[Array1D]] = None, positions: Optional[Union[Grid2DIrregular, List[Grid2DIrregular]]] = None, grid: Optional[Grid2D] = None, mesh_grid: Optional[Grid2D] = None, vectors: Optional[VectorYX2DIrregular] = None, patches: Optional[List[ptch.Patch]] = None, array_overlay: Optional[Array2D] = None, parallel_overscan=None, serial_prescan=None, serial_overscan=None, indexes=None, pix_indexes=None, ): self.origin = origin self.mask = mask self.border = border self.lines = lines self.positions = positions self.grid = grid self.mesh_grid = mesh_grid self.vectors = vectors self.patches = patches self.array_overlay = array_overlay self.parallel_overscan = parallel_overscan self.serial_prescan = serial_prescan self.serial_overscan = serial_overscan self.indexes = indexes self.pix_indexes = pix_indexes def plot_via_plotter(self, plotter, grid_indexes=None, mapper=None): if self.origin is not None: plotter.origin_scatter.scatter_grid( grid=Grid2DIrregular(values=self.origin) ) if self.mask is not None: plotter.mask_scatter.scatter_grid( grid=self.mask.derive_grid.edge_sub_1.binned ) if self.border is not None: plotter.border_scatter.scatter_grid(grid=self.border) if self.grid is not None: plotter.grid_scatter.scatter_grid(grid=self.grid) if self.mesh_grid is not None: plotter.mesh_grid_scatter.scatter_grid(grid=self.mesh_grid) if self.positions is not None: plotter.positions_scatter.scatter_grid(grid=self.positions) if self.vectors is not None: plotter.vector_yx_quiver.quiver_vectors(vectors=self.vectors) if self.patches is not None: plotter.patch_overlay.overlay_patches(patches=self.patches) if self.lines is not None: plotter.grid_plot.plot_grid(grid=self.lines) if self.indexes is not None: plotter.index_scatter.scatter_grid_indexes( grid=grid_indexes, indexes=self.indexes ) if self.pix_indexes is not None and mapper is not None: indexes = mapper.pix_indexes_for_slim_indexes(pix_indexes=self.pix_indexes) plotter.index_scatter.scatter_grid_indexes( grid=mapper.source_plane_data_grid, indexes=indexes )