plottr: modular data plotting and processing
A framework for inspecting data, based on flowcharts from pyqtgraph. plottr's main aim is to allow the user to define custom data processing flows and plotting. A particular use case is data filtering and plotting.
Documentation:
https://plottr.readthedocs.io (work in progress...)
Quickstart
Installation
Plottr is installable from pypi with pip install plottr
Qt bindings
Plottr is a Qt application. At runtime it talks to Qt through
qtpy, so it works with any of the
supported Qt bindings, but you must install one yourself -- none is pulled
in automatically. Pick exactly one of:
| Binding | pip extra | Notes |
|---|---|---|
| PySide6 | pip install plottr[pyside6] |
Recommended (and what testing/type-checking use by default) |
| PyQt5 | pip install plottr[pyqt5] |
|
| PyQt6 | pip install plottr[pyqt6] |
|
| PySide2 | pip install plottr[pyside2] |
Older Qt5 binding |
For example, the recommended install is:
pip install plottr[pyside6]
If you have more than one binding installed, select which one plottr (via
qtpy) should use by setting the QT_API environment variable before starting,
e.g. QT_API=pyside6 (other valid values: pyqt5, pyqt6, pyside2).
If you installed pyqt from (Ana)Conda you should not use any of the pip
extras above; instead do pip install plottr (Qt comes from conda) or install
plottr from conda-forge:
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install plottr
To install from source: clone the repo, and install using
pip install -e .[pyside6] (or another binding extra of your choice).
inspectr: QCoDeS dataset inspection and (live) plotting
You can use the inspectr tool to get a simple overview over QCoDeS database
files, and plot datasets contained in the database.
To use: run plottr-inspectr [--dbpath <path to your .db file>]
As an alternative from the root of the cloned plottr repository, run python apps/inspectr.py [--dbpath <path to your .db file>]
For basic instructions, check out the Notebook Live plotting qcodes data under /doc/examples.
Some notes on installing
Note: this package is not compatible with the original plottr tool.
You might want to install freshly if you still use the old version.
Requirements:
- python >= 3.12
- the usual: numpy, mpl, ...
- pandas >= 0.22
- xarray
- pyqtgraph >= 0.12.1
- one Qt binding (PySide6 recommended; see Installation)
Recent changes:
See the plottr GitHub Releases page for versions and their changelogs
v0.10.0 2022-07-14
Added
- added a generalized way for fitting data (or similar procedures that generate analysis parameters from datasets) (#293)
- ... and more, see here https://github.com/toolsforexperiments/plottr/releases/tag/v0.10.0
v0.9.1 2022-01-12
Added
- Fixed a crash bug with python 3.10 (#257)
v0.9.0 2021-12-20
Added
- Add new analysis node for creating histogram of data by @wpfff in https://github.com/toolsforexperiments/plottr/pull/241
Fixed
- bugfix: prevent flushing when we are updating data. by @wpfff in https://github.com/toolsforexperiments/plottr/pull/243
- fix type checking with mypy 920 by @jenshnielsen in https://github.com/toolsforexperiments/plottr/pull/248
- Bump minimum version of pyqtgraph by @jenshnielsen in https://github.com/toolsforexperiments/plottr/pull/247
v0.8.1 2021-11-30
Added
- Test with python 3.10 and mark as supported (#238)
Fixed
- add missing init file to config dir (#236)
- Use a regular install in tests (#237)
v0.8.0 2021-11-11
Added
- Inspectr: tag a run with a star (⭐) or cross (❌) icon, filter by those, also show dataset metadata next to parameters and snapshot (#229)
- Improvements to monitr: more stability in adding data to ddh5, better performance by making data loading multithreaded and running reach plot window in a separate process (#219)
- Added pyqtgraph backend for plotting that can be used instead of matplotlib (Example for how to select can be found in test/apps/autoplot_app.py) (#215, #218)
Fixed
- Fix/invaliddata: small fixes when data contains a lot of invalid entries (#226)
- Fix in shape recognition when adding data (#220)
Behind the scenes
- Add minimal versions to dependencies (#201)
- Make the .gitignore proper (#73)
- add dependabot (#208)
- Fix typechecking with mypy 0.9xx (#207)
- clarify install instructions wrt qt and mention conda forge (#202)
2021-06-08
Added
- refactoring the plotting system (#166)
- Add version log message to main
__init__(#175)
Fixed
- Fix crop if less than one row is not nan (#198)
- Fix rgba error (#199)
- Allow empty dataset if datadict is none (#195)
Behind the scenes
- Modernize setup files (#194)
- packaging cleanups (#177)
- upgrade versioneer to 0.19 (#176)
2021-02-16
Added
- Add copy content features to inspectr and autoplot windows, specifically
- a new Copy pop up menu for copying content of cells in inspectr
- a new Copy metadata button in plot window for copying info about the dataset to clipboard
Fixed
- remove redundant information between the optional "info" box on the plot and the plot title
2021-02-08
- Drop support for Python 3.6 and support type-checking with qcodes 0.21.0
- Fix type-checking with numpy 1.20
Fixed
- Fixed y-axis to not show axis-label if more than one plot is selected in 1D single-plot show.
2020-08-21
- Workaround for bug with pyqt installed via conda that would result in blank icons.
- Add experimental support for using Pyside2 as an alternative to PyQt5
2020-08-06
Added
- Entry points for inspectr (plottr-inspectr) and autoplot (plottr-autoplot-ddh5)
- LICENSE file has been added (no change to license of the code)
- setup.py has been tweeked to ensure that sdist and bdist_wheel packages are generated correctly
2020-06-05
Added
- Usable version of hdf5 file support. can use the apps/monitr.py script to launch a tool that allows easy (live) plotting.
2020-04-24
Fixed
- there were several issues/annoyances that caused (minor) issues with grid handling and plotting in rare-ish circumstances. Most of them should be fixed now.
Added
- A few docs and examples, mostly about grid usage.
2020-04-17
Changed
- the main repo has now moved to to a different organization: https://github.com/toolsforexperiments/plottr the old repo (https://github.com/data-plottr/plottr) will be kept in sync for a while, but deleted eventually.
Metadata
Release files for plottr 0.18.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| plottr-0.18.2.tar.gz | 391.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plottr-0.18.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 813.1 kB
Release files / plottr-0.18.2.tar.gz
| Download URL | plottr-0.18.2.tar.gz |
|---|---|
| Size | 391.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b54201147390366d454ded71b668835a8c0995fb03a90e673f58077bc3bc1af5
|
|
BLAKE2b-256 checksum How to use checksums |
0db73e098f6f585ca30e97544e2e7c1b82a91b830932352899b207ba43f454ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / plottr-0.18.2-py3-none-any.whl
| Download URL | plottr-0.18.2-py3-none-any.whl |
|---|---|
| Size | 421.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3957e12279c62de5da61f6b6b7431e3cf44d71342a339f5457e1207d585b30ec
|
|
BLAKE2b-256 checksum How to use checksums |
71ad8b3e84356df606152eb603bd9a6eba6225e69f4361b91716d2f670874490
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Security for plottr 0.18.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.