meine
meine 🌒 - A CLI file manager and system utility built with Textual. It combines intuitive command parsing with rich t…
A command line tool that draw plots on the terminal.
git clone https://github.com/red-data-tools/YouPlot.gitred-data-tools/YouPlotYouPlot is a command line tool that draws plots on the terminal.
📊 Powered by UnicodePlot
brew install youplot
gem install youplot
nix shell nixpkgs#youplot
guix install youplot
conda install -c conda-forge ruby
conda install -c conda-forge compilers
gem install youplot
🔮 YouPlot2 - Experimental project with pre-built binaries
uplot <command> [options] <data.tsv>
curl -sL https://git.io/ISLANDScsv \ | sort -nk2 -t, \ | tail -n15 \ | uplot bar -d, -t "Areas of the World's Major Landmasses"
For offline users: sorts files in a directory by size and shows a bar graph.
ls -l | awk '{print $9, $5}' | sort -nk 2 | uplot bar -d ' '
echo -e "from numpy import random;" \
"n = random.randn(10000);" \
"print('\\\n'.join(str(i) for i in n))" \
| python3 \
| uplot hist --nbins 20
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
For offline users: calculates sin values from 0 to 2*pi and plots a sine wave.
python3 - <<'PY' | uplot line
from math import sin, pi
for i in range(101):
print(f"{i*pi/50}\t{sin(i*pi/50)}")
PY
curl -sL https://git.io/IRIStsv \ | cut -f1-4 \ | uplot scatter -H -t IRIS
For offline users:
cat test/fixtures/iris.csv | cut -f1-4 -d, | uplot scatter -H -d, -t IRIS
curl -sL https://git.io/IRIStsv \ | cut -f1-4 \ | uplot density -H -t IRIS
For offline users:
cat test/fixtures/iris.csv | cut -f1-4 -d, | uplot density -H -d, -t IRIS
curl -sL https://git.io/IRIStsv \ | cut -f1-4 \ | uplot boxplot -H -t IRIS
For offline users:
cat test/fixtures/iris.csv | cut -f1-4 -d, | uplot boxplot -H -d, -t IRIS
Count processes by user ID.
ps aux | awk '{print $1}' | uplot count
Count the number of chromosomes where genes are located.
cat gencode.v35.annotation.gff3 \ | grep -v '#' | grep 'gene' | cut -f1 \ | uplot count -t "The number of human gene annotations per chromosome" -c blue
Note: count is not very fast because it runs in a Ruby script.
This is fine in most cases, as long as the data size is small. 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 -nrk1 \ | uplot bar --fmt yx -d ' ' -t "The number of human gene annotations per chromosome" -c blue
uplot is the shortened form of youplot. You can use either.
| Command | Description |
|---|---|
cat data.tsv | uplot <command> [options] |
Take input from stdin |
uplot <command> [options] data.tsv ... |
Take input from files |
pipeline1 | uplot <command> -O | pipeline2 |
Outputs data from stdin to stdout |
The following sub-commands are available.
| command | short | how it works |
|---|---|---|
| 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 |
| count | c | draw a barplot based on the number of occurrences (slow) |
| colors | color | show the list of available colors |
-o
-o - or no argument uplot s -o | .-O
-O - or no argument uplot s -O |.-H
-H option.-d
-d option for tab-delimited text since the default value is tab.uplot bar -d ' ' data.txt.-p --progress
ruby -e 'loop{puts rand(100)}' | uplot line --progress--help
--help option will show more detailed options for each subcommand.uplot hist --helpYouPlot treats the first column as the X axis and the second column as the Y axis. When working with multiple series, the first column is the X axis, the second column is series Y1, the third column is series Y2, and so on.
If you pass only one column of data for line and bar, YouPlot will automatically use a sequential number starting from 1 as the X-axis.
--fmt
--fmt xyy --fmt xyxy --fmt yx options give you a few more choices. See youplot <command> --help for more details.-x and -y options might be used to specify columns in the future.Use awk '{print $2, $1}' to swap columns. Use paste to concatenate series.
cat test/fixtures/iris.csv | sed '/^$/d' | datamash --header-in --output-delimiter=: -t, -g5 collapse 3,4 | cut -f2-3 -d: | sed 's/:/\n/g' | uplot s -d, -T --fmt xyxyYou can specify default options in a configuration file in YAML format. For more information, enter the following command.
uplot --config
YouPlot is a library under development, so even small improvements like typofix are welcome! Please feel free to send us your pull requests.
Fork the main repository by clicking the Fork button.
git clone https://github.com/your_name/YouPlot bundle install bundle exec rake test bundle exec rake install bundle exec exe/uplot
Do you need commit rights to my repository?
Do you want to get admin rights and take over the project?
If so, please feel free to contact us.
more like this
meine 🌒 - A CLI file manager and system utility built with Textual. It combines intuitive command parsing with rich t…
search projects, people, and tags