Skip to content

arnobaer/QCharted

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Plotting large data series using PyQtChart.

Resources

License

Stars

Watchers

Forks

Languages