pyqtgraph/README.md

89 lines
4.3 KiB
Markdown
Raw Normal View History

PyQtGraph
=========
2020-12-23 05:29:39 +00:00
[![PyPi](https://img.shields.io/pypi/v/pyqtgraph.svg)](https://pypi.org/project/pyqtgraph/)
[![conda-forge](https://img.shields.io/conda/vn/conda-forge/pyqtgraph.svg)](https://anaconda.org/conda-forge/pyqtgraph)
[![Build Status](https://github.com/pyqtgraph/pyqtgraph/workflows/main/badge.svg)](https://github.com/pyqtgraph/pyqtgraph/actions/?query=workflow%3Amain)
[![CodeQL Status](https://github.com/pyqtgraph/pyqtgraph/workflows/codeql/badge.svg)](https://github.com/pyqtgraph/pyqtgraph/actions/?query=workflow%3Acodeql)
2020-12-23 05:29:39 +00:00
[![Documentation Status](https://readthedocs.org/projects/pyqtgraph/badge/?version=latest)](https://pyqtgraph.readthedocs.io/en/latest/?badge=latest)
[![Total alerts](https://img.shields.io/lgtm/alerts/g/pyqtgraph/pyqtgraph.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/pyqtgraph/pyqtgraph/alerts/)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/pyqtgraph/pyqtgraph.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/pyqtgraph/pyqtgraph/context:python)
A pure-Python graphics library for PyQt5/PyQt6/PySide2/PySide6
2013-09-12 06:22:26 +00:00
2020-06-07 03:34:21 +00:00
Copyright 2020 Luke Campagnola, University of North Carolina at Chapel Hill
2013-09-12 06:22:26 +00:00
<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.
2013-09-12 06:22:26 +00:00
Requirements
------------
2013-09-12 06:22:26 +00:00
pyqtgraph has adopted [NEP 29](https://numpy.org/neps/nep-0029-deprecation_policy.html).
This project supports:
* All minor versions of Python released 42 months prior to the project, and at minimum the two latest minor versions.
* All minor versions of numpy released in the 24 months prior to the project, and at minimum the last three minor versions.
2021-01-20 04:41:29 +00:00
* All minor versions of Qt 5 and Qt 6 currently supported by upstream Qt
Currently this means:
* Python 3.7+
2021-01-20 04:41:29 +00:00
* Qt 5.12-6.0
2019-06-11 05:24:53 +00:00
* Required
* PyQt5, PyQt6, PySide2 or PySide6
* `numpy` 1.17+
2019-06-11 05:24:53 +00:00
* Optional
* `scipy` for image processing
2019-06-11 05:24:53 +00:00
* `pyopengl` for 3D graphics
2020-12-22 20:16:05 +00:00
* `pyopengl` on macOS Big Sur only works with python 3.9.1+
2019-06-11 05:24:53 +00:00
* `hdf5` for large hdf5 binary format support
2021-01-20 04:41:29 +00:00
* `colorcet` for supplemental colormaps
Performance enhancement: use CUDA in ImageItem (#1466) * Add CLI args to video speed test for easier / automated benchmarking * use a buffer-qimage so we can avoid allocing so much this should improve performance under windows * playing with numba * oh, mins/maxes in the other order * maybe put the cupy in here and see what happens * pre-alloc for gpu and cpu * handle possibility of not having cupy * no numba in this branch * organize imports * name them after their use, not their expected device * cupy.take does not support clip mode, so do it explicitly * add CUDA option to the VideoSpeedTest * rename private attr xp to _xp * handle resizes at the last moment * cupy is less accepting of lists as args * or somehow range isn't allowed? what histogram is this? * construct the array with python objects * get the python value right away * put LUT into cupy if needed * docstring about cuda toolkit version * better handling and display of missing cuda lib * lint * import need * handle switching between cupy and numpy in a single ImageItem * only use xp when necessary we can now depend on numpy >= 1.17, which means __array_function__-implementing cupy can seamlessly pass into numpy functions. the remaining uses of xp are for our functions which need to allocate new data structures, an operation that has to be substrate-specific. remove empty_cupy; just check if the import succeeded, instead. * use an option to control use of cupy * convert cupy.ceil array to int for easier mathing * RawImageWidget gets to use the getCupy function now, too * raise error to calm linters; rename for clarity * Add Generated Template Files * document things better * cruft removal * warnings to communicate when cupy is expected but somehow broken * playing with settings to suss out timeout * playing with more stuff to suss out timeout * replace with empty list * skip test_ExampleApp on linux+pyside2 only Co-authored-by: Luke Campagnola <luke.campagnola@gmail.com> Co-authored-by: Ogi Moore <ognyan.moore@gmail.com>
2021-01-20 05:26:24 +00:00
* [`cupy`](https://docs.cupy.dev/en/stable/install.html) for CUDA-enhanced image processing
* On Windows, CUDA toolkit must be >= 11.1
2019-06-11 05:24:53 +00:00
Qt Bindings Test Matrix
-----------------------
2021-01-20 04:41:29 +00:00
The following table represents the python environments we test in our CI system. Our CI system uses Ubuntu 20.04, Windows Server 2019, and macOS 10.15 base images.
2019-06-11 05:24:53 +00:00
2020-12-22 20:16:05 +00:00
| Qt-Bindings | Python 3.7 | Python 3.8 | Python 3.9 |
| :------------- | :----------------: | :----------------: | :----------------: |
2020-12-22 20:16:05 +00:00
| PySide2-5.12 | :white_check_mark: | :x: | :x: |
| PyQt5-5.12 | :white_check_mark: | :x: | :x: |
2021-01-20 04:41:29 +00:00
| PySide2-5.15 | :x: | :white_check_mark: | :x: |
| PyQt5-5.15 | :x: | :white_check_mark: | :x: |
2021-01-20 04:41:29 +00:00
| PySide6-6.0 | :x: | :x: | :white_check_mark: |
| PyQt6-6.0 | :x: | :x: | :white_check_mark: |
Support
-------
* Report issues on the [GitHub issue tracker](https://github.com/pyqtgraph/pyqtgraph/issues)
* Post questions to the [mailing list / forum](https://groups.google.com/forum/?fromgroups#!forum/pyqtgraph) or [StackOverflow](https://stackoverflow.com/questions/tagged/pyqtgraph)
Installation Methods
--------------------
2013-09-12 06:22:26 +00:00
* From PyPI:
* Last released version: `pip install pyqtgraph`
2020-06-07 03:34:21 +00:00
* Latest development version: `pip install git+https://github.com/pyqtgraph/pyqtgraph@master`
2019-06-11 05:24:53 +00:00
* From conda
2020-06-07 03:34:21 +00:00
* Last released version: `conda install -c conda-forge pyqtgraph`
2018-07-10 23:14:59 +00:00
* 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
-------------
2013-09-12 06:22:26 +00:00
The official documentation lives at [pyqtgraph.readthedocs.io](https://pyqtgraph.readthedocs.io)
2020-06-07 03:34:21 +00:00
The easiest way to learn pyqtgraph is to browse through the examples; run `python -m pyqtgraph.examples` to launch the examples application.