G::Tools Graph
Included librariesPackage variablesGeneral documentationMethods
Package variables
No package variables defined.
Included modules
G::Messenger
SelfLoader
SubOpt
Inherit
Exporter
Synopsis
No synopsis!
Description
No description!
Methods
_UniMultiGrapher
No description
Code
grapherDescriptionCode
Methods description
graphercode    nextTop
  Name: grapher   -   graphs given data

  Description:
    This method creates a two dimensional graph (line or scatterplot) with gnuplot.
    Multiple data references can be used.
    Options follow that of Chart::Graph.

  Usage:
   grapher(\@x-axis, \@data1, \@data2, ...);

  Options:
   -x                  name of x axis (default: x)
   -y                  name of y axis (default: y)
   -x1, -x2, ..., x$i  title of graph data$i (default: x$i)
   -filename           outfile name   (default: graph.png)
   -style              style of graph (default: lines)
   -type               type of data (default: columns)

  Author: 
    Kazuharu Arakawa (gaou@sfc.keio.ac.jp)
History: 20071106-01 interface changed to grapher() 20010906-01 initial posting as _UniMultiGrapher
Methods code
_UniMultiGrapherdescriptionprevnextTop
sub _UniMultiGrapher {
    grapher(@_, -output=>"g");
}
grapherdescriptionprevnextTop
sub grapher {
    &opt_default(x=>"x", y=>"y", title=>"graph", 
		 filename=>"graph.png", type=>"columns",
 		 style=>"lines", grapher=>"gnuplot", output=>"show");

    my @args = opt_get(@_);
    my $filename = opt_val("filename");
    my $output = opt_val("output");
    my $grapher = opt_val("grapher");

    if ($grapher eq 'gnuplot' && 'MSWin32' ne $^O){
	my $ref_y = shift @args;
	my @command = ({"title" => opt_val("title"),
			    "output file" => "graph/$filename",
			    "x-axis label" => opt_val("x"),
			"y-axis label" => opt_val("y")}, );
	my $i = 1;
	foreach my $ref_x (@args){
	    my $title = opt_val("x$i");
	    $title = "x$i" if ($title eq '');
	    
	    push (@command,
		  [{"title" => $title,
		    "style" => opt_val("style"),
		    "type" => opt_val("type")},
		          $ref_y, $ref_x, ]
		  );
	    $i ++;
	}
    
	gnuplot(@command);
    }else{
	require GD::Graph::lines;
	my $graph = GD::Graph::lines->new(640, 480);
	my $skip = int(scalar(@{$args[0]}) / 10);
$graph->set( x_label => opt_val("x"), y_label => opt_val("y"), title => opt_val("title"), x_label_skip => $skip, ); my $i = 1; my @legend; while(opt_val("x$i")){ push (@legend, opt_val("x$i")); $i ++; } $graph->set_legend(@legend) if (scalar(@legend)); my $gd = $graph->plot(\@args); open(IMG, '>graph/' . $filename) or die $!; binmode IMG; print IMG $gd->png; close(IMG); } msg_gimv("graph/$filename") if ($output eq 'show');
}
General documentation
No general documentation available.