Plotting large data series using PyQtChart.
Project description
QCharted
Plotting large data series using PyQtChart.
Currently supports LineSeries
, SplineSeries
and ScatterSeries
.
Quick start
Install using pip.
pip install QCharted
Create a plot widget, assign two axes and some line series.
import sys
from PyQt5 import QtCore, QtWidgets
from QCharted import Chart, ChartView
app = QtWidgets.QApplication(sys.argv)
# Create chart
chart = Chart()
# Create multiple axis
x = chart.addDateTimeAxis(QtCore.Qt.AlignBottom)
x.setTitleText("Time")
y1 = chart.addValueAxis(QtCore.Qt.AlignLeft)
y1.setTitleText("Temp")
y2 = chart.addValueAxis(QtCore.Qt.AlignRight)
y2.setTitleText("Humid")
# Create multiple series
temp = chart.addLineSeries(x, y)
temp.setPen(QtCore.Qt.red)
humid = chart.addLineSeries(x, y)
humid.setPen(QtCore.Qt.blue)
# Replace data, note the `data()` method
temp.data().replace([(0, 21.8), (1, 22.3)])
humid.data().replace([(0, 50.3), (1, 51.1)])
# Append data, note the `data()` method
temp.data().append(2, 22.1)
humid.data().append(2, 51.0)
# Create chart view
view = ChartView()
view.setChart(chart)
view.show()
# Fit to extent
chart.fit()
app.exec_()
Custom series classes
Actual data is stored in a data
property using numpy
.
# Instead of QLineSeries()
series = LineSeries()
# Replace data
series.data().replace([...])
# Append to data
series.data().append(2, 3)
# Clear data
series.data().clear()
Example application
The supplied example application renders 16 x 250k data samples fluently even while zooming. The QtChart line series only contain a sampled subset of the actual data. See examples/main.py for the example source.
Make sure to first install additional dependencies provided in requirements.txt
.
python -m venv env
. env/bin/activate
(env) pip install -r requirements.txt
(env) python setup.py develop
(env) python examples/main.py
Run the application with different options to see live plotting in action.
(env) python examples/main.py -c 8 -s 100
License
QCharted is licensed under the GNU General Public License Version 3.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file QCharted-1.1.3.tar.gz
.
File metadata
- Download URL: QCharted-1.1.3.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cb64ae5958727dbcc224c9be33f1b59be827c24090de8fdc84448973c91d14b |
|
MD5 | 782809c85a752fef77e4ad9cd5fa9982 |
|
BLAKE2b-256 | 5c3ad1d35981013242cabbbc51ae377a9a6d4b178c699c901033e88b9dfa7bc0 |
File details
Details for the file QCharted-1.1.3-py3-none-any.whl
.
File metadata
- Download URL: QCharted-1.1.3-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f9b741370ba18e4f220a1922b1ec2b352255fbf7525f53a6371973c5092773d |
|
MD5 | bb7d46898a0fbad58f05efd5e2527643 |
|
BLAKE2b-256 | 4aa6082747fd0c8631c543a22961c686a7de1baacd71a121fb8c5bd659e45006 |