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.1.tar.gz
(945.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.1-py3-none-any.whl
(953.1 kB
view details)
File details
Details for the file toucan_plot-0.5.1.tar.gz.
File metadata
- Download URL: toucan_plot-0.5.1.tar.gz
- Upload date:
- Size: 945.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 |
6c4608e1b9c40c17831f65037331712c5f8c22b0cd19773f2824ca39584fb755
|
|
| MD5 |
487cee3c6907f0aadd79efe90241d5fb
|
|
| BLAKE2b-256 |
f08bb6a64427976c97b9aafec23b23730bfb12431d0828c656a0c134ed3e7695
|
File details
Details for the file toucan_plot-0.5.1-py3-none-any.whl.
File metadata
- Download URL: toucan_plot-0.5.1-py3-none-any.whl
- Upload date:
- Size: 953.1 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 |
c04edc095815546c549c29f6bfb55fd49576b00d19292fe8691a23fbeab27273
|
|
| MD5 |
a6226fbc2c6263f9c2acdbaf59792b39
|
|
| BLAKE2b-256 |
e7340f3cf6df4422a711ff13c0a04d616ea9953cb1a7ef0c0ab9369172f75fb9
|