Skip to main content

SciQLop plot API based on QCustomPlot

Project description

License: GPL v3 C++20 PyPi Coverage

SciQLopPlots

A high-performance scientific plotting library built on C++20/Qt6 with Python bindings via Shiboken6 (PySide6). Designed for the SciQLop data analysis platform but usable standalone.

Features

  • Async resampling — render millions of points smoothly; data is downsampled in background threads via NeoQCP pipelines
  • Multiple plot types — time series (line graphs), spectrograms (color maps), histograms, parametric curves
  • Interactive — pan, zoom, data-driven callbacks, vertical/horizontal spans, tracers
  • Multi-plot panels — synchronized axes, aligned margins, drag-and-drop from product trees
  • Export — PDF (vector), PNG, JPG, BMP for both individual plots and panels
  • Busy indicator — visual feedback when data is loading or being processed
  • Cross-platform — Linux, macOS, Windows

Quick start

pip install SciQLopPlots
import numpy as np
from PySide6.QtWidgets import QApplication
from SciQLopPlots import SciQLopPlot

app = QApplication([])
plot = SciQLopPlot()

# Static data
x = np.arange(0, 1000, dtype=np.float64)
y = np.sin(x / 100) * np.cos(x / 10)
plot.plot(x, y, labels=["signal"])

# Data callback (called on pan/zoom with visible range)
def get_data(start, stop):
    x = np.arange(start, stop, dtype=np.float64)
    y = np.column_stack([np.sin(x / 100), np.cos(x / 100)])
    return x, y

plot.plot(get_data, labels=["sin", "cos"])

plot.show()
app.exec()

Reactive pipelines

Connect plot properties with the >> operator to build live data pipelines:

from SciQLopPlots import SciQLopPlot

plot = SciQLopPlot()
graph = plot.plot(lambda start, stop: ..., labels=["signal"])

# Axis range changes automatically feed a transform, which pushes data to the graph
plot.x_axis.on.range >> get_data >> graph.on.data

# Direct property forwarding (no transform)
span.on.range >> plot.x_axis.on.range

# Chain multiple steps
source.on.range >> transform >> target.on.data

The pipeline handles signal connection, call-style detection (positional args vs Event object), and automatic disconnection when objects are destroyed.

Run the gallery for a full feature showcase:

python tests/manual-tests/gallery.py

Building from source

Requires Qt6, PySide6 == 6.10.2, a C++20 compiler, and Meson.

# Development build
meson setup build --buildtype=debug
meson compile -C build

# Install as editable Python package
pip install -e . --no-build-isolation

Contributing

Fork the repository, make your changes and submit a pull request. Bug reports and feature requests are welcome.

Credits

Development is supported by CDPP. We acknowledge support from Plas@Par.

Thanks

  • PySide6 — Qt bindings and Shiboken6 binding generator
  • NeoQCP — fork of QCustomPlot with async pipelines, multi-dtype support, and QRhi rendering

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

sciqlopplots-0.19.2.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sciqlopplots-0.19.2-cp314-cp314-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.14Windows x86-64

sciqlopplots-0.19.2-cp314-cp314-manylinux_2_39_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ ARM64

sciqlopplots-0.19.2-cp314-cp314-manylinux_2_34_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

sciqlopplots-0.19.2-cp314-cp314-macosx_13_0_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.14macOS 13.0+ x86-64

sciqlopplots-0.19.2-cp314-cp314-macosx_13_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.14macOS 13.0+ ARM64

sciqlopplots-0.19.2-cp313-cp313-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.13Windows x86-64

sciqlopplots-0.19.2-cp313-cp313-manylinux_2_39_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ ARM64

sciqlopplots-0.19.2-cp313-cp313-manylinux_2_34_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

sciqlopplots-0.19.2-cp313-cp313-macosx_13_0_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

sciqlopplots-0.19.2-cp313-cp313-macosx_13_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

sciqlopplots-0.19.2-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

sciqlopplots-0.19.2-cp312-cp312-manylinux_2_39_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ ARM64

sciqlopplots-0.19.2-cp312-cp312-manylinux_2_34_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

sciqlopplots-0.19.2-cp312-cp312-macosx_13_0_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

sciqlopplots-0.19.2-cp312-cp312-macosx_13_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

sciqlopplots-0.19.2-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

sciqlopplots-0.19.2-cp311-cp311-manylinux_2_39_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ ARM64

sciqlopplots-0.19.2-cp311-cp311-manylinux_2_34_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

sciqlopplots-0.19.2-cp311-cp311-macosx_13_0_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

sciqlopplots-0.19.2-cp311-cp311-macosx_13_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

sciqlopplots-0.19.2-cp310-cp310-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10Windows x86-64

sciqlopplots-0.19.2-cp310-cp310-manylinux_2_39_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ ARM64

sciqlopplots-0.19.2-cp310-cp310-manylinux_2_34_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

sciqlopplots-0.19.2-cp310-cp310-macosx_13_0_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

sciqlopplots-0.19.2-cp310-cp310-macosx_13_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file sciqlopplots-0.19.2.tar.gz.

File metadata

  • Download URL: sciqlopplots-0.19.2.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sciqlopplots-0.19.2.tar.gz
Algorithm Hash digest
SHA256 9eb31bff43a854d18511cdfa2ca98cc35c93a3d5fb8a9b0d25a13e71517f9e90
MD5 2b384d98b7ed493aa26de9a8f049b5f6
BLAKE2b-256 e12f14ca332f574b1e52341a5c39d7fd869dcafdf75b90c5aad005e96cec5e50

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 290ed359eea3452c54e0949e32f472e13c419f9049a828f8c5b740b732b402fd
MD5 75d54493fd6ac828a9b68bee5844aa02
BLAKE2b-256 8ba2860dd6e084e5373b36f5aa4cac603bdddf32892f12a784e95e36b5e28942

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp314-cp314-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp314-cp314-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 50903af464585288dfc57c4ef97c8460bf5aa13b38260b0239a56a7e642728d5
MD5 b6e48906a8117d78a554ab8d9cdc6d82
BLAKE2b-256 4377cc0b1acf14c5e96a6ed50c2dd4e8b745a8238dccd5a31167ed036ffda7c8

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9f99fa618ed9bebce8c7cdfd3f612811153893f4343b5281eb97266d62a8de25
MD5 657d3307946222910ad8e4ead72f2616
BLAKE2b-256 52b0cfff03910385b811f250bbe97981daf54358aa82fae2c846bdc7657b4e56

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp314-cp314-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 43362210ba1a61c3241344dc555ad32c34cc54a2cf71a8acc7158bd4575f5b3a
MD5 33a58fb33a1d472d35133a4632830caa
BLAKE2b-256 1fe34550cd95b0acece5ed07250e30a7c29a3ff708796acedfbf33529dd970e0

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp314-cp314-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp314-cp314-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 32e0b6fb37dfdd93ac87432f645f96275fff7ec1e8f757a558e3e2a269a802b4
MD5 12fd2d59c59533efb3776e60c99cc97c
BLAKE2b-256 4315f0bf3980997813f516a96a1e2fc07df75d4645d82b516a12c66e56293573

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f8c7118c32a95be2019d8e05c0bf0c80ac24504724b1da4ec03868c43ced6de2
MD5 ada75a93c63ff89daee9785d81ac651b
BLAKE2b-256 eadcd11a49395ebf492797c40a4828f85745b05facdbe8172d4180c62b348831

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp313-cp313-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp313-cp313-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 9adbae66f4c313d61cb3c233a0b03c2b5768934eb4c23546c294db51381d290f
MD5 08ece88d78a654ff431e21d1930aa189
BLAKE2b-256 cf3bb81ca1cf8e9a487ba90b234d3480c3ff03e91ccdd0d789a9f658af90c024

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 238aef908df3216278c1ea7d6d7cb6a05ffc880e7821faa70f4cb7705d6c0239
MD5 d946a5819dcb3cc6b366c6cec3675f58
BLAKE2b-256 89ad1e821b62e79e1e9b5aa21145e54c33de83e64c0f73bf937d94b6bfe4e78b

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 47134a0ddce9fd4d8ad378122ad6e987d5968921a49394dc74fcbad7b6fe9ef9
MD5 7dadb5cbeda59e2763bc0ffcc7c46bd5
BLAKE2b-256 f4955976879e6b02d14c19821807c195144da497294daf9a5ffab22d74677a03

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 41b0e2cb21e32a7ff4de792fc9679369df6fc7cde03a4f718e52c452e0d636ee
MD5 811a5d4b5f3821aba4b823ab8b78fb2d
BLAKE2b-256 2978e2306be0f0efb00d2716a5132fccea29dc121a4f1ef69cdaa5400b8c60da

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4480c1d644045122d3a6ed8029d7819b789806ae515dcfa6a363edb14e9ec639
MD5 4cb06fe0e3e9aacb510c7e4afd39d188
BLAKE2b-256 7afd427ab71fe6be6e01560168492dd0b2dd2e0c713ceff0dbd97ae2a58d36b9

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp312-cp312-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp312-cp312-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 69e50c13883f610348db503e741f694f26dfb10d978240ceddbc3333d1685539
MD5 e3788165ae779d339f150dafd4a642c2
BLAKE2b-256 54dfb7a03bff3c1cbe9f13af48956aa0543facdbdca9f26e112bf009301bc009

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f6e65b6b803b3fc257fc20aa38757b9913fc9fca9771a6b0b87a903e93071b01
MD5 c2554b23a5ebeb28237e02e7ce7cf050
BLAKE2b-256 d63da9ce076f85de25647448d16eb6c25581e4aa5581c8b9a3536bf436fac4b8

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b4b6175214582481155da017257737213626708bd12b9a07c57bf25195f0c12c
MD5 f61d2612e39f0fb822bc807faa5ef3ad
BLAKE2b-256 ce37656d24e9cd25890a6c96645bb1ce2254d8e2f056b9cea279ad0f5da79b4a

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 1ec92cdb948c6835c39f7189ced8648efbc28f9a9983f642178f6354e8002a7a
MD5 0209a0eb9bb73f69a39e2bd045c1c92e
BLAKE2b-256 0bd84df85b2d642f6ea0f712e769141dc4b641982d18a47b50031a320ebe4eba

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f830a0e36030621e79dd3e6717cb8bbf3b4897c6a0ba92b1c53733098bba3b35
MD5 5014a0af80e6c2bf40898a38446c0f0e
BLAKE2b-256 c1cc906636f9404ccce9b7c170df857316c57d376f3bf8ff0c30ad3f273a3645

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp311-cp311-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp311-cp311-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 8b32d3a689fe05a9a4d12e15140940e91ba14a96d77119751b10ed0b922ad563
MD5 4dc30a4ce70f375c6a8b581ac3e64817
BLAKE2b-256 1cce6217eeda5e2a7b0d990d2b66aa4d89942b387e1cc0ff186a9af2948ca805

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1f2f4dff465f149fc1929af1bbdb67eed7f957e230f85f9f7a89cbaf838342e5
MD5 7be76cfedf9cc3b51f26ce66ccb51d47
BLAKE2b-256 1f328208924fc026d2268fb6548978d0d265fe59a567b543fe70d96123444ede

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7475a28b41d810a1783e04be2d76da0df9e99c19411d60e8ca5722b9228a0b69
MD5 c3b256914edb6fe2a06a5b28e30c6173
BLAKE2b-256 b2a8edab14a03581c9c311c174f9d5b03d06088f58115968bc040511b964a144

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ed44abdf8593f343195d8711bf629916ca8cff3ba1be2acb01c1ff263c7ba171
MD5 fc43bc65088ba422dcc61f248523baa0
BLAKE2b-256 4ea208e09e08d9d25e4de1f4b8e8df7d3d5d09e98fd6656973af388eba8696d5

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cf0bda7ff4d3b04390da4cfd7e3099d6c33e5c160e664a994a23d1ec0c95c2ac
MD5 34668be936e0cbfae834e738b0ca41be
BLAKE2b-256 6a64d768280de30544e9d0faaeffe68fad18ba77490260a103f8e2e11b360564

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp310-cp310-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp310-cp310-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 9fcdb9e55b29e237f1fdcfbd3908c011802566d6085bd8fe73e6853d30229e30
MD5 73a12db495d6741dfc3b5efd73d0da0e
BLAKE2b-256 abe1ef38cb8e97b40dc7a6a6fce70d2c79a817c3880739c3ad23eb07f8e7a50c

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cb5a875127ccdca023f2d1a0c893461a471633063401e5686a06d2b11be0094a
MD5 b7f67cc3c34bce3e9cd11613302d9048
BLAKE2b-256 2b81942fa993b88b8fd4ee4299fbead11bb9a3423e72e82cb176e5c1149e1d1f

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a27f3d59ae57af379502c38d51e943d0a3e07a387de0e80809ce4e513a94e3b2
MD5 24ee451ca8fefa79425c9b40349349fb
BLAKE2b-256 b7f7653633ad9e25eca90252d049d98854b4551e9d16a97189cb4d3fc83125cc

See more details on using hashes here.

File details

Details for the file sciqlopplots-0.19.2-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sciqlopplots-0.19.2-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 43e2623a6789428a7b847f74a855ea96f07618531d2d0ebb993421d46a57b444
MD5 d5b6d35632b7b564293034c58cbad34c
BLAKE2b-256 817c55d42f5ef12aee6ec34fe7e3cb6c7840a4c30ced6f3b91235a5186eea581

See more details on using hashes here.

Supported by

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