taurus_pyqtgraph
is an extension package for the Taurus package. It
adds the taurus.qt.qtgui.tpg
submodule which provides pyqtgraph-based
widgets.
The rationale behind taurus_pyqtgraph is described in the TEP17
Just install this module e.g.:
For the latest release in PyPI:
pip install taurus_pyqtgraph
For developing, use a python3 virtual env (or conda, or similar) and:
git clone https://github.com/taurus-org/taurus_pyqtgraph.git
cd taurus_pyqtgraph
pip install -r requirements_dev.txt -r requirements.txt
pip install -e .
After successful installation, the module will be accessible as taurus.qt.qtgui.tpg
and the taurus tpg
CLI will be available
taurus_pyqtgraph
is still in alpha stage. Its API may be subject to
change before the 1.0.0 release.
This is a list of planned / done features. The tasks which are checked are those for which there is already an alpha-quality prototype:
- 1D plot: plot of multiple 1D models with auto-changing color and availability of legend
- Date-time support on X axis (display only, see "UI for setting scale limits in date/time format" below)
- Stand-alone widget
- Zooming & panning with "restore original view" option (not the same as zoom stacking, see below)
- Possibility to use (at least) 2 Y-scales
- UI for adding taurus curves via ModelChooser. See also "Improved Model Chooser" below
- Store/retreive configuration (save/load settings)
- Support for non-taurus curves in same plot (aka "raw data")
- UI for setting scale limits and lin/log options
- Export data as ascii: without date-time support
- Export plot as image (S0)
- UI for moving a curve from one Y-scale to another
- UI for choosing line color, thickness symbol, filling...
- Arbitrary Label scale (aka FixedLabelsScale)
- configurable properties support (setting permanence)
Outside TEP17 scope:
- UI for setting scale limits in date/time format (S16)
- Point-picking (aka "inspect mode") (S4)
- Date-time support in "export data as ascii" (S24)
- Plot freeze (pause) (S8)
- Improved Model Chooser: replacement of the "input data selection" dialog allowing to choose both X and Y models (see curve selection dialog in extra_guiqwt's tauruscurve) (C16)
- Drop support for taurus attributes (C4)
- Zoom stack: possibility of stacking zoom levels and navigating back one level at a time. (C16)
- Cursor position info (display X-Y position of cursor in active axis coords) (C2)
- 1D ROI selector (C2)
- Curve statistics calculator (mean, stdev...) as in curve stats dialog of TaurusPlot/Trend (C8)
- UI for changing curve names (C8)
- Peak locator: Visual label min/max of curves (C12)
- UI for adding raw data (W8)
Most of the features mentioned for 1D plots affect the 1D trends as well. Apart from those, here is a list of more specific features of trends:
- "1D trends": plot of scalars vs event number or timestamp
- Fixed-range scale (aka oscilloscope mode)
- UI to switch between fixed and free scale mode
- Stand-alone Widget
- Support for forced-reading of attributes (aka "-r mode")
- UI for forced-reading mode
- configurable properties support (setting permanence)
Outside TEP17 scope:
- "Trend sets": plot of 1D attribute vs time interpreting it as a set of 1D scalars (M16)
- Accessing Archived values (M40). Done via taurus_tangoarchiving plugin
- Accessing Tango Polling buffer (W24)
- Support for limiting curve buffers (C8)
- UI for curve buffers (C2)
Outside TEP17 scope:
- Plot a single image
- UI for Add/remove image
- Stand-alone Widget (M8)
- "calibrated" XYImage (assigning values to X and Y scale, as in guiqwt's XYImageItem) S8
- Cross sections (slicing) (S4)
- 2D ROI Selector (S4)
- LUT/contrast control (S0)
- Drop support for taurus attributes (C4)
- LogZ scale (C?)
- Annotation/measure tools (C16)
Most of the features for 2D plots affect also the 2D trends. Apart from those, here is a list of more specific features of 2D trends:
Outside TEP17 scope:
- Stand-alone Widget (M8)
- Absolute date-time scale (display, see same feat in TaurusPlot)
- Fixed-range scale (aka oscilloscope mode, same as for 1Dtrends) (M8)
- UI to switch between fixed and free scale mode (S12)
- Document all public API
- Make all code pep8-clean