Skip to main content

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

QCharted-1.1.3.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

QCharted-1.1.3-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

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

Hashes for QCharted-1.1.3.tar.gz
Algorithm Hash digest
SHA256 5cb64ae5958727dbcc224c9be33f1b59be827c24090de8fdc84448973c91d14b
MD5 782809c85a752fef77e4ad9cd5fa9982
BLAKE2b-256 5c3ad1d35981013242cabbbc51ae377a9a6d4b178c699c901033e88b9dfa7bc0

See more details on using hashes here.

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

Hashes for QCharted-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8f9b741370ba18e4f220a1922b1ec2b352255fbf7525f53a6371973c5092773d
MD5 bb7d46898a0fbad58f05efd5e2527643
BLAKE2b-256 4aa6082747fd0c8631c543a22961c686a7de1baacd71a121fb8c5bd659e45006

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page