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