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