| 1 | #!/usr/bin/perl
|
|---|
| 2 |
|
|---|
| 3 | use strict; use warnings;
|
|---|
| 4 |
|
|---|
| 5 | use FindBin qw($Bin);
|
|---|
| 6 | use lib "$Bin";
|
|---|
| 7 |
|
|---|
| 8 | use open_flash_chart;
|
|---|
| 9 |
|
|---|
| 10 | #NEW CHART DEFINITION
|
|---|
| 11 | my $chart = chart->new();
|
|---|
| 12 |
|
|---|
| 13 | #BACKGROUND COLOR. ATTENTION: IT MUST BE SET BEFORE TITLE
|
|---|
| 14 | #COLORE DI SFONDO. ATTENZIONE: VA SETTATO PRIMA DEL TITOLO
|
|---|
| 15 | $chart->{'chart_props'} = {'bg_colour' => '#efefef'};
|
|---|
| 16 |
|
|---|
| 17 | #TITLE CHART
|
|---|
| 18 | #INSERIMENTO TITOLO
|
|---|
| 19 | $chart->{'chart_props'}->{'title'} = {'text'=>'Titolo del grafico', 'style'=>'font-size:20px; font-family:Verdana; text-align:center;'};
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 | $chart->{'chart_props'}->{'tooltip'} = {'shadow'=> '1', 'stroke'=> '2', 'colour'=> '#000000', 'background'=>'#ffffff', 'title'=>'font-size: 14px; color: #CC2A43;', 'body'=>'font-size: 12px; font-weight: bold; color: #000000;'};
|
|---|
| 23 | #"tooltip": { "shadow": false, "stroke": 5, "colour": "#6E604F", "background": "#BDB396", "title": "{font-size: 14px; color: #CC2A43;}", "body": "{font-size: 10px; font-weight: bold; color: #000000;}" } }
|
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 | #Y_LEGEND CHART
|
|---|
| 27 | #INSERIMENTO TITOLO ASSE DELLE y
|
|---|
| 28 | $chart->{'chart_props'}->{'y_legend'} = {'text'=>'y_legend', 'style'=>'font-size:15px; font-family:Verdana; text-align:center;'};
|
|---|
| 29 |
|
|---|
| 30 | #X_LEGEND_CHART
|
|---|
| 31 | #INSERIMENTO TITOLO ASSE DELLE X
|
|---|
| 32 | $chart->{'chart_props'}->{'x_legend'} = {'text'=>'x_legend', 'style'=>'font-size:15px; font-family:Verdana; text-align:center;'};
|
|---|
| 33 |
|
|---|
| 34 | #X AXIS DEFINITION
|
|---|
| 35 | #DEFINIZIONE ASSE DELLE X
|
|---|
| 36 | my $chart_x = $chart->get_axis('x_axis');
|
|---|
| 37 |
|
|---|
| 38 | #X AXIS LABEL DEFINITION
|
|---|
| 39 | #DEFINIZIONE ETICHETTE ASSE DELLE X
|
|---|
| 40 | $chart_x->set_labels( {labels => ["a","b","c","d","e"]} );
|
|---|
| 41 | #oppure
|
|---|
| 42 | #$lab = { labels => ["a","b","c","d","e"]};
|
|---|
| 43 | #$chart_x->set_labels($lab);
|
|---|
| 44 |
|
|---|
| 45 | #X AXIS PARAMETER DEFINITION. VIA FUNCTION (THIS METHOD IS OVERWRITTEN IF DIRECT METHOD IS USED)
|
|---|
| 46 | #DEFINIZIONE PARAMETRI ASSE DELLE X. Tramite funzioni (viene sovrascritto se si usa anche il metoro diretto)
|
|---|
| 47 | #$chart_x->set_stroke(10);
|
|---|
| 48 | #$chart_x->set_colour( '#000000' );
|
|---|
| 49 | #$chart_x->set_tick_height(5); # doesn't work
|
|---|
| 50 | #$chart_x->set_grid_colour( '#A2ACBA' ); # doesn't work
|
|---|
| 51 | #$chart_x->set_steps( 2 );
|
|---|
| 52 | #$chart_x->set_grid_colour( '#000000' ); # doesn't work
|
|---|
| 53 |
|
|---|
| 54 | #X AXIS PARAMETER DEFINITION. VIA DIRECT METHOD
|
|---|
| 55 | #DEFINIZIONE PARAMETRI ASSE DELLE X. Tramite inserimento diretto
|
|---|
| 56 | $chart_x->{'props'} = {
|
|---|
| 57 | 'labels' => { labels => ["a","b","c","d","e"]},
|
|---|
| 58 | 'stroke' => undef,
|
|---|
| 59 | 'tick-length' => undef,
|
|---|
| 60 | 'colour' => '#000000',
|
|---|
| 61 | 'offset' => undef,
|
|---|
| 62 | 'grid-colour' => '#f0f0f0',
|
|---|
| 63 | '3d' => undef, #for bar_3d
|
|---|
| 64 | 'steps' => '1',
|
|---|
| 65 | 'visible' => undef,
|
|---|
| 66 |
|
|---|
| 67 | #X AXIS RANGE SETTINGS. INSERT 'a' IF YOU WOULD LIKE TO USE DEDICATED FUNCTION SET_MIN() AND SET_MAX()
|
|---|
| 68 | #SET DELLA SCALA DELL'ASSE Y. Inserire 'a' per poter usare le funzioni dedicate set_min() e set_max()
|
|---|
| 69 | 'min' => 'a',
|
|---|
| 70 | 'max' => 'a'
|
|---|
| 71 | };
|
|---|
| 72 |
|
|---|
| 73 | #X AXIS RANGE SETTINGS. NUMBER OF ELEMETS TO RAPRESENT. USE UNDEF FOR AUTOMATIC VALUE
|
|---|
| 74 | #SET DELLA SCALA DELL'ASSE X. Indica il numero di elementi da rappresentare. usare undef per il calcolo automatico
|
|---|
| 75 | $chart_x->set_min(undef);
|
|---|
| 76 | $chart_x->set_max(3);
|
|---|
| 77 |
|
|---|
| 78 | #Y AXIS DEFINITION
|
|---|
| 79 | #DEFINIZIONE ASSE DELLE Y
|
|---|
| 80 | my $chart_y = $chart->get_axis('y_axis');
|
|---|
| 81 |
|
|---|
| 82 |
|
|---|
| 83 | #TYPE OF CHART FOR THE ELEMENT
|
|---|
| 84 | #SELEZIONE DEL TIPO DI GRAFICO PER L'ELEMENTO
|
|---|
| 85 | #my $chart_element = $chart->get_element('pie');
|
|---|
| 86 | my $chart_element = $chart->get_element('bar_stack');
|
|---|
| 87 | #my $chart_element = $chart->get_element('bar_glass');
|
|---|
| 88 |
|
|---|
| 89 |
|
|---|
| 90 | #VALUE SET FOR THE ELEMENT VIA FUNCTION. WITH THIS METHOD THE Y RANGE IS CALCULATED AUTO
|
|---|
| 91 | #SET DEI VALORI DELL'ELEMENTO TRAMITE LA FUNZIONE. IN QUESTO MODO LA SCALA DELL'ASSE Y E' CALCOLATA AUTOMATICAMENTE
|
|---|
| 92 | #$chart_element->set_values($values);
|
|---|
| 93 | #$chart_element->set_values([100,50,20,30,40]);
|
|---|
| 94 |
|
|---|
| 95 | #$chart_element->set_values([100,{'top'=> 30, 'colour'=> '#000000', 'tip'=> 'Spoon {#val#}<br>
|
|---|
| 96 | #Title Bar 2<br>
|
|---|
| 97 | #Override bar 2 tooltip<br>
|
|---|
| 98 | #Special data point'},20,30,40]); # doesn't work
|
|---|
| 99 |
|
|---|
| 100 |
|
|---|
| 101 |
|
|---|
| 102 | #SET ELEMENT VALUES FOR BAR_STACK VIA FUNCTION
|
|---|
| 103 | my $color;
|
|---|
| 104 | my $color2;
|
|---|
| 105 | $chart_element->set_values([
|
|---|
| 106 | [{'val'=>1,'colour'=>$color=random_color(),'tip'=>'Title <br> value = #val#'},{'val'=>3,'colour'=>$color2=random_color(),'tip'=>'Title2 <br> value = #val#'}],
|
|---|
| 107 | [{'val'=>4,'colour'=>$color,'tip'=>'Title <br> value = #val#'},{'val'=>8,'colour'=>$color2,'tip'=>'Title2 <br> value = #val#'}],
|
|---|
| 108 | [{'val'=>6,'colour'=>$color,'tip'=>'Title <br> value = #val#'},{'val'=>2,'colour'=>$color2,'tip'=>'Title2 <br> value = #val#'}],
|
|---|
| 109 | ]);
|
|---|
| 110 |
|
|---|
| 111 |
|
|---|
| 112 | #MANUAL VALUE SET. RANGE OF THE Y IS NOT AUTO AND HAS TO BE SETTED WITH SET_MAX()
|
|---|
| 113 | #SET DEI VALORI DELL'ELEMENTO MANUALE. IN QUESTO MODO LA SCALA DELL'ASSE Y NON VIENE CALCOLATA
|
|---|
| 114 | #$chart_element->{'element_props'}->{'values'} = [4,5,6,56,45];
|
|---|
| 115 |
|
|---|
| 116 | #SET ELEMENT VALUES FOR BAR_STACK MANUALLY
|
|---|
| 117 | #$chart_element->{'element_props'}->{'values'} = [
|
|---|
| 118 | # [{"val"=>1,"colour"=>random_color(),"text"=>'ciao'},{"val"=>3,"colour"=>random_color()}],
|
|---|
| 119 | # [{"val"=>0,"colour"=>random_color()},{"val"=>6,"colour"=>random_color()}],
|
|---|
| 120 | # ];
|
|---|
| 121 |
|
|---|
| 122 | #ELEMENT PARAMETERS
|
|---|
| 123 | #SET PARAMETRI DELL'ELEMENTO
|
|---|
| 124 | $chart_element->{'element_props'}->{'tip'} = 'Total title <br> total value = #val#';
|
|---|
| 125 | #$chart_element->{'element_props'}->{'tip'} = 'Tooltip title #val# <br> value = #val#';
|
|---|
| 126 | $chart_element->{'element_props'}->{'alpha'} = 0.5; #for bar
|
|---|
| 127 | $chart_element->{'element_props'}->{'outline-colour'} = random_color(); #for bar_filled
|
|---|
| 128 | #$chart_element->{'element_props'}->{'text'} = 'element_label';
|
|---|
| 129 | $chart_element->{'element_props'}->{'text'} = '';
|
|---|
| 130 | $chart_element->{'element_props'}->{'colour'} = random_color();
|
|---|
| 131 | $chart_element->{'element_props'}->{'font-size'} = 10;
|
|---|
| 132 | $chart_element->{'element_props'}->{'width'} = 2; #for line
|
|---|
| 133 | #$chart_element->{'element_props'}->{'width'} = 2; #for area_hallow
|
|---|
| 134 | #$chart_element->{'element_props'}->{'fill'} = ''; #for area_hallow
|
|---|
| 135 | #$chart_element->{'element_props'}->{'halo-size'} = 2; #for area_hallow
|
|---|
| 136 | #$chart_element->{'element_props'}->{'fill-alpha'} = 0.6; #for area_hallow
|
|---|
| 137 |
|
|---|
| 138 | #INSERT ELEMENT IN THE CHART
|
|---|
| 139 | #INSERIMENTO DELL'ELEMENTO NEL GRAFICO
|
|---|
| 140 | $chart_x->add_element($chart_element);
|
|---|
| 141 |
|
|---|
| 142 | #PRINT OF THE DATA IN THE JSON FORMAT
|
|---|
| 143 | #STAMPA DEI DATI NEL FORMATO JSON
|
|---|
| 144 | #$chart->render_chart_data();
|
|---|
| 145 |
|
|---|
| 146 |
|
|---|
| 147 | #HTML CODE
|
|---|
| 148 | print "Content-type: text/html\n\n";
|
|---|
| 149 | print '
|
|---|
| 150 | <html><head>
|
|---|
| 151 | <title>Open flash chart Test</title>
|
|---|
| 152 | </head>
|
|---|
| 153 | <body>
|
|---|
| 154 | ';
|
|---|
| 155 |
|
|---|
| 156 | #INSERT OF THE CHART IN THE HTML
|
|---|
| 157 | #INSERIMENTO DEL GRAFICO NELL'HTML
|
|---|
| 158 | print $chart->render_swf({'width'=>600, 'height'=>400});
|
|---|
| 159 |
|
|---|
| 160 | print'
|
|---|
| 161 | <p>
|
|---|
| 162 | </body>
|
|---|
| 163 | </html>
|
|---|
| 164 | ';
|
|---|
| 165 |
|
|---|
| 166 | #print "\n";
|
|---|