A command line tool that draw plots on the terminal.
Go to file
2020-12-16 18:18:29 +09:00
.github Add MacOS to CI 2020-11-23 21:47:53 +09:00
exe Add youplot as an executable file 2020-11-23 13:46:33 +09:00
lib Changes the default value to stdout if no argument is specified with the -o option 2020-12-16 12:51:16 +09:00
test Changes the default value to stdout if no argument is specified with the -o option 2020-12-16 12:51:16 +09:00
.gitignore Update .gitignore 2020-08-03 09:42:55 +09:00
Gemfile Rename uplot to youplot 2020-11-23 13:23:59 +09:00
LICENSE.txt first plot 2020-07-28 23:07:15 +09:00
Rakefile Rubocop auto correct 2020-09-19 00:08:09 +09:00
README.md Update README.md 2020-12-16 18:18:29 +09:00
youplot.gemspec Add youplot as an executable file 2020-11-23 13:46:33 +09:00

Logo

Build Status Gem Version Docs Latest The MIT License DOI

YouPlot is a command line tool for Unicode Plotting working with data from standard stream.

📊 Powered by UnicodePlot

Installation

gem install youplot

Quick Start

cat data.tsv | uplot <command> [options]

barplot

curl -sL https://git.io/ISLANDScsv \
| sort -nk2 -t, \
| tail \
| uplot bar -d, -t "Areas of the World's Major Landmasses"

barplot

histogram

echo -e "from numpy import random;" \
        "n = random.randn(10000);"  \
        "print('\\\n'.join(str(i) for i in n))" \
| python \
| uplot hist --nbins 20

histogram

lineplot

curl -sL https://git.io/AirPassengers \
| cut -f2,3 -d, \
| uplot line -d, -w 50 -h 15 -t AirPassengers --xlim 1950,1960 --ylim 0,600

lineplot

scatter

curl -sL https://git.io/IRIStsv \
| cut -f1-4 \
| uplot scatter -H -t IRIS

scatter

density

curl -sL https://git.io/IRIStsv \
| cut -f1-4 \
| uplot density -H -t IRIS

density

boxplot

curl -sL https://git.io/IRIStsv \
| cut -f1-4 \
| uplot boxplot -H -t IRIS

boxplot

count

In this example, YouPlot counts the number of chromosomes where the gene is located from the human gene annotation file and create a bar chart. The human gene annotation file can be downloaded from the following website.

cat gencode.v35.annotation.gff3 \
| grep -v '#' | grep 'gene' | cut -f1 | \
 uplot count -t "The number of human gene annotations per chromosome"  -c blue

count

Note: count is not very fast because it runs in a Ruby script. This is fine if the data is small, that is, in most cases. However, if you want to visualize huge data, it is faster to use a combination of common Unix commands as shown below.

cat gencode.v35.annotation.gff3 | grep -v '#' | grep 'gene' | cut -f1 \
|sort | uniq -c | sort -nrk2 | awk '{print $2,$1}' \
| uplot bar -d ' ' -t "The number of human gene annotations per chromosome"  -c blue

Usage

how to use YouPlot?

uplot is the same as youplot. You can use either.

Reads data from standard input cat data.tsv | uplot <command> [options]
Reads data from a file uplot <command> [options] data.tsv
Outputs data from stdin to stdout pipeline1 | uplot <command> -O | pipeline2

plot commands

command short
barplot bar draw a horizontal barplot
histogram hist draw a horizontal histogram
lineplot line draw a line chart
lineplots lines draw a line chart with multiple series
scatter s draw a scatter plot
density d draw a density plot
boxplot box draw a horizontal boxplot

help

Use --help to print command-specific options.

uplot hist --help

Usage: uplot histogram [options] <in.tsv>

Options for histogram:
        --symbol VAL         character to be used to plot the bars
        --closed VAL
    -n, --nbins VAL          approximate number of bins

Options:
...

colors

uplot colors

Why YouPlot?

Wouldn't it be a bit of pain to have to run R, Python, Julia, gnuplot or whatever REPL just to check your data? YouPlot is a command line tool for this purpose. With YouPlot, you can continue working without leaving your terminal and shell.

Development

git clone https://github.com/your_name/GR.rb # Clone the Git repo
cd GR.rb
bundle install             # Install the gem dependencies
bundle exec rake test      # Run the test
bundle exec rake install   # Installation from source code

Contributing

License

MIT License.