Terminal Charts with Victory CLI

avatar
Ken Wheeler
29 Aug 2016
  • Share

The ability to collect, analyze, triangulate and visualize vast amounts of data in real time is something the human race has never had before.

  • Rick Smolan

After pushing out webpack-dashboard and seeing how much people enjoy terminal-based tooling, I thought perhaps I should see what else I can explore in this space.

Formidable’s ReactJS-based data visualization library Victory seemed like an awesome candidate for a command-line render target. I saw a project, hyperchart, by Matthew Conlen, that allowed users to generate interactive Victory charts into hyperterm-window.

This looked awesome, but I was looking for a way to expand the feature set and operate in a broader range of TERMs. I had also seen some ASCII/ANSI style visualizations in blessed-contrib while building webpack-dashboard, and they seemed super cool. However, porting would be too much of a challenge given the differences in APIs. Of course, ASCII/ANSI style charts didn’t seem practical for the mainstream use case.

Then I realized something: Victory outputs valid SVG markup. This, coupled with ReactDOM.renderToString, actually makes command-line chart generation really easy. I got to work on it, and today I’m happy to announce the initial release of Victory CLI!

Victory CLI is an easy-to-use command-line interface for generating and displaying Victory-based data visualizations. It can:

  • Render a variety of chart types
  • Use built-in themes
  • Render to PNG
  • Render to SVG
  • Display PNG renders in iTerm3
  • Take a custom JSON data input
  • Take a custom component script input to render from

Check it out in action:
Victory Command Line Interface displaying Victory based data visualizations

If you think this is cool and want to give it a try, just npm install -g victory-cli and head over to https://github.com/FormidableLabs/victory-cli to get started!

Insight, imagination and expertly engineered solutions to accelerate and sustain progress.