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";
|
---|