.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PLplot 3pm" .TH PLplot 3pm "2012-05-30" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PDL::Graphics::PLplot \- Object\-oriented interface from perl/PDL to the PLPLOT plotting library .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use PDL; \& use PDL::Graphics::PLplot; \& \& my $pl = PDL::Graphics::PLplot\->new (DEV => "png", FILE => "test.png"); \& my $x = sequence(10); \& my $y = $x**2; \& $pl\->xyplot($x, $y); \& $pl\->close; .Ve .PP For more information on PLplot, see .PP .Vb 1 \& http://www.plplot.org/ .Ve .PP Also see the test file, \fIt/plplot.pl\fR in this distribution for some working examples. .SH "LONG NAMES" .IX Header "LONG NAMES" If you are annoyed by the long constructor call, consider installing the aliased \s-1CPAN\s0 package. Using \f(CW\*(C`aliased\*(C'\fR, the above example becomes .PP .Vb 2 \& use PDL; \& use aliased \*(AqPDL::Graphics::PLplot\*(Aq; \& \& my $pl = PLplot\->new (DEV => "png", FILE => "test.png"); \& my $x = sequence(10); \& # etc, as above .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is the \s-1PDL\s0 interface to the PLplot graphics library. It provides a familiar 'perlish' Object Oriented interface as well as access to the low-level PLplot commands from the C\-API. .SH "OPTIONS" .IX Header "OPTIONS" The following options are supported. Most options can be used with any function. A few are only supported on the call to 'new'. .SS "Options used upon creation of a PLplot object (with 'new'):" .IX Subsection "Options used upon creation of a PLplot object (with 'new'):" \fI\s-1BACKGROUND\s0\fR .IX Subsection "BACKGROUND" .PP Set the color for index 0, the plot background .PP \fI\s-1DEV\s0\fR .IX Subsection "DEV" .PP Set the output device type. To see a list of allowed types, try: .PP .Vb 1 \& PDL::Graphics::PLplot\->new(); .Ve .PP .Vb 1 \& PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, FILE => \*(Aqtest.png\*(Aq); .Ve .PP \fI\s-1FILE\s0\fR .IX Subsection "FILE" .PP Set the output file or display. For file output devices, sets the output file name. For graphical displays (like \f(CW\*(Aqxwin\*(Aq\fR) sets the name of the display, eg (\f(CW\*(Aqhostname.foobar.com:0\*(Aq\fR) .PP .Vb 2 \& PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, FILE => \*(Aqtest.png\*(Aq); \& PDL::Graphics::PLplot\->new(DEV => \*(Aqxwin\*(Aq, FILE => \*(Aq:0\*(Aq); .Ve .PP \fI\s-1OPTS\s0\fR .IX Subsection "OPTS" .PP Set plotting options. See the PLplot documentation for the complete listing of available options. The value of \f(CW\*(AqOPTS\*(Aq\fR must be a hash reference, whose keys are the names of the options. For instance, to obtain PostScript fonts with the ps output device, use: .PP .Vb 1 \& PDL::Graphics::PLplot\->new(DEV => \*(Aqps\*(Aq, OPTS => {drvopt => \*(Aqtext=1\*(Aq}); .Ve .PP \fI\s-1MEM\s0\fR .IX Subsection "MEM" .PP This option is used in conjunction with \f(CW\*(C`DEV => \*(Aqmem\*(Aq\*(C'\fR. This option takes as input a \s-1PDL\s0 image and allows one to 'decorate' it using PLplot. The 'decorated' \s-1PDL\s0 image can then be written to an image file using, for example, PDL::IO::Pic. This option may not be available if plplot does not include the 'mem' driver. .PP .Vb 10 \& # read in Earth image and draw an equator. \& my $pl = PDL::Graphics::PLplot\->new (MEM => $earth, DEV => \*(Aqmem\*(Aq); \& my $x = pdl(\-180, 180); \& my $y = zeroes(2); \& $pl\->xyplot($x, $y, \& BOX => [\-180,180,\-90,90], \& VIEWPORT => [0.0, 1.0, 0.0, 1.0], \& XBOX => \*(Aq\*(Aq, YBOX => \*(Aq\*(Aq, \& PLOTTYPE => \*(AqLINE\*(Aq); \& $pl\->close; .Ve .PP \fI\s-1FRAMECOLOR\s0\fR .IX Subsection "FRAMECOLOR" .PP Set color index 1, the frame color .PP \fI\s-1JUST\s0\fR .IX Subsection "JUST" .PP A flag used to specify equal scale on the axes. If this is not specified, the default is to scale the axes to fit best on the page. .PP .Vb 1 \& PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, FILE => \*(Aqtest.png\*(Aq, JUST => 1); .Ve .PP \fI\s-1ORIENTATION\s0\fR .IX Subsection "ORIENTATION" .PP The orientation of the plot: .PP .Vb 4 \& 0 \-\- 0 degrees (landscape mode) \& 1 \-\- 90 degrees (portrait mode) \& 2 \-\- 180 degrees (seascape mode) \& 3 \-\- 270 degrees (upside\-down mode) .Ve .PP Intermediate values (0.2) are acceptable if you are feeling daring. .PP .Vb 2 \& # portrait orientation \& PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, FILE => \*(Aqtest.png\*(Aq, ORIENTATION => 1); .Ve .PP \fI\s-1PAGESIZE\s0\fR .IX Subsection "PAGESIZE" .PP Set the size in pixels of the output page. .PP .Vb 2 \& # PNG 500 by 600 pixels \& PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, FILE => \*(Aqtest.png\*(Aq, PAGESIZE => [500,600]); .Ve .PP \fI\s-1SUBPAGES\s0\fR .IX Subsection "SUBPAGES" .PP Set the number of sub pages in the plot, [$nx, \f(CW$ny\fR] .PP .Vb 4 \& # PNG 300 by 600 pixels \& # Two subpages stacked on top of one another. \& PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, FILE => \*(Aqtest.png\*(Aq, PAGESIZE => [300,600], \& SUBPAGES => [1,2]); .Ve .SS "Options used after initialization (after 'new')" .IX Subsection "Options used after initialization (after 'new')" \fI\s-1BOX\s0\fR .IX Subsection "BOX" .PP Set the plotting box in world coordinates. Used to explicitly set the size of the plotting area. .PP .Vb 2 \& my $pl = PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, FILE => \*(Aqtest.png\*(Aq); \& $pl\->xyplot ($x, $y, BOX => [0,100,0,200]); .Ve .PP \fI\s-1CHARSIZE\s0\fR .IX Subsection "CHARSIZE" .PP Set the size of text in multiples of the default size. \&\f(CW\*(C`CHARSIZE => 1.5\*(C'\fR gives characters 1.5 times the normal size. .PP \fI\s-1COLOR\s0\fR .IX Subsection "COLOR" .PP Set the current color for plotting and character drawing. Colors are specified not as color indices but as \s-1RGB\s0 triples. Some pre-defined triples are included: .PP .Vb 9 \& BLACK GREEN WHEAT BLUE \& RED AQUAMARINE GREY BLUEVIOLET \& YELLOW PINK BROWN CYAN \& TURQUOISE MAGENTA SALMON WHITE \& ROYALBLUE DEEPSKYBLUE VIOLET STEELBLUE1 \& DEEPPINK MAGENTA DARKORCHID1 PALEVIOLETRED2 \& TURQUOISE1 LIGHTSEAGREEN SKYBLUE FORESTGREEN \& CHARTREUSE3 GOLD2 SIENNA1 CORAL \& HOTPINK LIGHTCORAL LIGHTPINK1 LIGHTGOLDENROD .Ve .PP .Vb 3 \& # These two are equivalent: \& $pl\->xyplot ($x, $y, COLOR => \*(AqYELLOW\*(Aq); \& $pl\->xyplot ($x, $y, COLOR => [0,255,0]); .Ve .PP \fI\s-1LINEWIDTH\s0\fR .IX Subsection "LINEWIDTH" .PP Set the line width for plotting. Values range from 1 to a device dependent maximum. .PP \fI\s-1LINESTYLE\s0\fR .IX Subsection "LINESTYLE" .PP Set the line style for plotting. Pre-defined line styles use values 1 to 8, one being a solid line, 2\-8 being various dashed patterns. .PP \fI\s-1MAJTICKSIZE\s0\fR .IX Subsection "MAJTICKSIZE" .PP Set the length of major ticks as a fraction of the default setting. One (default) means leave these ticks the normal size. .PP \fI\s-1MINTICKSIZE\s0\fR .IX Subsection "MINTICKSIZE" .PP Set the length of minor ticks (and error bar terminals) as a fraction of the default setting. One (default) means leave these ticks the normal size. .PP \fI\s-1NXSUB\s0\fR .IX Subsection "NXSUB" .PP The number of minor tick marks between each major tick mark on the X axis. Specify zero (default) to let PLplot compute this automatically. .PP \fI\s-1NYSUB\s0\fR .IX Subsection "NYSUB" .PP The number of minor tick marks between each major tick mark on the Y axis. Specify zero (default) to let PLplot compute this automatically. .PP \fI\s-1PALETTE\s0\fR .IX Subsection "PALETTE" .PP Load pre-defined color map 1 color ranges. Currently, values include: .PP .Vb 6 \& RAINBOW \-\- from Red to Violet through the spectrum \& REVERSERAINBOW \-\- Violet through Red \& GREYSCALE \-\- from black to white via grey. \& REVERSEGREYSCALE \-\- from white to black via grey. \& GREENRED \-\- from green to red \& REDGREEN \-\- from red to green .Ve .PP .Vb 2 \& # Plot x/y points with the z axis in color \& $pl\->xyplot ($x, $y, PALETTE => \*(AqRAINBOW\*(Aq, PLOTTYPE => \*(AqPOINTS\*(Aq, COLORMAP => $z); .Ve .PP \fI\s-1PLOTTYPE\s0\fR .IX Subsection "PLOTTYPE" .PP Specify which type of \s-1XY\s0 plot is desired: .PP .Vb 3 \& LINE \-\- A line \& POINTS \-\- A bunch of symbols \& LINEPOINTS \-\- both .Ve .PP \fI\s-1SUBPAGE\s0\fR .IX Subsection "SUBPAGE" .PP Set which subpage to plot on. Subpages are numbered 1 to N. A zero can be specified meaning 'advance to the next subpage' (just a call to \&\fIpladv()\fR). .PP .Vb 5 \& my $pl = PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, \& FILE => \*(Aqtest.png\*(Aq, \& SUBPAGES => [1,2]); \& $pl\->xyplot ($x, $y, SUBPAGE => 1); \& $pl\->xyplot ($a, $b, SUBPAGE => 2); .Ve .PP \fI\s-1SYMBOL\s0\fR .IX Subsection "SYMBOL" .PP Specify which symbol to use when plotting \f(CW\*(C`PLOTTYPE => \*(AqPOINTS\*(Aq\*(C'\fR. A large variety of symbols are available, see: http://plplot.sourceforge.net/examples\-data/demo07/x07.*.png, where * is 01 \- 17. You are most likely to find good plotting symbols in the 800s: http://plplot.sourceforge.net/examples\-data/demo07/x07.06.png .PP \fI\s-1SYMBOLSIZE\s0\fR .IX Subsection "SYMBOLSIZE" .PP Specify the size of symbols plotted in multiples of the default size (1). Value are real numbers from 0 to large. .PP \fI\s-1TEXTPOSITION\s0\fR .IX Subsection "TEXTPOSITION" .PP Specify the placement of text. Either relative to border, specified as: .PP .Vb 1 \& [$side, $disp, $pos, $just] .Ve .PP Where .PP .Vb 4 \& side = \*(Aqt\*(Aq, \*(Aqb\*(Aq, \*(Aql\*(Aq, or \*(Aqr\*(Aq for top, bottom, left and right \& disp is the number of character heights out from the edge \& pos is the position along the edge of the viewport, from 0 to 1. \& just tells where the reference point of the string is: 0 = left, 1 = right, 0.5 = center. .Ve .PP or inside the plot window, specified as: .PP .Vb 1 \& [$x, $y, $dx, $dy, $just] .Ve .PP Where .PP .Vb 9 \& x = x coordinate of reference point of string. \& y = y coordinate of reference point of string. \& dx Together with dy, this specifies the inclination of the string. \& The baseline of the string is parallel to a line joining (x, y) to (x+dx, y+dy). \& dy Together with dx, this specifies the inclination of the string. \& just Specifies the position of the string relative to its reference point. \& If just=0, the reference point is at the left and if just=1, \& it is at the right of the string. Other values of just give \& intermediate justifications. .Ve .PP .Vb 2 \& # Plot text on top of plot \& $pl\->text ("Top label", TEXTPOSITION => [\*(Aqt\*(Aq, 4.0, 0.5, 0.5]); \& \& # Plot text in plotting area \& $pl\->text ("Line label", TEXTPOSITION => [50, 60, 5, 5, 0.5]); .Ve .PP \fI\s-1TITLE\s0\fR .IX Subsection "TITLE" .PP Add a title on top of a plot. .PP .Vb 2 \& # Plot text on top of plot \& $pl\->xyplot ($x, $y, TITLE => \*(AqX vs. Y\*(Aq); .Ve .PP \fI\s-1UNFILLED_BARS\s0\fR .IX Subsection "UNFILLED_BARS" .PP For 'bargraph', if set to true then plot the bars as outlines in the current color and not as filled boxes .PP .Vb 2 \& # Plot text on top of plot \& $pl\->bargraph($labels, $values, UNFILLED_BARS => 1); .Ve .PP \fI\s-1VIEWPORT\s0\fR .IX Subsection "VIEWPORT" .PP Set the location of the plotting window on the page. Takes a four element array ref specifying: .PP .Vb 4 \& xmin \-\- The coordinate of the left\-hand edge of the viewport. (0 to 1) \& xmax \-\- The coordinate of the right\-hand edge of the viewport. (0 to 1) \& ymin \-\- The coordinate of the bottom edge of the viewport. (0 to 1) \& ymax \-\- The coordinate of the top edge of the viewport. (0 to 1) .Ve .PP You will need to use this to make color keys or insets. .PP .Vb 2 \& # Make a small plotting window in the lower left of the page \& $pl\->xyplot ($x, $y, VIEWPORT => [0.1, 0.5, 0.1, 0.5]); \& \& # Also useful in creating color keys: \& $pl\->xyplot ($x, $y, PALETTE => \*(AqRAINBOW\*(Aq, PLOTTYPE => \*(AqPOINTS\*(Aq, COLORMAP => $z); \& $pl\->colorkey ($z, \*(Aqv\*(Aq, VIEWPORT => [0.93, 0.96, 0.15, 0.85]); \& \& # Plot an inset; first the primary data and then the inset. In this \& # case, the inset contains a selection of the orignal data \& $pl\->xyplot ($x, $y); \& $pl\->xyplot (where($x, $y, $x < 1.2), VIEWPORT => [0.7, 0.9, 0.6, 0.8]); .Ve .PP \fI\s-1XBOX\s0\fR .IX Subsection "XBOX" .PP Specify how to label the X axis of the plot as a string of option letters: .PP .Vb 10 \& a: Draws axis, X\-axis is horizontal line (y=0), and Y\-axis is vertical line (x=0). \& b: Draws bottom (X) or left (Y) edge of frame. \& c: Draws top (X) or right (Y) edge of frame. \& f: Always use fixed point numeric labels. \& g: Draws a grid at the major tick interval. \& h: Draws a grid at the minor tick interval. \& i: Inverts tick marks, so they are drawn outwards, rather than inwards. \& l: Labels axis logarithmically. This only affects the labels, not the data, \& and so it is necessary to compute the logarithms of data points before \& passing them to any of the drawing routines. \& m: Writes numeric labels at major tick intervals in the \& unconventional location (above box for X, right of box for Y). \& n: Writes numeric labels at major tick intervals in the conventional location \& (below box for X, left of box for Y). \& s: Enables subticks between major ticks, only valid if t is also specified. \& t: Draws major ticks. .Ve .PP The default is \f(CW\*(AqBCNST\*(Aq\fR which draws lines around the plot, draws major and minor ticks and labels major ticks. .PP .Vb 7 \& # plot two lines in a box with independent X axes labeled \& # differently on top and bottom \& $pl\->xyplot($x1, $y, XBOX => \*(Aqbnst\*(Aq, # bottom line, bottom numbers, ticks, subticks \& YBOX => \*(Aqbnst\*(Aq); # left line, left numbers, ticks, subticks \& $pl\->xyplot($x2, $y, XBOX => \*(Aqcmst\*(Aq, # top line, top numbers, ticks, subticks \& YBOX => \*(Aqcst\*(Aq, # right line, ticks, subticks \& BOX => [$x2\->minmax, $y\->minmax]); .Ve .PP \fI\s-1XERRORBAR\s0\fR .IX Subsection "XERRORBAR" .PP Used only with \*(L"xyplot\*(R". Draws horizontal error bars at all points (\f(CW$x\fR, \f(CW$y\fR) in the plot. Specify a \s-1PDL\s0 containing the same number of points as \f(CW$x\fR and \f(CW$y\fR which specifies the width of the error bar, which will be centered at (\f(CW$x\fR, \f(CW$y\fR). .PP \fI\s-1XLAB\s0\fR .IX Subsection "XLAB" .PP Specify a label for the X axis. .PP \fI\s-1XTICK\s0\fR .IX Subsection "XTICK" .PP Interval (in graph units/world coordinates) between major x axis tick marks. Specify zero (default) to allow PLplot to compute this automatically. .PP \fI\s-1YBOX\s0\fR .IX Subsection "YBOX" .PP Specify how to label the Y axis of the plot as a string of option letters. See \*(L"\s-1XBOX\s0\*(R". .PP \fI\s-1YERRORBAR\s0\fR .IX Subsection "YERRORBAR" .PP Used only for xyplot. Draws vertical error bars at all points (\f(CW$x\fR, \f(CW$y\fR) in the plot. Specify a \s-1PDL\s0 containing the same number of points as \f(CW$x\fR and \f(CW$y\fR which specifies the width of the error bar, which will be centered at (\f(CW$x\fR, \f(CW$y\fR). .PP \fI\s-1YLAB\s0\fR .IX Subsection "YLAB" .PP Specify a label for the Y axis. .PP \fI\s-1YTICK\s0\fR .IX Subsection "YTICK" .PP Interval (in graph units/world coordinates) between major y axis tick marks. Specify zero (default) to allow PLplot to compute this automatically. .PP \fI\s-1ZRANGE\s0\fR .IX Subsection "ZRANGE" .PP For \*(L"xyplot\*(R" (when \f(CW\*(C`COLORMAP\*(C'\fR is specified), for \&\*(L"shadeplot\*(R" and for \*(L"colorkey\*(R". Normally, the range of the Z variable (color) is taken as \&\f(CW\*(C`$z\->minmax\*(C'\fR. If a different range is desired, specify it in \f(CW\*(C`ZRANGE\*(C'\fR, like so: .PP .Vb 1 \& $pl\->shadeplot ($z, $nlevels, PALETTE => \*(AqGREENRED\*(Aq, ZRANGE => [0,100]); .Ve .PP or .PP .Vb 4 \& $pl\->xyplot ($x, $y, PALETTE => \*(AqRAINBOW\*(Aq, PLOTTYPE => \*(AqPOINTS\*(Aq, \& COLORMAP => $z, ZRANGE => [\-90,\-20]); \& $pl\->colorkey ($z, \*(Aqv\*(Aq, VIEWPORT => [0.93, 0.96, 0.13, 0.85], \& ZRANGE => [\-90,\-20]); .Ve .SH "METHODS" .IX Header "METHODS" These are the high-level, object oriented methods for PLplot. .SS "new" .IX Subsection "new" Create an object representing a plot. .PP .Vb 2 \& Arguments: \& none. \& \& Supported options: \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP .Vb 1 \& my $pl = PDL::Graphics::PLplot\->new(DEV => \*(Aqpng\*(Aq, FILE => \*(Aqtest.png\*(Aq); .Ve .SS "setparm" .IX Subsection "setparm" Set options for a plot object. .PP .Vb 2 \& Arguments: \& none. \& \& Supported options: \& All options except: \& \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP (These must be set in call to 'new'.) .PP .Vb 1 \& $pl\->setparm (TEXTSIZE => 2); .Ve .SS "xyplot" .IX Subsection "xyplot" Plot \s-1XY\s0 lines and/or points. Also supports color scales for points. This function works with bad values. If a bad value is specified for a points plot, it is omitted. If a bad value is specified for a line plot, the bad value makes a gap in the line. This is useful for drawing maps; for example \f(CW$x\fR and \f(CW$y\fR can be the continent boundary latitude and longitude. .PP .Vb 2 \& Arguments: \& $x, $y \& \& Supported options: \& All options except: \& \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP (These must be set in call to 'new'.) .PP .Vb 3 \& $pl\->xyplot($x, $y, PLOTTYPE => \*(AqPOINTS\*(Aq, COLOR => \*(AqBLUEVIOLET\*(Aq, SYMBOL => 1, SYMBOLSIZE => 4); \& $pl\->xyplot($x, $y, PLOTTYPE => \*(AqLINEPOINTS\*(Aq, COLOR => [50,230,30]); \& $pl\->xyplot($x, $y, PALETTE => \*(AqRAINBOW\*(Aq, PLOTTYPE => \*(AqPOINTS\*(Aq, COLORMAP => $z); .Ve .SS "stripplots" .IX Subsection "stripplots" Plot a set of strip plots with a common X axis, but with different Y axes. Looks like a stack of long, thin \s-1XY\s0 plots, all line up on the same X axis. .PP .Vb 8 \& Arguments: \& $xs \-\- 1D PDL with common X axis values, length = N \& $ys \-\- reference to a list of 1D PDLs with Y\-axis values, length = N \& or 2D PDL with N x M elements \& \-\- OR \-\- \& $xs \-\- reference to a list of 1D PDLs with X\-axis values \& $ys \-\- reference to a list of 1D PDLs with Y\-axis values \& %opts \-\- Options hash \& \& Supported options: \& All options except: \& \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP (These must be set in call to 'new'.) .PP .Vb 10 \& my $x = sequence(20); \& my $y1 = $x**2; \& my $y2 = sqrt($x); \& my $y3 = $x**3; \& my $y4 = sin(($x/20) * 2 * $pi); \& $ys = cat($y1, $y2, $y3, $y4); \& $pl\->stripplots($x, $ys, PLOTTYPE => \*(AqLINE\*(Aq, TITLE => \*(Aqfunctions\*(Aq, \& YLAB => [\*(Aqx**2\*(Aq, \*(Aqsqrt(x)\*(Aq, \*(Aqx**3\*(Aq, \*(Aqsin(x/20*2pi)\*(Aq], \& COLOR => [\*(AqGREEN\*(Aq, \*(AqDEEPSKYBLUE\*(Aq, \*(AqDARKORCHID1\*(Aq, \*(AqDEEPPINK\*(Aq], XLAB => \*(AqX label\*(Aq); \& # Equivalent to above: \& $pl\->stripplots($x, [$y1, $y2, $y3, $y4], \& PLOTTYPE => \*(AqLINE\*(Aq, TITLE => \*(Aqfunctions\*(Aq, \& YLAB => [\*(Aqx**2\*(Aq, \*(Aqsqrt(x)\*(Aq, \*(Aqx**3\*(Aq, \*(Aqsin(x/20*2pi)\*(Aq], \& COLOR => [\*(AqGREEN\*(Aq, \*(AqDEEPSKYBLUE\*(Aq, \*(AqDARKORCHID1\*(Aq, \*(AqDEEPPINK\*(Aq], XLAB => \*(AqX label\*(Aq); \& \& # Here\*(Aqs something a bit different. Notice that different xs have \& # different lengths. \& $x1 = sequence(20); \& $y1 = $x1**2; \& \& $x2 = sequence(18); \& $y2 = sqrt($x2); \& \& $x3 = sequence(24); \& $y3 = $x3**3; \& \& my $x4 = sequence(27); \& $a = ($x4/20) * 2 * $pi; \& my $y4 = sin($a); \& \& $xs = [$x1, $x2, $x3, $x4]; \& $ys = [$y1, $y2, $y3, $y4]; \& $pl\->stripplots($xs, $ys, PLOTTYPE => \*(AqLINE\*(Aq, TITLE => \*(Aqfunctions\*(Aq, \& YLAB => [\*(Aqx**2\*(Aq, \*(Aqsqrt(x)\*(Aq, \*(Aqx**3\*(Aq, \*(Aqsin(x/20*2pi)\*(Aq], \& COLOR => [\*(AqGREEN\*(Aq, \*(AqDEEPSKYBLUE\*(Aq, \*(AqDARKORCHID1\*(Aq, \*(AqDEEPPINK\*(Aq], XLAB => \*(AqX label\*(Aq); .Ve .PP In addition, \s-1COLOR\s0 may be specified as a reference to a list of colors. If this is done, the colors are applied separately to each plot. .PP Also, the options Y_BASE and Y_GUTTER can be specified. Y_BASE gives the Y offset of the bottom of the lowest plot (0\-1, specified like a \s-1VIEWPORT\s0, defaults to 0.1) and Y_GUTTER gives the gap between the graphs (0\-1, default = 0.02). .SS "colorkey" .IX Subsection "colorkey" Plot a color key showing which color represents which value .PP .Vb 3 \& Arguments: \& $range : A PDL which tells the range of the color values \& $orientation : \*(Aqv\*(Aq for vertical color key, \*(Aqh\*(Aq for horizontal \& \& Supported options: \& All options except: \& \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP (These must be set in call to 'new'.) .PP .Vb 4 \& # Plot X vs. Y with Z shown by the color. Then plot \& # vertical key to the right of the original plot. \& $pl\->xyplot ($x, $y, PALETTE => \*(AqRAINBOW\*(Aq, PLOTTYPE => \*(AqPOINTS\*(Aq, COLORMAP => $z); \& $pl\->colorkey ($z, \*(Aqv\*(Aq, VIEWPORT => [0.93, 0.96, 0.15, 0.85]); .Ve .SS "shadeplot" .IX Subsection "shadeplot" Create a shaded contour plot of 2D \s-1PDL\s0 'z' with 'nsteps' contour levels. Linear scaling is used to map the coordinates of Z(X, Y) to world coordinates via the \*(L"\s-1BOX\s0\*(R" option. .PP .Vb 3 \& Arguments: \& $z : A 2D PDL which contains surface values at each XY coordinate. \& $nsteps : The number of contour levels requested for the plot. \& \& Supported options: \& All options except: \& \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP (These must be set in call to 'new'.) .PP .Vb 4 \& # vertical key to the right of the original plot. \& # The BOX must be specified to give real coordinate values to the $z array. \& $pl\->shadeplot ($z, $nsteps, BOX => [\-1, 1, \-1, 1], PALETTE => \*(AqRAINBOW\*(Aq, ZRANGE => [0,100]); \& $pl\->colorkey ($z, \*(Aqv\*(Aq, VIEWPORT => [0.93, 0.96, 0.15, 0.85], ZRANGE => [0,100]); .Ve .SS "histogram" .IX Subsection "histogram" Create a histogram of a 1\-D variable. .PP .Vb 3 \& Arguments: \& $x : A 1D PDL \& $nbins : The number of bins to use in the histogram. \& \& Supported options: \& All options except: \& \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP (These must be set in call to 'new'.) .PP .Vb 1 \& $pl\->histogram ($x, $nbins, BOX => [$min, $max, 0, 100]); .Ve .SS "bargraph" .IX Subsection "bargraph" Simple utility to plot a bar chart with labels on the X axis. The usual options can be specified, plus one other: \s-1MAXBARLABELS\s0 specifies the maximum number of labels to allow on the X axis. The default is 20. If this value is exceeded, then every other label is plotted. If twice \s-1MAXBARLABELS\s0 is exceeded, then only every third label is printed, and so on. .PP if \s-1UNFILLED_BARS\s0 is set to true, then plot the bars as outlines and not as filled rectangles. .PP .Vb 3 \& Arguments: \& $labels \-\- A reference to a perl list of strings. \& $values \-\- A PDL of values to be plotted. \& \& Supported options: \& All options except: \& \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP (These must be set in call to 'new'.) .PP .Vb 2 \& $labels = [\*(Aqone\*(Aq, \*(Aqtwo\*(Aq, \*(Aqthree\*(Aq]; \& $values = pdl(1, 2, 3); \& \& # Note if TEXTPOSITION is specified, it must be in 4 argument mode (border mode): \& # [$side, $disp, $pos, $just] \& # \& # Where side = \*(Aqt\*(Aq, \*(Aqb\*(Aq, \*(Aql\*(Aq, or \*(Aqr\*(Aq for top, bottom, left and right \& # \*(Aqtv\*(Aq, \*(Aqbv\*(Aq, \*(Aqlv\*(Aq or \*(Aqrv\*(Aq for top, bottom, left or right perpendicular to the axis. \& # \& # disp is the number of character heights out from the edge \& # pos is the position along the edge of the viewport, from 0 to 1. \& # just tells where the reference point of the string is: 0 = left, 1 = right, 0.5 = center. \& # \& # The \*(Aq$pos\*(Aq entry will be ignored (computed by the bargraph routine) \& $pl\->bargraph($labels, $values, MAXBARLABELS => 30, TEXTPOSITION => [\*(Aqbv\*(Aq, 0.5, 1.0, 1.0]); .Ve .SS "text" .IX Subsection "text" Write text on a plot. Text can either be written with respect to the borders or at an arbitrary location and angle (see the \*(L"\s-1TEXTPOSITION\s0\*(R" entry). .PP .Vb 2 \& Arguments: \& $t : The text. \& \& Supported options: \& All options except: \& \& BACKGROUND \& DEV \& FILE \& FRAMECOLOR \& JUST \& PAGESIZE \& SUBPAGES .Ve .PP (These must be set in call to 'new'.) .PP .Vb 3 \& $pl\->text("Count", COLOR => \*(AqPINK\*(Aq, \& TEXTPOSITION => [\*(Aqt\*(Aq, 3, 0.5, 0.5]); # top, 3 units out, string ref. pt in \& # center of string, middle of axis .Ve .SS "close" .IX Subsection "close" Close a PLplot object, writing out the file and cleaning up. .PP Arguments: None .PP Returns: Nothing .PP This closing of the PLplot object can be done explicitly though the \&'close' method. Alternatively, a \s-1DESTROY\s0 block does an automatic close whenever the PLplot object passes out of scope. .PP .Vb 1 \& $pl\->close; .Ve .SH "FUNCTIONS" .IX Header "FUNCTIONS" The \s-1PDL\s0 low-level interface to the PLplot library closely mimics the C \s-1API\s0. Users are referred to the PLplot User's Manual, distributed with the source PLplot tarball. This manual is also available on-line at the PLplot web site (). .PP There are three differences in the way the functions are called. The first one is due to a limitation in the pp_def wrapper of \s-1PDL\s0, which forces all the non-piddle arguments to be at the end of the arguments list. It is the case of strings (\f(CW\*(C`char *\*(C'\fR) arguments in the C \s-1API\s0. This affects the following functions: .PP plaxes plbox plbox3 plmtex plmtex3 plstart plstripc plmap plmeridians plshades plshade1 .PP This difference can be got around by a call to .PP \&\fIplplot_use_standard_argument_order\fR\|(1); .PP This re-arranges the string arguments to their proper/intuitive position compared with the C plplot interface. This can be restored to it's default by calling: .PP \&\fIplplot_use_standard_argument_order\fR\|(0); .PP The second notable different between the C and the \s-1PDL\s0 APIs is that many of the \s-1PDL\s0 calls do not need arguments to specify the size of the the vectors and/or matrices being passed. These size parameters are deduced from the size of the piddles, when possible and are just omitted from the C call when translating it to perl. .PP The third difference has to do with output parameters. In C these are passed in with the input parameters. In the perl interface, they are omitted. For example: .PP C: .PP .Vb 6 \& pllegend(&p_legend_width, &p_legend_height, \& opt, position, x, y, plot_width, bg_color, bb_color, bb_style, nrow, ncolumn, nlegend, \& opt_array, \& text_offset, text_scale, text_spacing, text_justification, \& text_colors, (const char **)text, box_colors, box_patterns, box_scales, box_line_widths, \& line_colors, line_styles, line_widths, symbol_colors, symbol_scales, symbol_numbers, (const char **)symbols); .Ve .PP perl: .PP .Vb 6 \& my ($legend_width, $legend_height) = \& pllegend ($position, $opt, $x, $y, $plot_width, $bg_color, $nlegend, \& \e@opt_array, \& $text_offset, $text_scale, $text_spacing, $test_justification, \& \e@text_colors, \e@text, \e@box_colors, \e@box_patterns, \e@box_scales, \e@line_colors, \& \e@line_styles, \e@line_widths, \e@symbol_colors, \e@symbol_scales, \e@symbol_numbers, \e@symbols); .Ve .PP Some of the \s-1API\s0 functions implemented in \s-1PDL\s0 have other specificities in comparison with the C \s-1API\s0 and will be discussed below. .SS "pladv" .IX Subsection "pladv" .Vb 1 \& Signature: (int page()) .Ve .PP info not available .PP pladv does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plaxes_pp" .IX Subsection "plaxes_pp" .Vb 1 \& Signature: (double xzero();double yzero();double xtick();int nxsub();double ytick();int nysub(); char *xopt;char *yopt) .Ve .PP info not available .PP plaxes_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plbin" .IX Subsection "plbin" .Vb 1 \& Signature: (int nbin();double x(dima);double y(dima);int center()) .Ve .PP info not available .PP plbin does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plbox_pp" .IX Subsection "plbox_pp" .Vb 1 \& Signature: (double xtick();int nxsub();double ytick();int nysub(); char *xopt;char *yopt) .Ve .PP info not available .PP plbox_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plbox3_pp" .IX Subsection "plbox3_pp" .Vb 1 \& Signature: (double xtick();int nsubx();double ytick();int nsuby();double ztick();int nsubz(); char *xopt;char *xlabel;char *yopt;char *ylabel;char *zopt;char *zlabel) .Ve .PP info not available .PP plbox3_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plcol0" .IX Subsection "plcol0" .Vb 1 \& Signature: (int icolzero()) .Ve .PP info not available .PP plcol0 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plcol1" .IX Subsection "plcol1" .Vb 1 \& Signature: (double colone()) .Ve .PP info not available .PP plcol1 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plcpstrm" .IX Subsection "plcpstrm" .Vb 1 \& Signature: (int iplsr();int flags()) .Ve .PP info not available .PP plcpstrm does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "pldid2pc" .IX Subsection "pldid2pc" .Vb 1 \& Signature: (double xmin(dima);double ymin(dima);double xmax(dima);double ymax(dima)) .Ve .PP info not available .PP pldid2pc does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "pldip2dc" .IX Subsection "pldip2dc" .Vb 1 \& Signature: (double xmin(dima);double ymin(dima);double xmax(dima);double ymax(dima)) .Ve .PP info not available .PP pldip2dc does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plenv" .IX Subsection "plenv" .Vb 1 \& Signature: (double xmin();double xmax();double ymin();double ymax();int just();int axis()) .Ve .PP info not available .PP plenv does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plenv0" .IX Subsection "plenv0" .Vb 1 \& Signature: (double xmin();double xmax();double ymin();double ymax();int just();int axis()) .Ve .PP info not available .PP plenv0 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plerrx" .IX Subsection "plerrx" .Vb 1 \& Signature: (int n();double xmin(dima);double xmax(dima);double y(dima)) .Ve .PP info not available .PP plerrx does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plerry" .IX Subsection "plerry" .Vb 1 \& Signature: (int n();double x(dima);double ymin(dima);double ymax(dima)) .Ve .PP info not available .PP plerry does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plfill3" .IX Subsection "plfill3" .Vb 1 \& Signature: (int n();double x(dima);double y(dima);double z(dima)) .Ve .PP info not available .PP plfill3 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plfont" .IX Subsection "plfont" .Vb 1 \& Signature: (int ifont()) .Ve .PP info not available .PP plfont does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plfontld" .IX Subsection "plfontld" .Vb 1 \& Signature: (int fnt()) .Ve .PP info not available .PP plfontld does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgchr" .IX Subsection "plgchr" .Vb 1 \& Signature: (double [o]p_def();double [o]p_ht()) .Ve .PP info not available .PP plgchr does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgcompression" .IX Subsection "plgcompression" .Vb 1 \& Signature: (int [o]compression()) .Ve .PP info not available .PP plgcompression does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgdidev" .IX Subsection "plgdidev" .Vb 1 \& Signature: (double [o]p_mar();double [o]p_aspect();double [o]p_jx();double [o]p_jy()) .Ve .PP info not available .PP plgdidev does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgdiori" .IX Subsection "plgdiori" .Vb 1 \& Signature: (double [o]p_rot()) .Ve .PP info not available .PP plgdiori does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgdiplt" .IX Subsection "plgdiplt" .Vb 1 \& Signature: (double [o]p_xmin();double [o]p_ymin();double [o]p_xmax();double [o]p_ymax()) .Ve .PP info not available .PP plgdiplt does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgfam" .IX Subsection "plgfam" .Vb 1 \& Signature: (int [o]p_fam();int [o]p_num();int [o]p_bmax()) .Ve .PP info not available .PP plgfam does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plglevel" .IX Subsection "plglevel" .Vb 1 \& Signature: (int [o]p_level()) .Ve .PP info not available .PP plglevel does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgpage" .IX Subsection "plgpage" .Vb 1 \& Signature: (double [o]p_xp();double [o]p_yp();int [o]p_xleng();int [o]p_yleng();int [o]p_xoff();int [o]p_yoff()) .Ve .PP info not available .PP plgpage does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgspa" .IX Subsection "plgspa" .Vb 1 \& Signature: (double [o]xmin();double [o]xmax();double [o]ymin();double [o]ymax()) .Ve .PP info not available .PP plgspa does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgvpd" .IX Subsection "plgvpd" .Vb 1 \& Signature: (double [o]p_xmin();double [o]p_xmax();double [o]p_ymin();double [o]p_ymax()) .Ve .PP info not available .PP plgvpd does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgvpw" .IX Subsection "plgvpw" .Vb 1 \& Signature: (double [o]p_xmin();double [o]p_xmax();double [o]p_ymin();double [o]p_ymax()) .Ve .PP info not available .PP plgvpw does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgxax" .IX Subsection "plgxax" .Vb 1 \& Signature: (int [o]p_digmax();int [o]p_digits()) .Ve .PP info not available .PP plgxax does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgyax" .IX Subsection "plgyax" .Vb 1 \& Signature: (int [o]p_digmax();int [o]p_digits()) .Ve .PP info not available .PP plgyax does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgzax" .IX Subsection "plgzax" .Vb 1 \& Signature: (int [o]p_digmax();int [o]p_digits()) .Ve .PP info not available .PP plgzax does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "pljoin" .IX Subsection "pljoin" .Vb 1 \& Signature: (double xone();double yone();double xtwo();double ytwo()) .Ve .PP info not available .PP pljoin does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "pllightsource" .IX Subsection "pllightsource" .Vb 1 \& Signature: (double x();double y();double z()) .Ve .PP info not available .PP pllightsource does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "pllsty" .IX Subsection "pllsty" .Vb 1 \& Signature: (int lin()) .Ve .PP info not available .PP pllsty does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plmtex_pp" .IX Subsection "plmtex_pp" .Vb 1 \& Signature: (double disp();double pos();double just(); char *side;char *text) .Ve .PP info not available .PP plmtex_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plmtex3_pp" .IX Subsection "plmtex3_pp" .Vb 1 \& Signature: (double disp();double pos();double just(); char *side;char *text) .Ve .PP info not available .PP plmtex3_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plpat" .IX Subsection "plpat" .Vb 1 \& Signature: (int nlin();int inc(dima);int del(dima)) .Ve .PP info not available .PP plpat does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plprec" .IX Subsection "plprec" .Vb 1 \& Signature: (int setp();int prec()) .Ve .PP info not available .PP plprec does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plpsty" .IX Subsection "plpsty" .Vb 1 \& Signature: (int patt()) .Ve .PP info not available .PP plpsty does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plptex" .IX Subsection "plptex" .Vb 1 \& Signature: (double x();double y();double dx();double dy();double just(); char *text) .Ve .PP info not available .PP plptex does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plptex3" .IX Subsection "plptex3" .Vb 1 \& Signature: (double x();double y();double z();double dx();double dy();double dz();double sx();double sy();double sz();double just(); char *text) .Ve .PP info not available .PP plptex3 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plschr" .IX Subsection "plschr" .Vb 1 \& Signature: (double def();double scale()) .Ve .PP info not available .PP plschr does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscmap0n" .IX Subsection "plscmap0n" .Vb 1 \& Signature: (int ncolzero()) .Ve .PP info not available .PP plscmap0n does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscmap1n" .IX Subsection "plscmap1n" .Vb 1 \& Signature: (int ncolone()) .Ve .PP info not available .PP plscmap1n does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscol0" .IX Subsection "plscol0" .Vb 1 \& Signature: (int icolzero();int r();int g();int b()) .Ve .PP info not available .PP plscol0 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscolbg" .IX Subsection "plscolbg" .Vb 1 \& Signature: (int r();int g();int b()) .Ve .PP info not available .PP plscolbg does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscolor" .IX Subsection "plscolor" .Vb 1 \& Signature: (int color()) .Ve .PP info not available .PP plscolor does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscompression" .IX Subsection "plscompression" .Vb 1 \& Signature: (int compression()) .Ve .PP info not available .PP plscompression does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsdidev" .IX Subsection "plsdidev" .Vb 1 \& Signature: (double mar();double aspect();double jx();double jy()) .Ve .PP info not available .PP plsdidev does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsdimap" .IX Subsection "plsdimap" .Vb 1 \& Signature: (int dimxmin();int dimxmax();int dimymin();int dimymax();double dimxpmm();double dimypmm()) .Ve .PP info not available .PP plsdimap does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsdiori" .IX Subsection "plsdiori" .Vb 1 \& Signature: (double rot()) .Ve .PP info not available .PP plsdiori does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsdiplt" .IX Subsection "plsdiplt" .Vb 1 \& Signature: (double xmin();double ymin();double xmax();double ymax()) .Ve .PP info not available .PP plsdiplt does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsdiplz" .IX Subsection "plsdiplz" .Vb 1 \& Signature: (double xmin();double ymin();double xmax();double ymax()) .Ve .PP info not available .PP plsdiplz does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "pl_setcontlabelparam" .IX Subsection "pl_setcontlabelparam" .Vb 1 \& Signature: (double offset();double size();double spacing();int active()) .Ve .PP info not available .PP pl_setcontlabelparam does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "pl_setcontlabelformat" .IX Subsection "pl_setcontlabelformat" .Vb 1 \& Signature: (int lexp();int sigdig()) .Ve .PP info not available .PP pl_setcontlabelformat does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsfam" .IX Subsection "plsfam" .Vb 1 \& Signature: (int fam();int num();int bmax()) .Ve .PP info not available .PP plsfam does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsmaj" .IX Subsection "plsmaj" .Vb 1 \& Signature: (double def();double scale()) .Ve .PP info not available .PP plsmaj does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsmin" .IX Subsection "plsmin" .Vb 1 \& Signature: (double def();double scale()) .Ve .PP info not available .PP plsmin does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsori" .IX Subsection "plsori" .Vb 1 \& Signature: (int ori()) .Ve .PP info not available .PP plsori does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plspage" .IX Subsection "plspage" .Vb 1 \& Signature: (double xp();double yp();int xleng();int yleng();int xoff();int yoff()) .Ve .PP info not available .PP plspage does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plspause" .IX Subsection "plspause" .Vb 1 \& Signature: (int pause()) .Ve .PP info not available .PP plspause does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsstrm" .IX Subsection "plsstrm" .Vb 1 \& Signature: (int strm()) .Ve .PP info not available .PP plsstrm does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plssub" .IX Subsection "plssub" .Vb 1 \& Signature: (int nx();int ny()) .Ve .PP info not available .PP plssub does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plssym" .IX Subsection "plssym" .Vb 1 \& Signature: (double def();double scale()) .Ve .PP info not available .PP plssym does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plstar" .IX Subsection "plstar" .Vb 1 \& Signature: (int nx();int ny()) .Ve .PP info not available .PP plstar does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plstart_pp" .IX Subsection "plstart_pp" .Vb 1 \& Signature: (int nx();int ny(); char *devname) .Ve .PP info not available .PP plstart_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plstripa" .IX Subsection "plstripa" .Vb 1 \& Signature: (int id();int pen();double x();double y()) .Ve .PP info not available .PP plstripa does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plstripd" .IX Subsection "plstripd" .Vb 1 \& Signature: (int id()) .Ve .PP info not available .PP plstripd does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsvpa" .IX Subsection "plsvpa" .Vb 1 \& Signature: (double xmin();double xmax();double ymin();double ymax()) .Ve .PP info not available .PP plsvpa does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsxax" .IX Subsection "plsxax" .Vb 1 \& Signature: (int digmax();int digits()) .Ve .PP info not available .PP plsxax does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsxwin" .IX Subsection "plsxwin" .Vb 1 \& Signature: (int window_id()) .Ve .PP info not available .PP plsxwin does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsyax" .IX Subsection "plsyax" .Vb 1 \& Signature: (int digmax();int digits()) .Ve .PP info not available .PP plsyax does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plszax" .IX Subsection "plszax" .Vb 1 \& Signature: (int digmax();int digits()) .Ve .PP info not available .PP plszax does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plvasp" .IX Subsection "plvasp" .Vb 1 \& Signature: (double aspect()) .Ve .PP info not available .PP plvasp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plvpas" .IX Subsection "plvpas" .Vb 1 \& Signature: (double xmin();double xmax();double ymin();double ymax();double aspect()) .Ve .PP info not available .PP plvpas does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plvpor" .IX Subsection "plvpor" .Vb 1 \& Signature: (double xmin();double xmax();double ymin();double ymax()) .Ve .PP info not available .PP plvpor does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plw3d" .IX Subsection "plw3d" .Vb 1 \& Signature: (double basex();double basey();double height();double xminzero();double xmaxzero();double yminzero();double ymaxzero();double zminzero();double zmaxzero();double alt();double az()) .Ve .PP info not available .PP plw3d does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plwid" .IX Subsection "plwid" .Vb 1 \& Signature: (int width()) .Ve .PP info not available .PP plwid does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plwind" .IX Subsection "plwind" .Vb 1 \& Signature: (double xmin();double xmax();double ymin();double ymax()) .Ve .PP info not available .PP plwind does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plP_gpixmm" .IX Subsection "plP_gpixmm" .Vb 1 \& Signature: (double p_x(dima);double p_y(dima)) .Ve .PP info not available .PP plP_gpixmm does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscolbga" .IX Subsection "plscolbga" .Vb 1 \& Signature: (int r();int g();int b();double a()) .Ve .PP info not available .PP plscolbga does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscol0a" .IX Subsection "plscol0a" .Vb 1 \& Signature: (int icolzero();int r();int g();int b();double a()) .Ve .PP info not available .PP plscol0a does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plline" .IX Subsection "plline" .Vb 1 \& Signature: (x(n); y(n)) .Ve .PP Draws line segments along (x1,y1)\->(x2,y2)\->(x3,y3)\->... .PP If the nth value of either x or y are bad, then it will be skipped, breaking the line. In this way, you can specify multiple line segments with a single pair of x and y piddles. .PP The usage is straight-forward: .PP .Vb 1 \& plline($x, $y); .Ve .PP For example: .PP .Vb 3 \& # Draw a sine wave \& $x = sequence(100)/10; \& $y = sin($x); \& \& # Draws the sine wave: \& plline($x, $y); \& \& # Set values above 3/4 to \*(Aqbad\*(Aq, effectively drawing a bunch of detached, \& # capped waves \& $y\->setbadif($y > 3/4); \& plline($x, $y); .Ve .PP plline does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plcolorpoints" .IX Subsection "plcolorpoints" .Vb 1 \& Signature: (x(n); y(n); z(n); int sym(); minz(); maxz()) .Ve .PP PDL-specific: Implements what amounts to a threaded version of plsym. .PP Bad values for z are simply skipped; all other bad values are not processed. .PP In the following usage, all of the piddles must have the same dimensions: .PP .Vb 1 \& plcolorpoints($x, $y, $z, $symbol_index, $minz, $maxz) .Ve .PP For example: .PP .Vb 6 \& # Generate a parabola some points \& my $x = sequence(30) / 3; # Regular sampling \& my $y = $x**2; # Parabolic y \& my $z = 30 \- $x**3; # Cubic coloration \& my $symbols = floor($x); # Use different symbols for each 1/3 of the plot \& # These should be integers. \& \& plcolorpoints($x, $y, $z, $symbols, \-5, 20); # Thread over everything \& plcolorpoints($x, $y, 1, 1, \-1, 2); # same color and symbol for all .Ve .PP plcolorpoints does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsmem" .IX Subsection "plsmem" .Vb 1 \& Signature: (int maxx();int maxy();image(3,x,y)) .Ve .PP info not available .PP plsmem does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plfbox" .IX Subsection "plfbox" .Vb 1 \& Signature: (xo(); yo()) .Ve .PP info not available .PP plfbox does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plunfbox" .IX Subsection "plunfbox" .Vb 1 \& Signature: (xo(); yo()) .Ve .PP info not available .PP plunfbox does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plParseOpts" .IX Subsection "plParseOpts" .Vb 1 \& Signature: (int [o] retval(); SV* argv; int mode) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plParseOpts does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plpoin" .IX Subsection "plpoin" .Vb 1 \& Signature: (x(n); y(n); int code()) .Ve .PP info not available .PP plpoin does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plpoin3" .IX Subsection "plpoin3" .Vb 1 \& Signature: (x(n); y(n); z(n); int code()) .Ve .PP info not available .PP plpoin3 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plline3" .IX Subsection "plline3" .Vb 1 \& Signature: (x(n); y(n); z(n)) .Ve .PP info not available .PP plline3 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plpoly3" .IX Subsection "plpoly3" .Vb 1 \& Signature: (x(n); y(n); z(n); int draw(m); int ifcc()) .Ve .PP info not available .PP plpoly3 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plhist" .IX Subsection "plhist" .Vb 1 \& Signature: (data(n); datmin(); datmax(); int nbin(); int oldwin()) .Ve .PP info not available .PP plhist does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plfill" .IX Subsection "plfill" .Vb 1 \& Signature: (x(n); y(n)) .Ve .PP info not available .PP plfill does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgradient" .IX Subsection "plgradient" .Vb 1 \& Signature: (x(n); y(n); angle()) .Ve .PP info not available .PP plgradient does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsym" .IX Subsection "plsym" .Vb 1 \& Signature: (x(n); y(n); int code()) .Ve .PP info not available .PP plsym does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsurf3d" .IX Subsection "plsurf3d" .Vb 1 \& Signature: (x(nx); y(ny); z(nx,ny); int opt(); clevel(nlevel)) .Ve .PP info not available .PP plsurf3d does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plstyl" .IX Subsection "plstyl" .Vb 1 \& Signature: (int mark(nms); int space(nms)) .Ve .PP info not available .PP plstyl does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plseed" .IX Subsection "plseed" .Vb 1 \& Signature: (int seed()) .Ve .PP info not available .PP plseed does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plrandd" .IX Subsection "plrandd" .Vb 1 \& Signature: (double [o]rand()) .Ve .PP info not available .PP plrandd does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plAllocGrid" .IX Subsection "plAllocGrid" .Vb 1 \& Signature: (double xg(nx); double yg(ny); longlong [o] grid()) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plAllocGrid does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plAlloc2dGrid" .IX Subsection "plAlloc2dGrid" .Vb 1 \& Signature: (double xg(nx,ny); double yg(nx,ny); longlong [o] grid()) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plAlloc2dGrid does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "init_pltr" .IX Subsection "init_pltr" .Vb 1 \& Signature: (P(); C(); SV* p0; SV* p1; SV* p2) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP init_pltr does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plmap_pp" .IX Subsection "plmap_pp" .Vb 1 \& Signature: (minlong(); maxlong(); minlat(); maxlat(); SV* mapform; char* type) .Ve .PP info not available .PP plmap_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plstring" .IX Subsection "plstring" .Vb 1 \& Signature: (x(na); y(na); char* string) .Ve .PP info not available .PP plstring does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plstring3" .IX Subsection "plstring3" .Vb 1 \& Signature: (x(na); y(na); z(na); char* string) .Ve .PP info not available .PP plstring3 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plmeridians_pp" .IX Subsection "plmeridians_pp" .Vb 1 \& Signature: (dlong(); dlat(); minlong(); maxlong(); minlat(); maxlat(); SV* mapform) .Ve .PP info not available .PP plmeridians_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plshades_pp" .IX Subsection "plshades_pp" .Vb 3 \& Signature: (z(x,y); xmin(); xmax(); ymin(); ymax(); \& clevel(l); int fill_width(); int cont_color(); \& int cont_width(); int rectangular(); SV* defined; SV* pltr; SV* pltr_data) .Ve .PP info not available .PP plshades_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plcont" .IX Subsection "plcont" .Vb 1 \& Signature: (f(nx,ny); int kx(); int lx(); int ky(); int ly(); clevel(nlevel); SV* pltr; SV* pltr_data) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plcont does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plmesh" .IX Subsection "plmesh" .Vb 1 \& Signature: (x(nx); y(ny); z(nx,ny); int opt()) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plmesh does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plmeshc" .IX Subsection "plmeshc" .Vb 1 \& Signature: (x(nx); y(ny); z(nx,ny); int opt(); clevel(nlevel)) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plmeshc does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plot3d" .IX Subsection "plot3d" .Vb 1 \& Signature: (x(nx); y(ny); z(nx,ny); int opt(); int side()) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plot3d does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plot3dc" .IX Subsection "plot3dc" .Vb 1 \& Signature: (x(nx); y(ny); z(nx,ny); int opt(); clevel(nlevel)) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plot3dc does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscmap1l" .IX Subsection "plscmap1l" .Vb 1 \& Signature: (int itype(); isty(n); coord1(n); coord2(n); coord3(n); int rev(nrev)) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plscmap1l does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plshade1_pp" .IX Subsection "plshade1_pp" .Vb 1 \& Signature: (a(nx,ny); left(); right(); bottom(); top(); shade_min();shade_max(); sh_cmap(); sh_color(); sh_width();min_color(); min_width(); max_color(); max_width();rectangular(); SV* defined; SV* pltr; SV* pltr_data) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plshade1_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plimage" .IX Subsection "plimage" .Vb 1 \& Signature: (idata(nx,ny); xmin(); xmax(); ymin(); ymax();zmin(); zmax(); Dxmin(); Dxmax(); Dymin(); Dymax()) .Ve .PP info not available .PP plimage does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plimagefr" .IX Subsection "plimagefr" .Vb 1 \& Signature: (idata(nx,ny); xmin(); xmax(); ymin(); ymax();zmin(); zmax(); valuemin(); valuemax(); SV* pltr; SV* pltr_data) .Ve .PP info not available .PP plimagefr does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plxormod" .IX Subsection "plxormod" .Vb 1 \& $status = plxormod ($mode) .Ve .PP See the PLplot manual for reference. .SS "plGetCursor" .IX Subsection "plGetCursor" .Vb 1 \& %gin = plGetCursor () .Ve .PP plGetCursor waits for graphics input event and translate to world coordinates and returns a hash with the following keys: .PP .Vb 9 \& type: of event (CURRENTLY UNUSED) \& state: key or button mask \& keysym: key selected \& button: mouse button selected \& subwindow: subwindow (alias subpage, alias subplot) number \& string: translated string \& pX, pY: absolute device coordinates of pointer \& dX, dY: relative device coordinates of pointer \& wX, wY: world coordinates of pointer .Ve .PP Returns an empty hash if no translation to world coordinates is possible. .SS "plgstrm" .IX Subsection "plgstrm" .Vb 1 \& $strm = plgstrm () .Ve .PP Returns the number of the current output stream. .SS "plgsdev" .IX Subsection "plgsdev" .Vb 1 \& $driver = plgdev () .Ve .PP Returns the current driver name. .SS "plmkstrm" .IX Subsection "plmkstrm" .Vb 1 \& $strm = plmkstrm () .Ve .PP Creates a new stream and makes it the default. Returns the number of the created stream. .SS "plgver" .IX Subsection "plgver" .Vb 1 \& $version = plgver () .Ve .PP See the PLplot manual for reference. .SS "plstripc_pp" .IX Subsection "plstripc_pp" .Vb 1 \& Signature: (xmin(); xmax(); xjump(); ymin(); ymax();xlpos(); ylpos(); int y_ascl(); int acc();int colbox(); int collab();int colline(n); int styline(n); int [o] id(); char* xspec; char* yspec; SV* legline;char* labx; char* laby; char* labtop) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plstripc_pp does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgriddata" .IX Subsection "plgriddata" .Vb 1 \& Signature: (x(npts); y(npts); z(npts); xg(nptsx); yg(nptsy);int type(); data(); [o] zg(nptsx,nptsy)) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plgriddata does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plarc" .IX Subsection "plarc" .Vb 1 \& plarc ($x, $y, $a, $b, $angle1, $angle2, $rotate, $fill); .Ve .PP Draw a (possibly) filled arc centered at x, y with semimajor axis a and semiminor axis b, starting at angle1 and ending at angle2. See the PLplot manual for reference. .SS "plstransform" .IX Subsection "plstransform" .Vb 1 \& plstransform ($subroutine_reference); .Ve .PP Sets the default transformation routine for plotting. .PP .Vb 2 \& sub mapform { \& my ($x, $y) = @_; \& \& my $radius = 90.0 \- $y; \& my $xp = $radius * cos ($x * pi / 180); \& my $yp = $radius * sin ($x * pi / 180); \& \& return ($xp, $yp); \& } \& plstransform (\e&mapform); .Ve .PP See the PLplot manual for more details. .SS "plslabelfunc" .IX Subsection "plslabelfunc" .Vb 1 \& plslabelfunc ($subroutine_reference); .Ve .PP .Vb 10 \& # A custom axis labeling function for longitudes and latitudes. \& sub geolocation_labeler { \& my ($axis, $value, $length) = @_; \& my ($direction_label, $label_val); \& if (($axis == PL_Y_AXIS) && $value == 0) { \& return "Eq"; \& } elsif ($axis == PL_Y_AXIS) { \& $label_val = $value; \& $direction_label = ($label_val > 0) ? " N" : " S"; \& } elsif ($axis == PL_X_AXIS) { \& my $times = floor((abs($value) + 180.0 ) / 360.0); \& $label_val = ($value < 0) ? $value + 360.0 * $times : $value \- 360.0 * $times; \& $direction_label = ($label_val > 0) ? " E" \& : ($label_val < 0) ? " W" \& : ""; \& } \& return substr (sprintf ("%.0f%s", abs($label_val), $direction_label), 0, $length); \& } \& plslabelfunc(\e&geolocation_labeler); .Ve .PP See the PLplot manual for more details. .SS "pllegend" .IX Subsection "pllegend" my ($legend_width, \f(CW$legend_height\fR) = pllegend ($position, \f(CW$opt\fR, \f(CW$x\fR, \f(CW$y\fR, \f(CW$plot_width\fR, \f(CW$bg_color\fR, \f(CW$nlegend\fR, \e@opt_array, \f(CW$text_offset\fR, \f(CW$text_scale\fR, \f(CW$text_spacing\fR, \f(CW$test_justification\fR, \e@text_colors, \e@text, \e@box_colors, \e@box_patterns, \e@box_scales, \e@line_colors, \e@line_styles, \e@line_widths, \e@symbol_colors, \e@symbol_scales, \e@symbol_numbers, \e@symbols); .PP See the PLplot manual for more details. .SS "plspal0" .IX Subsection "plspal0" .Vb 1 \& plspal0($filename); .Ve .PP Set color palette 0 from the input .pal file. See the PLplot manual for more details. .SS "plspal1" .IX Subsection "plspal1" .Vb 1 \& plspal1($filename); .Ve .PP Set color palette 1 from the input .pal file. See the PLplot manual for more details. .SS "plbtime" .IX Subsection "plbtime" .Vb 1 \& my ($year, $month, $day, $hour, $min, $sec) = plbtime($ctime); .Ve .PP .Vb 1 \& Calculate broken\-down time from continuous time for current stream. .Ve .SS "plconfigtime" .IX Subsection "plconfigtime" .Vb 1 \& plconfigtime($scale, $offset1, $offset2, $ccontrol, $ifbtime_offset, $year, $month, $day, $hour, $min, $sec); .Ve .PP Configure transformation between continuous and broken-down time (and vice versa) for current stream. .SS "plctime" .IX Subsection "plctime" .Vb 1 \& my $ctime = plctime($year, $month, $day, $hour, $min, $sec); .Ve .PP .Vb 1 \& Calculate continuous time from broken\-down time for current stream. .Ve .SS "pltimefmt" .IX Subsection "pltimefmt" .Vb 1 \& pltimefmt($fmt); .Ve .PP Set format for date / time labels. See the PLplot manual for more details. .SS "plsesc" .IX Subsection "plsesc" .Vb 1 \& plsesc($esc); .Ve .PP Set the escape character for text strings. See the PLplot manual for more details. .SS "plvect" .IX Subsection "plvect" .Vb 1 \& Signature: (u(nx,ny); v(nx,ny); scale(); SV* pltr; SV* pltr_data) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plvect does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsvect" .IX Subsection "plsvect" .Vb 1 \& Signature: (arrowx(npts); arrowy(npts); int fill()) .Ve .PP info not available .PP plsvect does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plhlsrgb" .IX Subsection "plhlsrgb" .Vb 1 \& Signature: (double h();double l();double s();double [o]p_r();double [o]p_g();double [o]p_b()) .Ve .PP info not available .PP plhlsrgb does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgcol0" .IX Subsection "plgcol0" .Vb 1 \& Signature: (int icolzero(); int [o]r(); int [o]g(); int [o]b()) .Ve .PP info not available .PP plgcol0 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgcolbg" .IX Subsection "plgcolbg" .Vb 1 \& Signature: (int [o]r(); int [o]g(); int [o]b()) .Ve .PP info not available .PP plgcolbg does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscmap0" .IX Subsection "plscmap0" .Vb 1 \& Signature: (int r(n); int g(n); int b(n)) .Ve .PP info not available .PP plscmap0 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscmap1" .IX Subsection "plscmap1" .Vb 1 \& Signature: (int r(n); int g(n); int b(n)) .Ve .PP info not available .PP plscmap1 does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgcol0a" .IX Subsection "plgcol0a" .Vb 1 \& Signature: (int icolzero(); int [o]r(); int [o]g(); int [o]b(); double [o]a()) .Ve .PP info not available .PP plgcol0a does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgcolbga" .IX Subsection "plgcolbga" .Vb 1 \& Signature: (int [o]r(); int [o]g(); int [o]b(); double [o]a()) .Ve .PP info not available .PP plgcolbga does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscmap0a" .IX Subsection "plscmap0a" .Vb 1 \& Signature: (int r(n); int g(n); int b(n); double a(n)) .Ve .PP info not available .PP plscmap0a does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscmap1a" .IX Subsection "plscmap1a" .Vb 1 \& Signature: (int r(n); int g(n); int b(n); double a(n)) .Ve .PP info not available .PP plscmap1a does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plscmap1la" .IX Subsection "plscmap1la" .Vb 1 \& Signature: (int itype(); isty(n); coord1(n); coord2(n); coord3(n); coord4(n); int rev(nrev)) .Ve .PP \&\s-1FIXME:\s0 documentation here! .PP plscmap1la does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plgfont" .IX Subsection "plgfont" .Vb 1 \& Signature: (int [o]p_family(); int [o]p_style(); int [o]p_weight()) .Ve .PP info not available .PP plgfont does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plsfont" .IX Subsection "plsfont" .Vb 1 \& Signature: (int family(); int style(); int weight()) .Ve .PP info not available .PP plsfont does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SS "plcalc_world" .IX Subsection "plcalc_world" .Vb 1 \& Signature: (double rx(); double ry(); double [o]wx(); double [o]wy(); int [o]window()) .Ve .PP info not available .PP plcalc_world does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. .SH "WARNINGS AND ERRORS" .IX Header "WARNINGS AND ERRORS" PLplot gives many errors and warnings. Some of these are given by the \&\s-1PDL\s0 interface while others are internal PLplot messages. Below are some of these messages, and what you need to do to address them: .IP "\(bu" 4 Box must be a ref to a four element array .Sp When specifying a box, you must pass a reference to a four-element array, or use an anonymous four-element array. .Sp .Vb 4 \& # Gives trouble: \& $pl\->xyplot($x, $y, BOX => (0, 0, 100, 200) ); \& # What you meant to say was: \& $pl\->xyplot($x, $y, BOX => [0, 0, 100, 200] ); .Ve .IP "\(bu" 4 Too many colors used! (max 15) .SH "AUTHORS" .IX Header "AUTHORS" .Vb 3 \& Doug Hunt \& Rafael Laboissiere \& David Mertens .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), \s-1\fIPDL\s0\fR\|(1), .PP The other common graphics packages include \s-1PDL::PGPLOT\s0 and PDL::TriD.