source: code/Website/perl-ofc-library/test_cgi.pl@ 7849

Last change on this file since 7849 was 7849, checked in by dennisw, 15 years ago
File size: 6.1 KB
Line 
1#!/usr/bin/perl
2
3use strict; use warnings;
4
5use FindBin qw($Bin);
6use lib "$Bin";
7
8use open_flash_chart;
9
10#NEW CHART DEFINITION
11my $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
36my $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
80my $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');
86my $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
103my $color;
104my $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
148print "Content-type: text/html\n\n";
149print '
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
158print $chart->render_swf({'width'=>600, 'height'=>400});
159
160print'
161<p>
162</body>
163</html>
164';
165
166#print "\n";
Note: See TracBrowser for help on using the repository browser.