The "video demo" is pretty buried in the site, here it is for your enjoyment. Like most viz, seeing it in action makes it much clearer than reading about it.
This is a game changer tool for exploring and manipulating tabular data. Give yourself 30 minutes to get the feel of how its wacky keybindings work (they are well thought out) and you'll be richly rewarded.
This takes its rightful place in the Hall of Very Good Tools alongside vim, htop, and multitail.
My visidata protip is using it as a pager for terminal database clients. I'm using it with mycli/MySQL right now but it should work with any client that lets you use a custom result pager. This setup has entirely replaced gui db clients which I've found to be consistently awful.
I wish a day will come when I' not going to need GUI apps anymore. This project seems like making this day a little bit closer. But we still lack a decent text-mode browser with latest HTML5 and JavaScript support and the code editors still are not nearly as smart and easy as JetBrains IDEs are. Is there already a good HN client for the terminal by the way?
Why would you want to do something like this for visualizing data instead of using ggplot or matplotlib (or really anything that can get you a real image instead of ascii?)
My main use case for this is: I get some random data file thrown at me. Could be json, csv, xlsx anything that has data that can somehow be interpreted somewhat tabular and I want to find out quickly what's going on.
You can really go from not knowing what's in a file to a decent understanding in less than a minute.
Here's a quick example from today of why I find it such a general purpose tool
Pipe in some fixed-width formatted data
kubectl get pods | vd -f fixed -
Gives me a searchable, usable output. Press right to highlight the status column, shift-f and I get a count (+histogram) of the statuses. Three have failed. Hit enter on that row and I can see specifically which ones have failed. This takes a few seconds (I just tried and did it under 5 from running the above command).
If I knew I wanted the failed ones I could have grepped or similar but I can then order by most restarts, etc.
This is a tiny part of the functionality but it's an example of "there's some tabular-ish data but what's there?". Load X, histogram, filter, sort is probably 90% of my use-cases.
In my personal experience, the visualization in visidata is nice but secondary to the exploratory data slicing you can do. It's not like a not terrible keyboard driven Excel.
This isn't a tool for visualizing data (in the sense of plotting graphs) - the capability is just an icing on the cake. It's a tool for exploring, analyzing, summarizing and modifying tabular data that's lightweight, versatile, and much more ergonomic than anything else out there (by virtue of a keyboard-oriented UI).
The real interest is in manipulating the data, not just plotting it. Actually after manipulating, if you need to produce a plot the tools you mention can be used.
I looked at the dizzying list of install options, then noticed pip at the top. After installing into a virtual environment, I found a tutorial that said to run the vd command. I wasn't sure if pip would install a command in my path, and it didn't. I tried to run it as python -m visidata, and got a ModuleNotFoundError for _curses.
Is it possible to get this thing running on Windows, or do I need to do it under WSL (or another computer)? Google turned up a package called UniCurses "with syntax close to that of the original NCurses."
Little-known Homebrew tip: Python applications are installed in their own Homebrew-managed virtual environment, which means you can run pip in them to upgrade to the latest version of packages even when the tap hasn't been updated yet.
I just tried this and it worked - now "vd" gives my Visidata 2.0 on my system:
https://youtu.be/N1CBDTgGtOU