A versatile PySide6 and Matplotlib-based plotting tool for CSV and SMV data files.
Project description
TouCAN-Plot
An interactive PySide6 + Matplotlib plotting tool for CSV, SMV, and CAN bus log files.
Features
Supported File Formats
| Format | Description |
|---|---|
.csv / .smv |
Comma or semicolon delimited data (auto-detected) |
.mf4 / .mf4z |
ASAM MDF v4 measurement data (via asammdf) |
.blf |
CAN bus binary log |
.trc |
CAN bus trace log |
.asc |
CAN bus ASCII log |
.dbc |
CAN database for signal decoding (required with BLF/TRC/ASC) |
- Auto-detects
Time/timestampcolumns as the default X axis - CAN signals are forward-fill interpolated and named as
Message.Signal
Plot Interaction
- Shared X axis across all subplots with linked panning and zooming
- Secondary Y axis support per series
- Double-click a subplot to edit its series, or right-click for a context menu
- Measure cursors — two draggable vertical cursors with a live delta table
- Expression evaluator — create computed series from math expressions (e.g.
sin("series_A") + "series_B" * 2) - Multi-file merge — overlay series from different files, each in its own tab
- X axis switching — reassign the X column without losing subplot configuration
- Per-series properties (label, color, linewidth, linestyle, marker) persisted across all redraws
- Live mouse coordinates in the status bar
Toolbar
| Button | Action |
|---|---|
| Home | Auto-fit all axes |
| Back / Forward | Navigate view history |
| Pan | Pan mode |
| Zoom | Zoom rectangle mode |
| Customize | Matplotlib per-curve property editor |
| Save | Export figure to file |
| Add subplot | Open the series selector |
| Fit Y | Auto-fit Y axis keeping current X range |
| Measure | Toggle measure cursors |
| X axis | Select X axis column |
Menus
- File → Open (
Ctrl+O) — open one or more files (multi-select) - File → Merge (
Ctrl+M) — append files to the current session - Style → Customize plot style — preset, line mode, marker, text size, grid, legend
- Style → Theme — Dark / Light (icons swap automatically)
Right-Click Context Menu
- Add subplot above / below
- Delete subplot
- Legend: show/hide, position (14 options), orientation, text size
- Line style: plot / step
Style Presets
Four built-in presets: Default, Style 1, IEEE, Other.
Installation
From PyPI (recommended)
Install the released package from PyPI:
pip install toucan-plot
Usage
# Open a CSV file
toucan-plot data.csv
# Open an MF4 measurement file
toucan-plot recording.mf4
# Open a CAN log with DBC decoding
toucan-plot recording.blf signals.dbc
# Open multiple files (merge mode)
toucan-plot file1.csv file2.csv
# Launch without files
toucan-plot
Requirements
- Python ≥ 3.13
- PySide6
- Matplotlib
- NumPy
- pyqtdarktheme
- SciencePlots
- python-can (for CAN log files)
- cantools (for DBC decoding)
- asammdf (for MF4 files)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
toucan_plot-0.5.2.tar.gz
(952.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
toucan_plot-0.5.2-py3-none-any.whl
(960.2 kB
view details)
File details
Details for the file toucan_plot-0.5.2.tar.gz.
File metadata
- Download URL: toucan_plot-0.5.2.tar.gz
- Upload date:
- Size: 952.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc767de9d630951a03ab772ef972a60edf863b0835059198949fd34d54ed30c6
|
|
| MD5 |
b690c3530bdcda9d2e14218cd4b85c9b
|
|
| BLAKE2b-256 |
137e2409030882f0eea99dd533d9453fa0822154b2e43889c9d655e980dbe0a0
|
File details
Details for the file toucan_plot-0.5.2-py3-none-any.whl.
File metadata
- Download URL: toucan_plot-0.5.2-py3-none-any.whl
- Upload date:
- Size: 960.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1251523ee2cf013ca9b4a1d6dbf2e1d901ac3c8c2922799d41c96858b0d59529
|
|
| MD5 |
5945c34386c9a502a6f8cf467bcbab10
|
|
| BLAKE2b-256 |
6621c993a3d3d32a4a9f2d1d8d024d9ac3895aa8927b37254939868520da5c80
|