qplot
qplot is a command-line tool for quickly inspecting and plotting ordinary
scientific CSV, TSV, TXT, and DAT files. It detects delimiters and headers,
explains its x/y inference, supports explicit column overrides, and can show a
plot interactively or save it without a GUI.
Alpha status: qplot is usable, but its interface and automatic inference may change before the first stable release.
Installation
Python 3.10 or newer is required. The distribution is named qplot-cli, while
the command it installs is qplot.
Once a release is available on PyPI, the recommended installation for command- line use will be pipx:
pipx install qplot-cli
Alternatively, install it into the current Python environment:
python -m pip install qplot-cli
Until the first PyPI release, install directly from GitHub:
python -m pip install "git+https://github.com/Al3xPhys/qplot-cli.git"
Confirm the command is available:
qplot --version
qplot --help
If Windows cannot find qplot after installation, use python -m qplot or
ensure the Python Scripts directory reported by python -m site --user-base is
on PATH.
Quick start
Inspect a file without plotting:
qplot data.csv --columns
qplot data.csv --info
Infer columns and open an interactive plot:
qplot data.csv
Save a plot on a desktop, server, or CI runner without opening a window:
qplot data.csv --no-gui --save plot.png
Select columns by exact case-insensitive name or zero-based index:
qplot measurements.tsv -x time -y voltage -y temperature
qplot measurements.tsv -x 0 -y 1 -y 2
Apply plotting and loading overrides:
qplot data.csv --scatter --logx --logy --title "Field sweep"
qplot data.txt --delimiter ";" --header 2 --rows 100:500
qplot headerless.dat --no-header --all
--rows START:STOP uses zero-based, stop-exclusive slicing. --all plots all
numeric y columns remaining after x selection. Run qplot --help for every
option.
Automatic behaviour
The loader samples the file to detect comma, tab, semicolon, or space
separators and whether a header is present. Inference deterministically scores
x candidates using recognised names, monotonicity, uniqueness, and spacing. Y
candidates use recognised response names and variation. Automatic plots include
at most three y traces; --all removes that limit.
Platform notes
Headless plotting uses Matplotlib's Agg backend and does not require a display
server. Interactive plotting uses a GUI backend available on the host system.
Windows Python installations commonly include Tk support; some Linux systems
need an additional package such as python3-tk. If interactive plotting is not
available, use --no-gui --save OUTPUT.png.
Windows and Ubuntu are tested in continuous integration on Python 3.10, 3.12, and 3.14. Other Python versions from 3.10 onward are expected to work but are not included in the current CI matrix.
Development
Clone the repository and install it in editable mode with development tools:
python -m pip install -e ".[dev]"
python -m pytest
CI runs the test suite on Windows and Ubuntu and builds both a wheel and source distribution. See CONTRIBUTING.md before proposing a larger change.
Current limitations
- One input file is supported per invocation.
- Files are loaded eagerly into memory and decoded as UTF-8.
- Detection supports ordinary delimited tables and leading blank or comment lines; arbitrary instrument metadata and concatenated tables are not yet interpreted.
- Interactive plotting depends on a working local Matplotlib GUI backend.
- HDF5, Excel, NumPy, Qt, fitting, smoothing, presets, arbitrary expressions, and plugins are intentionally outside this alpha.
Licence
qplot is released under the MIT License.
Metadata
Release files for qplot-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qplot_cli-0.1.0.tar.gz | 22.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qplot_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.2 kB
Release files / qplot_cli-0.1.0.tar.gz
| Download URL | qplot_cli-0.1.0.tar.gz |
|---|---|
| Size | 22.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
98c5bf3fbbb894203ff40b033e7af59fc18db93af472a166ba539f8b0ebd8189
|
|
BLAKE2b-256 checksum How to use checksums |
50662fae50960806f1f10e517b9e4e1a55d99e00da0312a72331c440c50520a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / qplot_cli-0.1.0-py3-none-any.whl
| Download URL | qplot_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7be81f2a16fa9b33df22e353538632ff5f5b699705bb798106679fbe8ac752fa
|
|
BLAKE2b-256 checksum How to use checksums |
79aabeddb67e28cb5ec92f45d97d2127e00b2d7cdbf37296e4eb8dcbd43493d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency log