explaingit

red-data-tools/youplot

4,745RubyAudience · developerComplexity · 1/5LicenseSetup · easy

TLDR

YouPlot lets you draw charts and graphs directly in your terminal by piping data into the `uplot` command, no browser or graphical interface needed.

Mindmap

mindmap
  root((repo))
    What it does
      Terminal charts
      Pipe data in
      Live updates
    Chart Types
      Bar and histogram
      Line and scatter
      Box and density
    Data Input
      CSV or TSV
      File or pipe
      Network via curl
    Install Options
      Homebrew Mac
      Ruby gem
      Nix and Conda
    Use Cases
      Inspect mid-pipeline
      Quick data viz
      Count frequencies
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Visualise CSV or TSV data as a bar chart, histogram, or scatter plot right in the terminal without opening a spreadsheet or browser.

USE CASE 2

Drop into a shell pipeline to inspect data visually mid-stream while still passing the raw data on to the next command.

USE CASE 3

Watch a live-updating chart as streaming data arrives in real time using the experimental progress mode.

USE CASE 4

Quickly count how often each value appears in a dataset and render a frequency bar chart with the count command.

Tech stack

RubyCLIUnicodePlot

Getting it running

Difficulty · easy Time to first run · 5min

Install via Homebrew (`brew install youplot`) or `gem install youplot`. Run `uplot --help` to see chart types and flags.

MIT license, free to use, modify, and distribute for any purpose.

In plain English

YouPlot is a command-line tool that draws charts and graphs directly in your terminal window, without needing any graphical interface or web browser. You run it with the command uplot, pipe your data into it, and it renders a visual plot right there in the text output. It was built by the red-data-tools team and is written in Ruby. The tool supports several chart types: bar charts, histograms, line charts, scatter plots, density plots, and box plots. You can also use a count mode that tallies how often each value appears and draws a bar chart of those counts. Each chart type has a short alias (for example, bar for barplot, hist for histogram) so you can type quickly at the command line. Data comes in as tab-separated or comma-separated text. You can feed it from a file, from another command's output via a pipe, or even from network requests using tools like curl. If your data has a header row, you pass the -H flag to tell YouPlot to treat the first line as column names. You can also control which column goes on which axis and adjust things like the number of bins in a histogram or the width and height of the chart. One practical use is dropping YouPlot into a longer pipeline: it can pass the raw data through to the next command in the chain while still drawing the chart to standard error, so you can inspect data visually mid-pipeline without interrupting the flow. An experimental progress mode lets you watch a live-updating chart as data arrives in real time, though that feature is still under development. Installation is available through several package managers, including Homebrew for Mac, the Ruby gem system, Nix, Guix, and Conda. The project is open source under the MIT license.

Copy-paste prompts

Prompt 1
I have a CSV file called data.csv with columns 'date' and 'sales'. Write a one-liner using uplot to draw a line chart of sales over time in my terminal.
Prompt 2
Show me how to pipe the output of `curl https://example.com/data.tsv` into uplot to display a bar chart without saving the file.
Prompt 3
I want to inspect a histogram of column 3 in my data mid-pipeline and then pass the data on to `awk`. Write the uplot command that does this without breaking the pipeline.
Prompt 4
Write a shell script that reads log lines, counts how often each HTTP status code appears, and plots a frequency bar chart using uplot.
Prompt 5
How do I install YouPlot with Homebrew and draw a scatter plot from a TSV file that has a header row?
Open on GitHub → Explain another repo

← red-data-tools on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.