Skip to main content

Vis: visualize data

vis is a CLI for visualizing fuzzy tabular data without leaving the terminal.

vis logo

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

vis histograms

Scatter plots

echo -e 'messy 1 data2\nstill1.5results3\n2 1 in\n3    1.5\n2clean2  outputs' | vis scatter --trend

vis scatter plots

Line plots

seq 0 0.1 10 | awk '{print $1, sin($1)}' | vis line --xlab "Time" --ylab "sin(t)"

vis line plots

Histogram: Kubernetes pod ages

kubectl get pods --all-namespaces | vis hist --col 5 --sep '   ' --unit day --kde --xlab 'Pod age (days)'

vis histogram Kubernetes pod age

Histogram: Kubernetes CPU utilization

kubectl top nodes | vis hist --static --col 2 --bins 10 --xmax 100 --xlab 'CPU util' --kde

vis histogram Kubernetes CPU utilization

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

vis scatter plot Kubernetes pod CPU vs memory limits

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

  • 🪄 Kuba: the magical kubectl companion
  • 🐙 Jdd: JSON diff diver, the time machine for your JSON
  • ⚡️ Dotsync: dotfiles everywhere, instantly
  • ☁️ Appa: Markdown previews with live reload
  • 🔮 PDate: human-readable dates and times

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)

Source distribution for vis_cli 0.8.1
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)

Table of built distributions (wheels) for vis_cli 0.8.1
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page