Ascii Graph

Draw beautiful graphs in ascii art!

Showcase

```rust let mut g1 = Graph::default();

g1.set1ddata(&vec![0, 1, 1, 0, 2, 0, 1, 2, 0, 0, 0, 1, 0, 1000]) .setymin(-1) .setymax(3) .setplotheight(20) .setblockwidth(3) .setylabelinterval(1) .settitle("HEllo World!123123123") .setpaddings([1;4]) .setbigtitle(true) .setxaxislabel("xaxislabel\nxz") .setyaxislabel("yaxis_label\nyy");

println!("{g1}");

let mut g2 = Graph::default(); g2.set1ddata(&vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]) .setplotheight(4) .setymin("0.0") .setymax(16.0) .setblockwidth(3) .setylabel_interval(1);

println!("{g2}");

let mut g3 = Graph::default(); g3.set1ddata::(&vec![1]) .setblockwidth(12);

println!("{g3}");

let mut g4 = Graph::default(); g4.set1ddata( &vec![ vec![32; 1024], vec![16, 1024], vec![32; 1024], ].concat() );

println!("{g4}");

let mut g5 = Graph::default(); g5.set1ddata(&vec![1001, 1002, 1003, 1004, 1003, 1002, 1001, 1, 2, 3, 1000, 1006]);

println!("{g5}");

let mut g6 = Graph::new(52, 26); g6.set2ddatahighresolution( &(0..(52usize * 104)).map( |i| (i / 52, i % 52) ).filter( |(x, y)| { let d = x.absdiff(52) * x.absdiff(52) + y.absdiff(26) * y.absdiff(26) * 4;

        1200 < d && d < 2000
    }
).collect::<Vec<(usize, usize)>>(),
&vec![None; 52],
&vec![None; 26],

);

println!("{g6}");

let mut g7 = Graph::new(24, 24); g7.setblockwidth(5); g7.set1ddata( &vec![0, 0, 0, 5000, 0, 0, 0, 7000, 0] );

let mut g8 = Graph::new(24, 24); g8.setblockwidth(5); g8.setskiprange(SkipValue::none()); g8.set1ddata( &vec![0, 0, 0, 5000, 0, 0, 0, 7000, 0] );

println!("{}", mergehoriz( &g7.tostring(), &g8.to_string(), Alignment::First, 2 )); ```

```

▌ ▐ ▛▀▀ ▜▌ ▜▌ ▌ ▐ ▜▌ ▐ ▐▌ ▟▌ ▞▀▚ ▞▀▚ ▟▌ ▞▀▚ ▞▀▚ ▟▌ ▞▀▚ ▞▀▚ ▛▀▜ ▛▀▀ ▐▌ ▐▌ ▞▀▚ ▌▄▐ ▞▀▚ ▄▄ ▐▌ ▞▀▜ ▐▌ ▐▌ ▞ ▝▌ ▐▌ ▞ ▝▌ ▐▌ ▞ ▝▌ ▌ ▐ ▙▄▄ ▐▙ ▐▙ ▚▄▞ ▛ ▜ ▚▄▞ ▌ ▐▙ ▚▄▟ ▗▖ ▟▙ ▗▙▄ ▚▄▞ ▟▙ ▗▙▄ ▚▄▞ ▟▙ ▗▙▄ ▚▄▞

   y_axis_label                                                         
   yy                                                                   
       1062│                                                            
       1044│                                                            
       1026│                                                            
       1008│                                       ▄▄▄                  
   991.0892│                                       ███                  
   973.2678│                                       ███                  
   955.4464│                                       ███                  
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
      2.125│            ▄▄▄      ▄▄▄               ███                  
     1.9375│            ███      ███               ███                  
       1.75│            ███      ███               ███                  
     1.5625│            ███      ███               ███                  
      1.375│            ███      ███               ███                  
     1.1875│            ███      ███               ███                  
          1│   ██████   ███   ██████         ███   ███                  
     0.8125│   ██████   ███   ██████         ███   ███                  
      0.625│   ██████   ███   ██████         ███   ███                  
     0.4375│   ██████   ███   ██████         ███   ███                  
       0.25│   ██████   ███   ██████         ███   ███                  
     0.0625│▆▆▆██████▆▆▆███▆▆▆██████▆▆▆▆▆▆▆▆▆███▆▆▆███                  
           ╰──────────────────────────────────────────x_axis_label      
            0     2     4     6     8     10    12    xz                
               1     3     5     7     9     11    13

16│ ▂▂▂▄▄▄▆▆▆███ 12│ ▂▂▂▄▄▄▆▆▆███████████████ 8│ ▂▂▂▄▄▄▆▆▆███████████████████████████ 4│ ▂▂▂▄▄▄▆▆▆███████████████████████████████████████ ╰─────────────────────────────────────────────────── 0 2 4 6 8 10 12 14 16 1 3 5 7 9 11 13 15
8│

7│

6│

5│

4│

3│

2│

1│████████████ │████████████ 0│████████████ │████████████ -1│████████████ │████████████ -2│████████████ │████████████ -3│████████████ │████████████ -4│████████████ │████████████ -5│████████████ │████████████ ╰──────────── 0

1086│                                                                                
    │                                                                                
1061│                                                                                
    │                                                                                
1036│                                                                                
    │                                        █                                       
1011│                                        █                                       
    │                                        █

986.8│ █
│ █
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33│▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ █▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ │███████████████████████████████████████ ████████████████████████████████████████ 30.88235│███████████████████████████████████████ ████████████████████████████████████████ │███████████████████████████████████████ ████████████████████████████████████████ 28.7647│███████████████████████████████████████ ████████████████████████████████████████ │███████████████████████████████████████ ████████████████████████████████████████ 26.64705│███████████████████████████████████████ ████████████████████████████████████████ │███████████████████████████████████████ ████████████████████████████████████████ 24.52941│███████████████████████████████████████ ████████████████████████████████████████ │███████████████████████████████████████ ████████████████████████████████████████ 22.41176│███████████████████████████████████████ ████████████████████████████████████████ │███████████████████████████████████████ ████████████████████████████████████████ 20.29411│███████████████████████████████████████ ████████████████████████████████████████ │███████████████████████████████████████ ████████████████████████████████████████ 18.17647│███████████████████████████████████████ ████████████████████████████████████████ │███████████████████████████████████████ ████████████████████████████████████████ 16.05882│████████████████████████████████████████████████████████████████████████████████ ╰──────────────────────────────────────────────────────────────────────────────── 0 51 153 307 410 563 666 820 922 1076 1230 1383 1537 1691 1845
0 102 205 358 461 615 717 871 1024 1127 1281 1435 1588 1742 1896 1006│
│ ██████ 1005│ ██████ │ ██████ 1004│ ██████ │ ██████ 1004│ ▆▆▆▆▆▆▆ ██████ │ ███████ ██████ 1003│ ███████ ██████ │ ████████████████████ ██████ 1002│ ████████████████████ ██████ │ ▄▄▄▄▄▄▄████████████████████▄▄▄▄▄▄ ██████ 1001│ █████████████████████████████████ ██████ │ █████████████████████████████████ ██████ 1001│▆▆▆▆▆▆▆█████████████████████████████████▆▆▆▆▆▆▆ ██████ │███████████████████████████████████████████████ ██████ 1000│███████████████████████████████████████████████ ██████ │███████████████████████████████████████████████ █████████████ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.125│███████████████████████████████████████████████ ▄▄▄▄▄▄▄█████████████ │███████████████████████████████████████████████ ████████████████████ 2.625│███████████████████████████████████████████████ ████████████████████ │███████████████████████████████████████████████ ████████████████████ 2.125│███████████████████████████████████████████████ ▄▄▄▄▄▄████████████████████ │███████████████████████████████████████████████ ██████████████████████████ 1.625│███████████████████████████████████████████████ ██████████████████████████ │███████████████████████████████████████████████ ██████████████████████████ 1.125│███████████████████████████████████████████████▄▄▄▄▄▄▄██████████████████████████ ╰──────────────────────────────────────────────────────────────────────────────── 0 2 4 6 8 10
1 3 5 7 9 11


│ ▗▄▄▄▟███████▄▄▄▄
│ ▗▄▟███████████████████▄▄
│ ▗▄██████████▀▀▀▀▀▀▜█████████▙▄
│ ▗▟██████▛▀▘ ▀▀███████▄
│ ▄██████▀ ▝▜█████▙▖
│ ▟█████▀ ▝▜█████▖
│ ▟████▛ ▝█████▖
│ ▟████▛ ▝█████▖
│ ▐████▛ ▝█████
│ ▟████▘ ▜████▖
│ █████ ▐████▌
│ █████ ▐████▌
│ █████ ▐████▌
│ ▐████▌ █████
│ ▝█████▖ ▟████▛
│ ▝█████▖ ▟████▛
│ ▝█████▄ ▗▟████▛
│ ▝██████▄ ▗▟█████▛
│ ▜██████▄▖ ▄▟██████▘
│ ▝▜███████▙▄▄▄ ▗▄▄▄████████▀
│ ▀▜███████████████████████▀▘
│ ▝▀▜███████████████▀▀
│ ▝▀▀▀▀▀▀▀

╰────────────────────────────────────────────────────

7125│ ▂▂▂▂▂ 7437│
│ █████ │ ▆▆▆▆▆
6825│ █████ 6781│ █████
│ █████ │ █████
6525│ █████ 6125│ █████
│ █████ │ █████
6225│ █████ 5468│ █████
│ █████ │ ▆▆▆▆▆ █████
5925│ █████ 4812│ █████ █████
│ █████ │ █████ █████
5625│ █████ 4156│ █████ █████
│ █████ │ █████ █████
5325│ █████ 3500│ █████ █████
│ █████ │ █████ █████
5025│ █████ █████ 2843│ █████ █████
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ █████ █████
312.5│ █████ █████ 2187│ █████ █████
│ █████ █████ │ █████ █████
156.25│ █████ █████ 1531│ █████ █████
│ █████ █████ │ █████ █████
0│█████████████████████████████████████████████ 875│ █████ █████
│█████████████████████████████████████████████ │ █████ █████
-156.25│█████████████████████████████████████████████ 218.75│▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█████▄▄▄▄▄ │█████████████████████████████████████████████ │█████████████████████████████████████████████ ╰───────────────────────────────────────────── ╰───────────────────────────────────────────── 0 2 4 6 8 0 2 4 6 8
1 3 5 7 1 3 5 7

```