Vis: visualize data
vis is a CLI for visualizing fuzzy tabular data without leaving the terminal.
Features
vis provides quick, on-the-fly visualizations of tabular data that may not be perfectly structured. Whether it's output from a command, log file, messy CSV, or more, vis can parse and visualize it with a short one-liner.
- Visualize 1D data as histograms and 2D data as scatter/line plots, via Matplotlib and Seaborn
- Fuzzy parsing extracts numbers from messy data, no strict columns or formats required
- Units and time parsing gracefully converts human-friendly formats like
5GB,2h30m,3 days ago - Boundary control with options to filter outliers or set axis limits
- Trend lines and KDE for deeper insights into data distributions and relationships
- Clean-only mode to just extract and print the parsed numbers without plotting, perfect for data cleaning
Install
pip install vis_cli
Examples
Histograms
awk 'BEGIN { for (i = 0; i < 1000; i++) print rand() * 100 }' | vis hist --kde
Scatter plots
echo -e 'messy 1 data2\nstill1.5results3\n2 1 in\n3 1.5\n2clean2 outputs' | vis scatter --trend
Line plots
seq 0 0.1 10 | awk '{print $1, sin($1)}' | vis line --xlab "Time" --ylab "sin(t)"
Histogram: Kubernetes pod ages
kubectl get pods --all-namespaces | vis hist --col 5 --sep ' ' --unit day --kde --xlab 'Pod age (days)'
Histogram: Kubernetes CPU utilization
kubectl top nodes | vis hist --static --col 2 --bins 10 --xmax 100 --xlab 'CPU util' --kde
Scatter plot: Kubernetes pod CPU vs memory limits
kubectl resource-capacity --pods | grep -v '\*.*\*' | vis scatter --static --cols 4 6 --xlab "CPU limits" --ylab "Memory limits" --trend
Usage
Main CLI
$ vis --help
Usage: vis [OPTIONS] COMMAND [ARGS]...
A fuzzy tabular data visualization tool.
Options:
-h, --help Show this message and exit.
Commands:
clean Clean the data from a file or stdin and print it to stdout.
hist Create a histogram from tabular data.
line Create a line plot from tabular data.
scatter Create a scatter plot from tabular data.
Histograms
$ vis hist --help
Usage: vis hist [OPTIONS]
Create a histogram from numerical data.
Options:
--bins INTEGER Number of bins for the histogram. [default: 0]
-f, --file TEXT Path to the input file. Defaults to stdin. [default: -]
--save Save the plot to file.
--justsave Save the plot to file without displaying it.
-o, --output TEXT Output filename for the plot. Implies --save.
--xlab TEXT Label for the x-axis. [default: Value]
--ylab TEXT Label for the y-axis.
--title TEXT Title for the plot.
--col INTEGER Column index to plot. [default: 0]
--static Use cols to index into columns instead of list of floats.
--sep TEXT Separator for the input columns. Implies --static.
--xmin TEXT Filter x-axis values below.
--xmax TEXT Filter x-axis values above.
--barcolor TEXT Color for the histogram bars.
--baredge TEXT Edge color for the histogram bars.
--baralpha FLOAT Alpha value for the histogram bars.
--stat [count|freq|prob|percent|density]
Statistical measure to display in the histogram. [default: Count]
--step INTEGER Step size for x-axis ticks.
--kde Add a kernel density estimate (KDE) to the histogram.
--unit [sec|min|hour|day] Coerce output to a specific unit. Implies --static.
--time Parse input and x-axes as datetimes.
--strict Fail on parse errors instead of skipping them.
--force Overwrite the output file if it exists.
--verbose Print verbose output.
-h, --help Show this message and exit.
How I use vis
I mainly use vis to investigate issues in Kubernetes clusters.
Check for large replica counts
kubectl get pinapps | vis hist --col 2 --sep ' '
Check for lagging jobs
kubectl get pinterestjobset | vis hist --time --col 1 --sep ' ' --xmax '1 week ago'
See also
Metadata
Release files for vis_cli 0.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| vis_cli-0.8.1.tar.gz | 10.1 kB | Without provenance | Details for vis_cli-0.8.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| vis_cli-0.8.1-py3-none-any.whl | Python 3 | none | any | Details for vis_cli-0.8.1-py3-none-any.whl |
Total release size: 19.7 kB
Release files / vis_cli-0.8.1.tar.gz
| Download URL | vis_cli-0.8.1.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0d219783d680c4e4d6076e6aa10bc98d6f3ad36936bf8d616466c60353a18ab3
|
|
BLAKE2b-256 checksum How to use checksums |
c16a8b9f880cac50f52b98f3251dd79c79090ec51fe735c7b5a1c43acca2e443
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.12 Darwin/25.6.0
|
Release files / vis_cli-0.8.1-py3-none-any.whl
| Download URL | vis_cli-0.8.1-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
274176f7c891183b5e05513e27adad0d14c61b5fc1c2f770346182267c7020a2
|
|
BLAKE2b-256 checksum How to use checksums |
b7cb737e5b14515e7195bdd2ee49df1a45f8da4fb652540ddf4663f71d6c3c5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.12 Darwin/25.6.0
|
Security for vis_cli 0.8.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.