JGraphExamples
22 Nov 2009 01:21 UTC 2009326+0121 UTC

Development Page--Not for Official Use

Example 1: Reserved Axis PUX

 
#!/usr/bin/perl

use JGraph;

my $xaxis = JSeries->new(
                style => 'xtickmajor,xaxis,xlabel',     
                xdata => [ -20,-15,-10,-5,0,5,10,15,20 ],
        );

my $yaxis = JSeries->new(
                style => 'ytickmajor,yaxis,ylabel',
                ydata => [ 50,100,150,200,250,300,350,400 ],
                xaxis => 'PUX',
                xdata => [0.5],                 # Put Y axis in the middle
        ); 

my $data = JSeries->new(
                style => 'line',
                xdata => [ -20..20 ],
                ydata => [ map { $_**2 } -20..20 ],
        );

my $graph = JGraph->new(
                series => [ $xaxis, $yaxis, $data ],
                bgcolor => 'pink',
                color => 'white',
        );

print "Content-Type: image/png\n\n";
print $graph->png;
 

Example 2: Auto at Work

 
#!/usr/bin/perl

use JGraph;

my $data = JSeries->new(
                xdata => [ -20..20 ],
                ydata => [ map { $_**2 } -20..20 ],
        );

my $graph = JGraph->new( series => [ $data ] );

print "Content-Type: image/png\n\n";
print $graph->png;
 

Example 3: Axis Labels and Different Symbols

 
#!/usr/bin/perl

use JGraph;

my $x1axis = JSeries->new(
            style => 'xtickmajor,xaxis,xlabel',                
            xdata => [ -20,-15,-10,-5,0,5,10,15,20 ],
            label => [ '-20m','-15m','-10m','-5m','0m','5m','10m','15m','20m' ],
        );

my $y1axis = JSeries->new(
            style => 'ytickmajor,yaxis,ylabel',
            ydata => [ 150,200,250,300,350,400 ],
            xdata => 0.5,                       	# Put Y axis in the middle
            xaxis => 'PUX',
        );

my $y2axis = JSeries->new(
            style => 'ytickmajor,yaxis,ylabel',
            yaxis => 'y2',
            ydata => [ 0,1,2,3,4],
        );

my $x1data = JSeries->new(
            style => 'step',
            xdata => [ -20..20 ],
            ydata => [ map { $_**2 } -20..20 ],
        );  

my $x2data = JSeries->new(
            style => 'line',
            yaxis => 'y2',
            xdata => [ -20,-15,-10,-5,0,5,10,15,20],
            ydata => [ 1,2,1,2,1,2,1,2,1],
            color => ['yellow'],
        );

my $x3data = JSeries->new(
            style => 'vline,symbol',
            xdata => [ -20..20 ],
            ydata => [ map { $_**2 } -10..10 ],
            color => ['hotpink','yellow','green'],
            symbol => ['circle','circle','circle','box','box','box'],
        );

open (GIF,"/u2/jessica/.html/projectart/images/flag.gif") || die;
$imflag = newFromGif GD::Image(GIF) || die;
close GIF;

my $x4data = JSeries->new(
            style => 'symbol,line', 
            yaxis => 'y2',
            xdata => [ -20,-18,-16,-14,-12,-10,-8,-6,-4,-2,0,2,4,6,8,10,12,14,16,18,20],
            ydata => [ 2,3,4,3,2,3,4,3,2,3,4,3,2,3,4,3,2,3,4,3,2 ],
            color => ['hotpink'],
            symbol =>[ $imflag,'box'],
        );

my $graph = JGraph->new(
         title=>'Graph or Circus Art?',
         width=>640,
         height=>400,
         bgcolor=>'black',  
         color=>'green', 
         colorpalette=>[ 'white','white','white','red','blue','yellow','yellow'],  
         series => [ $x1axis, $y1axis, $y2axis, $x1data, $x2data,$x3data,$x4data ],
         ); 

print "Content-Type: image/gif\n\n";
print $graph->gif;
 

Example 4: Localtime Axis

 
#!/usr/bin/perl

use JGraph;

$i = 1005436800;
while ($i < 1005523200) {
   push @timearray, $i;  
   $i = $i + 3600;
}

my $data = JSeries->new(
                xdata => [ @timearray ],
                ydata => [ 20,25 ],
                xaxis => 'localtime'
        );

my $graph = JGraph->new( series => [ $data ] );

print "Content-Type: image/png\n\n";
print $graph->png;

Example 5 User Defined Routines as Data

 
#!/usr/bin/perl

use JGraph;

my $xaxis = JSeries->new(
             style => 'xlabel,xtickmajor',
             label => 'one,two,three',
             xdata => [5,7,10],
           );

my $yaxis = JSeries->new(
             style => 'ylabel, ytickmajor,yaxis',
             label => 'one,two,three',
             ydata => [5,7,10],
           );

my $data = JSeries->new(
            style => 'line',
            xdata => [ 5,6,7,8,9,10 ],
            ydata => [ 2,6,2,6,2,6 ],
            );

@ydata = (2,6,2,6,2,6);

my $arraydata = JSeries->new(
            style => 'symbol,line',
            symbol => ['box'],
            linewidth=> 2,
            xdata => [ 5,6,7,8,9,10 ],
            ydata => [ sample_routine(@ydata) ],
            color => [ '255.0.0','blue','008000' ],
            );

my $graph = JGraph->new(
            bgcolor => 'bisque',
            title => 'PNG Graph',
            series => [ $data,$arraydata ],
            color => 'blue',
            );

print "Content-Type: image/png\n\n";
print $graph->png;

sub sample_routine {
   my (@array,@newarray);
   (@array) = @_;
   for $i (0..$#array) {
      $newarray[$i] = $array[$i]+3;
   }
   return @newarray;
}           
 
Page last modified on September 29, 2005, at 09:28 PM