Skip to main content

Plot VCDS CSV data with Matplotlib – a small, testable CLI tool.

Project description

VCDS‑Plotter

Visualise raw CSV logs from a Volkswagen Car‑Diagnostic System (VCDS) with a single command.

vcds-plotter is a lightweight Python package that turns the raw CSV files produced by VCDS into clear, multi‑series plots.
It is intentionally simple: no GUI, no heavy dependencies – just matplotlib and the standard library.

If you’re a developer or power‑user, checkout the contributing guide – the code is small and welcoming.


📖 Table of Contents

Section Description
Features What the tool can do
Installation How to get it running
Configuration Where VCDS logs are expected
Usage Quick start and advanced options
Examples Real‑world command snippets
Troubleshooting Common issues & fixes
Development Build, test, lint
Contributing How to help
License Legal stuff

✨ Features

  • Fast, zero‑config plotting – a single command shows the newest log or a file you pick.
  • Fine‑grained metric selection – include / exclude specific measurements.
  • Custom groups – plot a subset of metrics in their own figure with a title you choose.
  • Unit‑based grouping – automatically split metrics by unit (e.g., km/h, %) into separate figures.
  • Convenience helpers – list all available metrics or CSV files with a flag.

📦 Installation

# From PyPI (recommended)
pip install vcds-plotter

The console script is installed as vcds‑plot.
See the help output for all options:

vcds-plot --help

From source

If you want to tweak the code or run tests:

git clone https://github.com/yourorg/vcds-plotter.git
cd vcds-plotter

# Create a virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate   # Windows: .\.venv\Scripts\activate

# Install dev dependencies
pip install -e ".[dev]"

⚙️ Configuration

The package expects VCDS logs to live in a directory called logs/ relative to the current working directory.
You can change this by editing the LOGS_DIR constant in vcds_plotter/config.py or, if you prefer, set the environment variable VCDS_LOGS_DIR before running.

# vcds_plotter/config.py
LOGS_DIR = Path(os.getenv("VCDS_LOGS_DIR", "logs")).resolve()

🚀 Usage

1️⃣ Basic plot – newest file, grouped by unit

vcds-plot --group-by-unit

2️⃣ Select specific metrics

vcds-plot --metric Motordrehzahl,Temperatur --exclude SensorX
  • --metric – comma‑separated list of measurements to include.
  • --exclude – measurements to skip (useful for noisy sensors).

3️⃣ Custom groups

vcds-plot --group "Engine & temp=Motordrehzahl,Temperatur"
  • --group accepts one or more NAME=METRICS pairs.
    Each group gets its own figure titled with NAME.

4️⃣ Explicit file

vcds-plot --file /path/to/log_2023-09-12.csv

5️⃣ Listing helpers

# List all CSV files in the logs directory
vcds-plot --list-files

# Show every measurement name available in a file
vcds-plot --list-metrics --file /path/to/file.csv

🛠️ Troubleshooting

Symptom Likely cause Fix
No CSV file found in logs/ The logs/ directory is missing or empty. Create the folder and copy VCDS logs into it, or set VCDS_LOGS_DIR.
No metrics left after applying filters. The filter lists are empty or exclude all available metrics. Double‑check the metric names (case‑sensitive) and try without --exclude.
Plot window freezes Very large CSV file or too many metrics. Use --exclude to trim, or plot in groups (--group-by-unit).
Matplotlib errors Outdated matplotlib or missing backend. Upgrade: pip install --upgrade matplotlib.

🤝 Contributing

We welcome issues, pull requests, and suggestions!
Please read the CONTRIBUTING.md for details on how to set up a dev environment, run tests, and follow our coding style.


📄 License

MIT © Supporterino
See the LICENSE file for details.


Happy plotting! 🚗💨

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

vcds_plotter-0.4.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

vcds_plotter-0.4.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file vcds_plotter-0.4.0.tar.gz.

File metadata

  • Download URL: vcds_plotter-0.4.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for vcds_plotter-0.4.0.tar.gz
Algorithm Hash digest
SHA256 da4281c53dda4d0a271520dcf46efb5f0d2a10a9d4b1fee7d4c9990124bbdbb3
MD5 b8422da12d22b52f30a501b794f85c1b
BLAKE2b-256 4b30269d259e462580095e7abcb5b91bd15cd319e00158a036585757445d2347

See more details on using hashes here.

File details

Details for the file vcds_plotter-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: vcds_plotter-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for vcds_plotter-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8e87ee7011a8019241ec6a458b967ec6a5bf3c469f2ec830d71d7753d9e6eaf
MD5 f8807a9bf70628fafdb966edd70e38bd
BLAKE2b-256 2b6faeec771e7f200332593066605a52e51b6395a24139ad2c30fc4a47cbc92c

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