1#!/usr/bin/perl -w
2
3use Chart::Composite;
4print "1..1\n";
5
6my $obj = Chart::Composite->new( 600, 500 );
7my @legend_ary;
8my ( $legend, @zeile );
9my @all_aryref;
10open( OUT, ">samples/composite_1.png" ) or die "cannot write file samples/composite_1.png\n";
11
12my $i       = 0;
13my $e       = 0;
14my $max_val = 0;
15while (<DATA>)
16{
17    if ( $_ =~ /EOF/i )
18    {
19        last;
20    }
21    chomp;
22    $i++;
23    ( $legend, @zeile ) = split /\|/, $_;
24    $obj->add_dataset(@zeile);
25    if ( $i != 1 )
26    {
27        push @legend_ary, $legend;    # Erste Zeile ist die x-Achsenbezeichnung und geh�rt nicht zur Legende
28        for ( 0 .. $#zeile ) { $zeile[$_] > $max_val ? $max_val = $zeile[$_] : 1; }    # den Maximalen Wert ermitteln
29    }
30    $all_aryref[ $e++ ] = [@zeile];
31
32}
33
34if ( $max_val =~ /^\d+$/ )
35{
36
37    $max_val = 100 * int( 1 + $max_val / 100 );
38}    # den Scalenwert die n�chste 100er Stellen setzen
39
40# Der zweite Charttyp �berdeckt immer den ersten
41$obj->set(
42    'legend'                    => "top",
43    'legend_labels'             => \@legend_ary,
44    'x_ticks'                   => "vertical",
45    'composite_info'            => [ [ 'StackedBars', [ 8, 7, 6, 5 ] ], [ 'Bars', [ 1, 2, 3, 4, 9 ] ], ],
46    'same_y_axes'               => "true",
47    'y_label'                   => "Anzahl",
48    'min_val1'                  => 0,
49    'max_val1'                  => $max_val,
50    'max_val2'                  => $max_val,
51    'space_bars'                => 1,
52    'brush_size'                => 10,
53    'legend'                    => 'bottom',
54    'title'                     => 'Composite Demo Chart',
55    'legend_example_height'     => 'true',
56    'legend_example_height0..3' => '50',
57    'legend_example_height4..9' => '4',
58);
59$obj->png( \*OUT );
60close OUT;
61print "ok 1\n";
62exit 0;
63
64__END__
65Datum|01.09.2003|02.09.2003|03.09.2003|04.09.2003
66Anzahl gesamt|322|244|227|223
67Anzahl  Stufe 1 bis 4 gesamt|226|173|159|145
68Anzahl JL|77|46|44|61
69Anzahl  DL|19|25|24|17
70Anzahl  1. Stufe|28|22|11|27
71Anzahl  2. Stufe|12|11|4|7
72Anzahl  3. Stufe|50|39|55|34
73Anzahl  4. Stufe|136|101|89|77
74Anzahl Formulare|547|352|249|174
75EOF
76
77