#!/usr/bin/perl
use strict;
use Lab::Data::Plotter;
use Getopt::Long;
use Pod::Usage;
my %options=(# => default
listplots => 0,
dump => '',
eps => '',
plot => '',
fulllabels => 0,
);
GetOptions(\%options,
'listplots!',
'plot=s',
'dump=s',
'eps=s',
'fulllabels!',
'help|?',
'man',
);
pod2usage(1) if $options{help};
pod2usage(-exitstatus => 0, -verbose => 2) if $options{man};
my $metafile=shift(@ARGV) or pod2usage(1);
my $plotter=new Lab::Data::Plotter($metafile,\%options);
if ($options{listplots}) {
print "Available plots in $metafile:\n";
my %plots=$plotter->available_plots();
my $num=1;
for (sort keys %plots) {
print qq/$num -> $_ ($plots{$_})\n/;
$num++;
}
exit;
}
if ($options{plot} =~ /^\d+$/) {
my %plots=$plotter->available_plots();
$options{plot}=(sort keys %plots)[$options{plot}-1];
}
pod2usage(1) unless ($options{plot});
my $gp=$plotter->plot($options{plot});
my $a=<stdin>;
__END__
=head1 NAME
plotter.pl - Plot data with GnuPlot
=head1 SYNOPSIS
plotter.pl [OPTIONS] METAFILE
=head1 DESCRIPTION
This is a commandline tool to plot data that has been recorded using
the L<Lab::Measurement|Lab::Measurement> module.
=head1 OPTIONS AND ARGUMENTS
The file C<METAFILE> contains the meta information for the data that is
to be plotted. The name OR number of the plot that you want to draw must
be supplied with the C<--plot> option, unless you use the C<--list_plots>
option, that lists all available plots defined in the C<METAFILE>.
=over 2
=item --help|-?
Print short usage information.
=item --man
Show manpage.
=item --listplots
List available plots defined in C<METAFILE>.
=item --plot=name --plot=number
Show the plot with name C<name> or number C<number>. Numbers are
given by the C<--list_plots> option.
=item --dump=filename
Do not plot now, but dump a gnuplot file C<filename> instead.
=item --eps=filename
Don't plot on screen, but create eps file C<filename>.
=item --fulllabels
Also show axis descriptions in plot.
=back
=head1 SEE ALSO
=over 2
=item gnuplot(1)
=item L<Lab::Measurement>
=item L<Lab::Data::Plotter>
=item L<Lab::Data::Meta>
=back
=head1 AUTHOR/COPYRIGHT
This is $Id: plotter.pl 464 2006-07-16 01:12:23Z schroeer $.
Copyright 2004 Daniel Schröer.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=cut