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.3.0.tar.gz (9.4 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.3.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vcds_plotter-0.3.0.tar.gz
  • Upload date:
  • Size: 9.4 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.3.0.tar.gz
Algorithm Hash digest
SHA256 b5d27af4799fb24fbe6f2f0c6b859f60081111857a8fc4bc22cf5b6cb99a1406
MD5 9ce5168d2eb75bb3add94c6584e616b1
BLAKE2b-256 bcb6cf7bea77a70c8c7f647619db5694c361829bc134ffb23aeeafeb47c13e60

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vcds_plotter-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 af618719df4545e3b1292e221e00b8be881b5d08f89a8ccaa02d147d844a4f9c
MD5 2b5f066a0793c190fada3c4c9eef17df
BLAKE2b-256 737e9f1697aa19cfe24b776d55fff8f1cd5908e24f069777e2e1476031076ca4

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