Go to file
Carlos Pascual 23a46b5fb9
Add "left" and "right" step Modes (#1360)
* Add "lstep" and "rstep" step Modes

stepMode is currently either True or False. If it is True,
it requires the user to make len(x) = len(y)+1. This is
inconvenient because it makes it difficult to change the
stepMode on a given curve (just as one would change, e.g.,
its color).

This commit extends the current situation by introducing
two more step modes: "lstep" and "rstep", which do not require
passing an extra x value. In turn, this modes associate each
y value to either the left or the right boundary of the step.

For example, the "rstep" mode is handy when plotting "life"
digital signals in which x,y data pairs are appended as they
are read.

This commit does not modify the behaviour in case of stepMode=True

* Replace step mode names: lstep,rstep -> left,right

* Improve docs for stepMode

Reword docstring and add it to PlotDataItem class too

* Document left and right stepModes as added in v 0.12.0

TODO: confirm the exact version number to use here

* Add comments stress the need for "is True"

Some conditional statements in the code regarding stepMode are
done with "is True". This is actually required since other
possible values such as "left" also evaluate as true but should
not be caught.

* Deprecate boolean API for stepMode

Introduce stepMode="mid" as a replacement of stepMode=True,
but keeping full backwards compatibility with the old API.
Adapt docs, examples and tests accordingly.

* Raise ValueError on unsupported stepMode values

* Rename "mid" step mode to "center"

* Remove "added in 0.12.0" note

See https://github.com/pyqtgraph/pyqtgraph/pull/1360#discussion_r502746919

* Add deprecation warning when stepMode=True

Issue a DeprecationWarning if stepMode=True is being passed to the
constructor or setData() of PlotDataItem or PlotCurveItem.

Note: warnings module is imported locally so that it is esier to
remove once this check is no longer needed.

* Fix wrong syntax in last commit

Fix usage of "default" kwarg in dict.get()
2020-10-13 08:52:07 -07:00
.github/ISSUE_TEMPLATE Add issue template (#976) 2019-07-02 10:26:51 -04:00
doc Merge pull request #1273 from edumur/develop 2020-10-12 09:24:10 -07:00
examples Add "left" and "right" step Modes (#1360) 2020-10-13 08:52:07 -07:00
pyqtgraph Add "left" and "right" step Modes (#1360) 2020-10-13 08:52:07 -07:00
tools Remove a few remaining mentions of the develop branch 2020-09-30 21:04:09 -07:00
.coveragerc MNT: hard code the coverage report location 2015-08-01 11:54:15 -04:00
.flake8 Expand CI + pre-commit (#991) 2019-08-29 13:56:25 -07:00
.gitignore TST: Attempt 1 at breaking out ViewBox tests 2015-07-31 11:08:14 -04:00
.pre-commit-config.yaml Expand CI + pre-commit (#991) 2019-08-29 13:56:25 -07:00
.readthedocs.yml Add readthedocs config file as recommended 2020-05-17 16:06:00 -07:00
azure-pipelines.yml Remove a few remaining mentions of the develop branch 2020-09-30 21:04:09 -07:00
azure-test-template.yml Handle axis SI prefix scaling in MatplotlibExporter (#1282) 2020-06-28 08:51:34 -07:00
CHANGELOG Final preparations for 0.11.0 release 2020-06-08 18:25:45 -05:00
CONTRIBUTING.md Remove a few remaining mentions of the develop branch 2020-09-30 21:04:09 -07:00
LICENSE.txt - Major reorganization; we now follow the standard python package structure. 2012-12-26 17:51:52 -05:00
MANIFEST.in manifest corrections 2014-12-24 11:05:05 -05:00
pytest.ini Filter out expected warnings 2020-02-28 14:28:36 -08:00
README.md Fix Azure Pipelines badge in README 2020-08-15 13:18:08 -07:00
setup.py remote legacy work-around for old numpy errors (#1046) 2019-09-26 10:08:43 -07:00
test.py We support pyside2 don't we? 2019-05-30 14:40:39 -07:00
tox.ini Remove py2 pip warning message 2020-02-28 14:29:16 -08:00

Build Status Documentation Status

PyQtGraph

A pure-Python graphics library for PyQt/PySide/PyQt5/PySide2

Copyright 2020 Luke Campagnola, University of North Carolina at Chapel Hill

http://www.pyqtgraph.org

PyQtGraph is intended for use in mathematics / scientific / engineering applications. Despite being written entirely in python, the library is fast due to its heavy leverage of numpy for number crunching, Qt's GraphicsView framework for 2D display, and OpenGL for 3D display.

Requirements

  • Python 2.7, or 3.x
  • Required
    • PyQt 4.8+, PySide, PyQt5, or PySide2
    • numpy
  • Optional
    • scipy for image processing
    • pyopengl for 3D graphics
    • hdf5 for large hdf5 binary format support

Qt Bindings Test Matrix

The following table represents the python environments we test in our CI system. Our CI system uses Ubuntu 18.04, Windows Server 2019, and macOS 10.15 base images.

Qt-Bindings Python 2.7 Python 3.6 Python 3.7 Python 3.8
PyQt-4
PySide1
PyQt5-5.9
PySide2-5.13
PyQt5-Latest
PySide2-Latest
  • pyqtgraph has had some incompatibilities with PySide2 versions 5.6-5.11, and we recommend you avoid those versions if possible
  • on macOS with Python 2.7 and Qt4 bindings (PyQt4 or PySide) the openGL related visualizations do not work reliably

Support

Installation Methods

  • From PyPI:
    • Last released version: pip install pyqtgraph
    • Latest development version: pip install git+https://github.com/pyqtgraph/pyqtgraph@master
  • From conda
    • Last released version: conda install -c conda-forge pyqtgraph
  • To install system-wide from source distribution: python setup.py install
  • Many linux package repositories have release versions.
  • To use with a specific project, simply copy the pyqtgraph subdirectory anywhere that is importable from your project.

Documentation

The official documentation lives at https://pyqtgraph.readthedocs.io

The easiest way to learn pyqtgraph is to browse through the examples; run python -m pyqtgraph.examples to launch the examples application.