Package structure ================= The :mod:`silx.gui.plot` package provides plot widgets. This package is structured as follows. .. currentmodule:: silx.gui.plot :mod:`.PlotWidget` and :mod:`.PlotWindow` provides the user API. :class:`PlotWidget` is a Qt widget (actually a :class:`QMainWindow`) displaying a 1D, 2D plot area. It provides different interaction modes. :class:`PlotWindow` is a Qt widget (actually a :class:`QMainWindow`) which adds a set of toolbar buttons and associated functionalities to :class:`PlotWidget`. The toolbar QActions are implemented in :mod:`.actions`. :mod:`.Plot`, :mod:`.PlotEvents` and :mod:`.PlotInteraction` implement the plotting API regardless of the rendering backend and regardless of its integration in Qt. The plotting API in defined in :mod:`.Plot`. The different interaction modes (zoom, drawing, pan) are implemented in :mod:`.PlotInteraction`. Each interaction mode is implemented with a state machine structure (implemented in :mod:`.Interaction`). The different events emitted by :class:`Plot` and by the interaction modes are created with helper functions defined in :mod:`.PlotEvents`. The :class:`PlotWindow` uses additional widgets: - :mod:`.CurvesROIWidget` to create regions of interest for curves - :mod:`.LegendSelector` to display a list of curves legends which provides some control on the curves (e.g., select, delete). - :mod:`.MaskToolsWidget` to provide tools to draw a mask on an image. - :mod:`.ScatterMaskToolsWidget` to provide tools to draw a mask on a scatter. - The :mod:`.PlotTools` module provides a set of additional widgets: - :class:`.PlotTools.PositionInfo` - :class:`.PlotTools.LimitsToolBar` - The :mod:`.Profile` module provides toolbar for extracting profiles from image and image stack: - :class:`.Profile.ProfileToolBar` - :class:`.Profile.Profile3DToolBar` - :mod:`silx.gui.console` to provide an IPython console which can control the plot area content. The widgets also use the following miscellaneous modules: - :mod:`._utils`: utility functions The :mod:`backends` package provide the implementation of the rendering used by the :class:`Plot`. It contains: :mod:`.backends.BackendBase` defines the API any plot backend should provide in :class:`BackendBase`. :mod:`.backends.BackendMatplotlib` implements a `matplotlib `_ backend. The :mod:`.backends.BackendMatplotlib` the provides two classes: .. currentmodule:: silx.gui.plot.backends.BackendMatplotlib - :class:`BackendMatplotlib` that provides a matplotlib backend without a specific canvas. - :class:`BackendMatplotlibQt` which inherits from :class:`BackendMatplotlib` and adds a Qt canvas, and Qt specific functionalities. The OpenGL-based backend is implemented in the :mod:`.backends.BackendOpenGL` module and the :mod:`.backends.glutils` package which provides the different primitives used for rendering and interaction. It is based on :mod:`silx.gui._glutils`, `PyOpenGL `_ and OpenGL >= 2.1. .. |Plot and backend| image:: img/plot_and_backend.png :align: middle |Plot and backend| Modules ======= .. currentmodule:: silx.gui.plot For :mod:`.PlotWidget` and :mod:`.Plot` modules, see their respective documentations: :mod:`.PlotWidget`, :mod:`.Plot`. The following modules are the modules used internally by the plot package. :mod:`backends.BackendBase` +++++++++++++++++++++++++++ .. currentmodule:: silx.gui.plot.backends.BackendBase .. automodule:: silx.gui.plot.backends.BackendBase :members: :mod:`backends.BackendMatplotlib` +++++++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.plot.backends.BackendMatplotlib .. automodule:: silx.gui.plot.backends.BackendMatplotlib :members: :mod:`CurvesROIWidget` ++++++++++++++++++++++ .. currentmodule:: silx.gui.plot.CurvesROIWidget .. automodule:: silx.gui.plot.CurvesROIWidget :members: :noindex: :mod:`Interaction` ++++++++++++++++++ .. currentmodule:: silx.gui.plot.Interaction .. automodule:: silx.gui.plot.Interaction :members: :mod:`LegendSelector` +++++++++++++++++++++ .. currentmodule:: silx.gui.plot.LegendSelector .. automodule:: silx.gui.plot.LegendSelector :members: :mod:`_BaseMaskToolsWidget` +++++++++++++++++++++++++++ .. currentmodule:: silx.gui.plot._BaseMaskToolsWidget .. automodule:: silx.gui.plot._BaseMaskToolsWidget :members: :mod:`MaskToolsWidget` ++++++++++++++++++++++ .. currentmodule:: silx.gui.plot.MaskToolsWidget .. automodule:: silx.gui.plot.MaskToolsWidget :members: :show-inheritance: :mod:`ScatterMaskToolsWidget` +++++++++++++++++++++++++++++ .. currentmodule:: silx.gui.plot.ScatterMaskToolsWidget .. automodule:: silx.gui.plot.ScatterMaskToolsWidget :members: :show-inheritance: :mod:`PlotEvents` +++++++++++++++++ .. currentmodule:: silx.gui.plot.PlotEvents .. automodule:: silx.gui.plot.PlotEvents :members: :undoc-members: :mod:`PlotInteraction` ++++++++++++++++++++++ .. currentmodule:: silx.gui.plot.PlotInteraction .. automodule:: silx.gui.plot.PlotInteraction :members: :mod:`_utils` +++++++++++++ .. currentmodule:: silx.gui.plot._utils .. automodule:: silx.gui.plot._utils :members: :mod:`ticklayout` ----------------- .. automodule:: silx.gui.plot._utils.ticklayout :members: