-
Notifications
You must be signed in to change notification settings - Fork 2
/
example.php
134 lines (108 loc) · 3.8 KB
/
example.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
/** example.php of cli-graph-ml.class.php
*
* Class for visualize data in bar graph & detect outliers *
*
* @author Rafael Martin Soto
* @author {@link https://www.inatica.com/ Inatica}
* @blog {@link https://rafamartin10.blogspot.com/ Blog Rafael Martin Soto}
* @since September 2021
* @version 1.0.0
* @license GNU General Public License v3.0
*
* @param string $data
* @param array $axis_x_values
* @param array $axis_y_values
* @param string $config
*
*/
require_once( 'cli-graph-ml.class.php' );
/* You can define a custom $config
$config = [
'graph_length' => 10,
'bar_color' => 'lightwhite',
'title' => '',
'draw_underlines' => true,
'underlines_every' => 1,
'bar_width' => 1,
'show_y_axis_title' => true,
'show_x_axis_title' => true,
'x_axis_title' => 'AXIS X',
'y_axis_title' => 'AXIS Y',
'padding_left' => 1,
'padding_right' => 1,
'padding_top' => 1,
'padding_bottom' => 1,
'explain_values' => true,
'explain_values_same_line' => false
]; // /$default_cfg
*/
$config = null;
$arr_val_example_1 = [ 1,2,5,6,7,9,12,15,18,19,38 ];
$axis_x_values = [ 'Jan', 'Jun', 'Dec' ];
$bar_graph = new cli_graph_ml( $arr_val_example_1, $axis_x_values, $config );
$bar_graph->set_title( 'Months in %' );
// Draw with defaults
echo 'Defaults Bar Graph'.PHP_EOL;
$bar_graph->draw();
// Draw with bar width 2
$bar_width = 2;
echo 'Bar Width '.$bar_width.PHP_EOL;
$bar_graph->set_bar_width( $bar_width );
$bar_graph->set_bar_color( 'blue' );
$bar_graph->set_explain_values_same_line( true );
$bar_graph->draw();
// Draw with bar width 4
$bar_width *= 2;
echo 'Bar Width '.$bar_width.PHP_EOL;
$bar_graph->set_bar_width( $bar_width );
$bar_graph->set_explain_values( false );
$bar_graph->set_bar_color( 'magenta' );
$bar_graph->set_underlines_every( 2 );
$bar_graph->draw();
// Draw with bar width 8
$bar_width *= 2;
echo 'Bar Width '.$bar_width.PHP_EOL;
$bar_graph->set_bar_width( $bar_width );
$bar_graph->set_explain_values( true );
$bar_graph->set_bar_color( 'yellow' );
$bar_graph->set_underlines_every( 3 );
$bar_graph->draw();
// Draw without underlines, Graph Lenght 20 & with bar width 16
$bar_width *= 2;
echo 'Remove underlines'.PHP_EOL;
$bar_graph->set_bar_width( $bar_width );
$bar_graph->set_draw_underlines( false );
$bar_graph->set_bar_color( 'green' );
$bar_graph->set_graph_length( 20 );
$bar_graph->draw();
unset( $bar_graph );
// draw 3 graphs floating
$arr_val_example_2 = [ 7,7,6,3,5,8,0,10,8,9,3 ];
$arr_val_example_3 = [ 11,22,55,60,70,90,120,150,180,190,380 ];
$axis_x_values = [ 'Jan', 'Jun', 'Dec' ];
$bar_graph = [];
$bar_graph[] = new cli_graph_ml( $arr_val_example_1, $axis_x_values, $config );
$bar_graph[0]->set_title( 'Months 1 in %' );
$bar_graph[] = new cli_graph_ml( $arr_val_example_2, $axis_x_values, $config );
$bar_graph[1]->set_title( 'Months 2 in %' );
$bar_graph[] = new cli_graph_ml( $arr_val_example_3, $axis_x_values, $config );
$bar_graph[2]->set_title( 'Months 3 in %' );
// Prepare on each graph
foreach( $bar_graph as$graph){
$graph->prepare_array_output( );
}
// draw on each graph each line
// IMPORTANT: All graphs will need to have the same number of Lines
// We take a counter of lines of the first graph. We assume all have the same
$count_output_lines = $bar_graph[0]->count_output_lines();
for( $i = 0; $i< $count_output_lines; $i++ ){
foreach( $bar_graph as $graph){
$graph->draw( $i, false, false); // Draw line $i, dont do line break and do not do prepare
}
echo PHP_EOL; // for get new line
}
unset( $graph );
unset( $i );
unset( $arr_val_example );
unset( $bar_graph );?>