rasciigraph

Tiny Rust library to draw pretty line graphs using ascii characters.

Usage

Add this to your Cargo.toml toml [dependencies] rasciigraph = "0.2" Add this line of code to top of your source code rust extern crate rasciigraph;

If you prefer to use Rust 2018 edition you may prefer to add this line to your source code rust use rasciigraph::{plot, Config}

Examples

This code ``` rust extern crate rasciigraph;

use rasciigraph::{plot, Config};

fn main() { println!( "{}", plot( vec![ 0.0, 0.0, 0.0, 0.0, 1.5, 0.0, 0.0, -0.5, 9.0, -3.0, 0.0, 0.0, 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.5, 0.0, 0.0, -0.5, 8.0, -3.0, 0.0, 0.0, 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.5, 0.0, 0.0, -0.5, 10.0, -3.0, 0.0, 0.0, 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0 ], Config::default() .withoffset(10) .withheight(10) .withcaption("I'm a doctor, not an engineer.".tostring()) ) ); }

Produces an output like this 10.00 ┤ ╭╮
8.70 ┤ ╭╮ ││
7.40 ┼ ││ ╭╮ ││
6.10 ┤ ││ ││ ││
4.80 ┤ ││ ││ ││
3.50 ┤ ││ ││ ││
2.20 ┤ ││ ╭╮ ││ ╭╮ ││ ╭╮
0.90 ┤ ╭╮ ││ ╭╯╰╮ ╭╮ ││ ╭╯╰╮ ╭╮ ││ ╭╯╰╮
-0.40 ┼───╯╰──╯│╭─╯ ╰───────╯╰──╯│╭─╯ ╰───────╯╰──╯│╭─╯ ╰─── -1.70 ┤ ││ ││ ││
-3.00 ┤ ╰╯ ╰╯ ╰╯
I'm a doctor, not an engineer. ```

With 0.2.0 version you can also plot multi series rust fn main() { let res = rasciigraph::plot_many( vec![ vec![0.0f64, 1.0, 0.0], vec![2.0, 3.0, 4.0, 3.0, 2.0], vec![4.0, 5.0, 6.0, 7.0, 6.0, 5.0, 4.0], ], rasciigraph::Config::default().with_width(21), ); print!("{}", res); }

This is the output 7.00 ┤ ╭──╮ 6.00 ┤ ╭───╯ ╰───╮ 5.00 ┤ ╭──╯ ╰──╮ 4.00 ┼─╯ ╭───╮ ╰─ 3.00 ┤ ╭──╯ ╰──╮ 2.00 ┼─╯ ╰── 1.00 ┤ ╭───╮ 0.00 ┼─╯ ╰─

Acknowledgement

This crate is rustlang port of library asciigraph written by @guptarohit.

Above library is also port of library asciichart written by @kroitor.