Skip to main content

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.

Metadata

Release files for QCharted 1.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for QCharted 1.1.3
File Size Uploaded
QCharted-1.1.3.tar.gz 19.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for QCharted 1.1.3
File Interpreter ABI Platform
QCharted-1.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 39.1 kB

Release files / QCharted-1.1.3.tar.gz

Download URL QCharted-1.1.3.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5cb64ae5958727dbcc224c9be33f1b59be827c24090de8fdc84448973c91d14b
BLAKE2b-256 checksum
How to use checksums
5c3ad1d35981013242cabbbc51ae377a9a6d4b178c699c901033e88b9dfa7bc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / QCharted-1.1.3-py3-none-any.whl

Download URL QCharted-1.1.3-py3-none-any.whl
Size 19.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f9b741370ba18e4f220a1922b1ec2b352255fbf7525f53a6371973c5092773d
BLAKE2b-256 checksum
How to use checksums
4aa6082747fd0c8631c543a22961c686a7de1baacd71a121fb8c5bd659e45006
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

1.1.3 This release

2 release files

1.1.2

2 release files

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page