NAME

Tk::Pgplot - Draw PGPLOT graphics in a Perl/Tk window

SYNOPSIS

use Tk;
use Tk::Pgplot;
use PGPLOT;

my $mw = new MainWindow;
my $f = $mw->Frame->pack;
$f->Pgplot(-name => 'pgtest')->pack;
$mw->idletasks;
pgopen('pgtest/ptk');
my $n = 360;
pgenv(0, $n, -1, 1, 0, 2);
pglab('x', 'y', 'y = sin(x)');
pgline($n+1, [(0..$n)], [map {sin($_*6.28/$n)} (0..$n)]);
MainLoop;

STANDARD OPTIONS

-background -foreground -cursor -borderwidth -relief -height -width -highlightbackground -highlightcolor -highlightthickness -takefocus -xscrollcommand -yscrollcommand -padx -pady

See Tk::options for details of the standard options.

WIDGET-SPECIFIC OPTIONS

Name:     name
Class:    Name
Switch:   -name
    Specifies the name of the widget. This name must also be supplied to pgopen

Name:     minColors
Class:    MinColors
Switch:   -mincolors
    Specifies the minimum number of colors to allocate for the plot

Name:     maxColors
Class:    MaxColors
Switch:   -maxcolors
    Specifies the maximum number of colors to allocate for the plot

Name:     share
Class:    Share
Switch:   -share
    A value of 1 specifies that colors will be shared

DESCRIPTION

This module implements a pgplot widget that can be used in a Perl/Tk window. Additional options, described above, may be specified on the command line or in the option database to configure aspects of the widget.

METHODS

The Pgplot method creates a widget object. This object supports the configure and cget methods described in Tk::options which can be used to enquire and modify the options described above. The widget also inherits all the methods provided by the generic Tk::Widget class.

The following additional methods are available for Pgplot widgets:

id
Returns the PGPLOT id of the widget.
xview

The xview method is normally used as the callback in a Tk::Scrollbar widget for a horizontal scrollbar, e.g.:

$w->Scrollbar(-orient => 'horizontal',
             -command => ['xview', $pgplot_widget]);
yview

The yview method is normally used as the callback in a Tk::Scrollbar widget for a vertical scrollbar, e.g.:

$w->Scrollbar(-orient => 'vertical',
             -command => ['yview', $pgplot_widget]);
world(axis, val1, val2)

Transform from pixel coordinates into PGPLOT world coordinates

Arguments:

axis   - one of the following strings:
            x : convert an x-coordinate value
            y : convert a y-coordinate value
           xy : convert an (x,y) coordinate pair

val1   - if axis is 'x' or 'y', val1 is the pixel
         coordinate value to be transformed. If
         axis is 'xy', val1 is the x-coordinate
         in the coordinate pair.

val2   - val2 is required only if axis is 'xy'.
         val2 is the y-coordinate in the coordinate pair.

Returns:

When axis is 'x' or 'y', returns the transformed coordinate
value. When axis is 'xy', returns an array that contains the
transformed coordinate pair.
pixel(axis, val1, val2)

Transform from PGPLOT world coordinates into pixel coordinates

Arguments:

axis   - one of the following strings:
            x : convert an x-coordinate value
            y : convert a y-coordinate value
           xy : convert an (x,y) coordinate pair

val1   - if axis is 'x' or 'y', val1 is the world
         coordinate value to be transformed. If
         axis is 'xy', val1 is the x-coordinate
         in the coordinate pair.

val2   - val2 is required only if axis is 'xy'.
         val2 is the y-coordinate in the coordinate pair.

Returns:

When axis is 'x' or 'y', returns the transformed coordinate
value. When axis is 'xy', returns an array that contains the
transformed coordinate pair.
setcursor(mode, xref, yref, ci

Sets the cursor mode.

Arguments:

mode   - one of the following strings:

          norm  => Normal, un-agumented cursor
          line  => Line between (xref, yref) and current pointer position
          rect  => Rectangle between (xref, yref) and current pointer position
          yrng  => Horizontal lines at y=yref and current pointer y position
          xrng  => Vertical lines at x=xref and current pointer x position
          hline => Horizontal line passing through pointer y position
          vline => Vertical line passing through  pointer x position
          cross => Crosshair centered at current pointer position

xref   - x-coordinate reference position

yref   - y-coordinate reference position

ci     - color index.
clrcursor

Reset the cursor to the 'normal', un-augmented cursor.

BUGS

You cannot create a Pgplot widget directly in the MainWindow. It must be created within a Frame.

REQUIREMENTS

Requires the Tk Module

AUTHOR

Chris Phillips <cphil@cpan.org>

and

Russell Kackley <rkackley@cpan.org>

COPYRIGHT

This module is copyright (C) 2000-2002 Chris Phillips. All rights reserved.

Copyright (C) 2007 Science and Technology Facilities Council. All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place,Suite 330, Boston, MA 02111-1307, USA