Hacker News new | past | comments | ask | show | jobs | submit login
Visidata 2.0 (visidata.org)
203 points by polm23 on Oct 14, 2020 | hide | past | favorite | 22 comments



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.

https://youtu.be/N1CBDTgGtOU


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.

Watch the example videos to get a taste.


I recommend Jeremy Singer-Vine's tutorial for getting started: https://jsvine.github.io/intro-to-visidata/index.html

The tutorial gives you a good taste of what it can do and how to use it.


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 can't figure out how to get it configured as a pager (in postgres). I've been using pspg set in my .psqlrc.

I changed it to \setenv PAGER 'vd' and I just get a big chunk of text with no ability to navigate columns. How are you doing it with mysql?


I'm also interested in an answer to this.


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?


Have you seen brow.sh, for the text-mode browser?


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.


I haven't even thought about using it that way. Super cool, will do in the future.

> Load X, histogram, filter, sort is probably 90% of my use-cases.

Exaclty! Same for me.


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."

Edit: I found Windows wheels for curses here:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#curses

And there is a visidata.exe in the virtual environment, which I presume is equivalent to the vd command.


On windows you have to run

   pip install windows-curses
after pip installing visidata


I'm happy to see hdf5 support! Really looking forward to trying this out.


Seems like the brew tap has not been updated yet btw.


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:

    /usr/local/Cellar/visidata/1.5.2/libexec/bin/pip install -U visidata


great tip! Thanks :)!


Takes balls to name a tool "vd"




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: