File Coverage

blib/lib/PDL/Graphics/Gnuplot.pm
Criterion Covered Total %
statement 949 1427 66.5
branch 397 828 47.9
condition 198 460 43.0
subroutine 65 86 75.5
pod 26 29 89.6
total 1635 2830 57.7


line stmt bran cond sub pod time code
1             ##############################
2             #
3             # PDL::Graphics::Gnuplot
4             #
5             # This glue module is complicated because it connects a complicated
6             # syntax (Perl) to another complicated syntax (Gnuplot). Here is a
7             # quick internal overview to get your bearings, above the usual POD.
8             #
9             # PDL::Graphics::Gnuplot (P:G:G) objects generally are associated with
10             # an external gnuplot process, and data are passed to the process
11             # through a pipe. It is possible to intercept the data going through
12             # the pipe, either by diverting (dumping) data to stdout instead of
13             # gnuplot, or by teeing the data to stdout as well as gnuplot.
14             # Further, you can turn on syntax checking to validate P:G:G itself.
15             # Syntax checking is performed in a second P:G:G process, since
16             # screwing up the synchronization between Gnuplot and the P:G:G state
17             # is hazardous in the event of syntax error.
18             #
19             # The perl P:G:G object attempts to store and manage essentially
20             # all of the state that is also held inside the gnuplot program.
21             # This takes the form of:
22             # - Terminal options - setup for a given terminal output
23             # - Plot options - setup per-plot
24             # - Curve options - setup per-curve within a plot
25             #
26             # Option handling uses branch tables. Plot and curve options are
27             # parsed using the $pOptionsTable and $cOptionsTable respectively -
28             # these are big global hashes that describe the gnuplot syntax.
29             # Terminal options are "worser" - the options that are accepted depend
30             # on the terminal device, so the table $termTab contains a
31             # description of which terminal options are allowed for each of the
32             # supported gnuplot terminals.
33             #
34             # All options handling is performed through parsing and emitter
35             # routines that are pointed to from those three tables. That is
36             # handled with _parseOptHash(), which accepts an input parameter and a
37             # particular option description table, and parses the input according
38             # to the table. The opposite (used for command generation) is
39             # _emitOpts(), which takes a parsed hash and emits an appropriate
40             # (sub)command into its returned string.
41             #
42             # There are some plot modes that we want to support, and that gnuplot
43             # itself does not yet support. These are "mocked up" using data
44             # prefrobnicators. Currently there is only one of those - FITS
45             # imagery.
46             #
47             # The gnuplot syntax is more than a little byzantine, and this is
48             # reflected in the code - specifically, in the code in plot(), which
49             # is the main workhorse.
50             #
51             # plot() pulls plot arguments off the front and back of the argument
52             # list. It relies on its subroutine parseArgs to break the remaining
53             # parameters into chunks of parameters, each of which represents a
54             # single curve (including curve options and actual data to be
55             # plotted). Because we allow threading, a given batch of curve option
56             # arguments and data can yield many chunks. Those chunks are then
57             # passed through a number of steps back in the main plot() routine,
58             # and turned into a colllection of gnuplot commands suitable for plot
59             # generation.
60             #
61             # Because option parsing and handling is slightly more complicated
62             # than simply interpreting values and assigning defaults, we do not
63             # use a pre-existing package (such as PDL::Options) for option parsing
64             # - we use a dual parse table scheme. Each option set has an "abbrev"
65             # table that is generated at compile time and resolves unique
66             # abbreviations; and a "parse" table that indicates what to do with
67             # each option. Since this mechanism is near at hand, we use it even
68             # for routines (such as read_polygon) that could and would use
69             # PDL::Options in other circumstances.
70              
71             =encoding UTF-8
72              
73             =head1 NAME
74              
75             PDL::Graphics::Gnuplot - Gnuplot-based plotting for PDL
76              
77             =head1 SYNOPSIS
78              
79             pdl> use PDL::Graphics::Gnuplot;
80              
81             pdl> $x = sequence(101) - 50;
82             pdl> gplot($x**2);
83             pdl> gplot($x**2,{xr=>[0,50]});
84              
85             pdl> gplot( {title => 'Parabola with error bars'},
86             with => 'xyerrorbars', legend => 'Parabola',
87             $x**2 * 10, abs($x)/10, abs($x)*5 );
88              
89             pdl> $xy = zeroes(21,21)->ndcoords - pdl(10,10);
90             pdl> $z = inner($xy, $xy);
91             pdl> gplot({title => 'Heat map',
92             trid => 1,
93             view => [0,0]
94             },
95             with => 'image', xvals($z),yvals($z),zeroes($z),$z*2
96             );
97              
98             pdl> $w = gpwin(); # constructor
99             pdl> $pi = 3.14159;
100             pdl> $theta = zeroes(200)->xlinvals(0, 6*$pi);
101             pdl> $z = zeroes(200)->xlinvals(0, 5);
102             pdl> $w->plot3d(cos($theta), sin($theta), $z);
103             pdl> $w->terminfo(); # get information
104              
105              
106             =head1 DESCRIPTION
107              
108             This module allows PDL data to be plotted using Gnuplot as a backend
109             for 2D and 3D plotting and image display. Gnuplot (not affiliated
110             with the GNU project) is a venerable, open-source program that
111             produces both interactive and publication-quality plots on many
112             different output devices. It is available through most Linux
113             repositories, on MacOS, and from its website
114             L.
115              
116             It is not necessary to understand the gnuplot syntax to generate
117             basic, or even complex, plots - though the full syntax is available
118             for advanced users who want the full flexibility of the Gnuplot
119             backend.
120              
121             For a very quick demonstration of the power of this module, see
122             L,
123             and others on visualisation of
124             L and
125             L.
126              
127             Gnuplot recognizes both hard-copy and interactive plotting devices,
128             and on interactive devices (like X11) it is possible to pan, scale,
129             and rotate both 2-D and 3-D plots interactively. You can also enter
130             graphical data through mouse clicks on the device window. On some
131             hardcopy devices (e.g. "PDF") that support multipage output, it is
132             necessary to close the device after plotting to ensure a valid file is
133             written out.
134              
135             C exports two routines by default: a
136             constructor, C and a general purpose plot routine,
137             C. Depending on options, C can produce line plots,
138             scatterplots, error boxes, "candlesticks", images, or any overlain
139             combination of these elements; or perspective views of 3-D renderings
140             such as surface plots.
141              
142             A call to C looks like:
143              
144             gplot({temp_plot_options}, # optional hash ref
145             curve_options, data, data, ... ,
146             curve_options, data, data, ... );
147              
148             The data entries are columns to be plotted. They are normally
149             an optional ordinate and a required abscissa, but some plot modes
150             can use more columns than that. The collection of columns is called
151             a "tuple". Each column must be a separate PDL or an ARRAY ref. If
152             all the columns are PDLs, you can add extra dimensions to make threaded
153             collections of curves.
154              
155             PDL::Graphics::Gnuplot also implements an object oriented
156             interface. Plot objects track individual gnuplot subprocesses. Direct
157             calls to C are tracked through a global object that stores
158             globally set configuration variables.
159              
160             The C sub (or the C method) collects two kinds of
161             options hash: B, which describe the overall structure of
162             the plot being produced (e.g. axis specifications, window size, and
163             title), and B, which describe the behavior of
164             individual traces or collections of points being plotted. In
165             addition, the module itself supports options that allow direct
166             pass-through of plotting commands to the underlying gnuplot process.
167              
168             =head2 Basic plotting
169              
170             Gnuplot generates many kinds of plot, from basic line plots and histograms
171             to scaled labels. Individual plots can be 2-D or 3-D, and different sets
172             of plot styles are supported in each mode. Plots can be sent to a variety
173             of devices; see the description of plot options, below.
174              
175             You can specify what type of graphics output you want, but in most cases
176             doing nothing will cause a plot to be rendered on your screen: with
177             X windows on UNIX or Linux systems, with an XQuartz window on MacOS,
178             or with a native window on Microsoft Windows.
179              
180             You select a plot style with the "with" curve option, and feed in columns
181             of data (usually ordinate followed by abscissa). The collection of columns
182             is called a "tuple". These plots have two columns in their tuples:
183              
184             $x = xvals(51)-25; $y = $x**2;
185             gplot(with=>'points', $x, $y); # Draw points on a parabola
186             gplot(with=>'lines', $x, $y); # Draw a parabola
187             gplot({title=>"Parabolic fit"},
188             with=>"yerrorbars", legend=>"data", $x, $y+(random($y)-0.5)*2*$y/20, pdl($y/20),
189             with=>"lines", legend=>"fit", $x, $y);
190              
191             Normal threading rules apply across the arguments to a given plot.
192              
193             All data are required to be supplied as either PDLs or array refs.
194             If you use an array ref as a data column, then normal
195             threading is disabled. For example:
196              
197             $x = xvals(5);
198             $y = xvals(5)**2;
199             $labels = ['one','two','three','four','five'];
200             gplot(with=>'labels',$x,$y,$labels);
201              
202             See below for supported curve styles.
203              
204             =head3 Modifying plots
205              
206             Gnuplot is built around a monolithic plot model - it is not possible to
207             add new data directly to a plot without redrawing the entire plot. To support
208             replotting, PDL::Graphics::Gnuplot stores the data you plot in the plot object,
209             so that you can add new data with the "replot" command:
210              
211             $w=gpwin(x11);
212             $x=xvals(101)/100;
213             $y=$x;
214             $w->plot($x,$y);
215             $w->replot($x,$y*$y);
216              
217             For speed, the data are *not* disconnected from their original variables - so
218             this will plot X vs. sqrt(X):
219              
220             $x = xvals(101)/100;
221             $y = xvals(101)/100;
222             $w->plot($x,$y);
223             $y->inplace->sqrt;
224             $w->replot();
225              
226             =head3 Plotting to an image file or device
227              
228             PDL:Graphics::Gnuplot can plot to most of the devices supported by
229             gnuplot itself. You can specify the file type with the "output"
230             method or the object constructor "gplot". Either one will allow you
231             to name a type of file to produce, and a collection of options speciic to
232             that type of output file.
233              
234             =head3 Image plotting
235              
236             Several of the plot styles accept image data. The tuple parameters work the
237             same way as for basic plots, but each "column" is a 2-D PDL rather than a 1-D PDL.
238             As a special case, the "with image" plot style accepts either a 2-D or a 3-D PDL.
239             If you pass in 3-D PDL, the extra dimension can have size 1, 3, or 4. It is interpreted
240             as running across (R,G,B,A) color planes.
241              
242             =head3 3-D plotting
243              
244             You can plot in 3-D by setting the plot option C to a true value. Three
245             dimensional plots accept either 1-D or 2-D PDLs as data columns. If you feed
246             in 2-D "columns", many of the common plot styles will generalize appropriately
247             to 3-D. For example, to plot a 2-D surface as a line grid, you can use the "lines"
248             style and feed in 2-D columns instead of 1-D columns.
249              
250             =head2 Enhanced text
251              
252             Most gnuplot output devices include the option to markup "enhanced text". That means
253             text is interpreted so that you can change its font and size, and insert superscripts
254             and subscripts into labels. Codes are:
255              
256             =over 3
257              
258             =item {}
259              
260             Text grouping - enclose text in braces to group characters, as in LaTeX.
261              
262             =item ^
263              
264             Superscript the next character or group (shrinks it slightly too where that is supported).
265              
266             =item _
267              
268             Subscript the next character or group (shrinks it slightly too where that is supported).
269              
270             =item @
271              
272             Phantom box (occupies no width; controls height for super- and subscripting)
273              
274             =item &
275              
276             Controllable-width space, e.g. &{template-string}
277              
278             =item ~
279              
280             overstrike -- e.g. ~a{0.8-} overprints '-' on 'a', raised by 0.8xfontsize.
281              
282             =item {/[fontname][=fontsize | *fontscale] text}
283              
284             Change font to (optional) fontname, and optional absolute font size or relative font scale ("fontsize" and "fontscale" are numbers). The space after the size parameter is not rendered.
285              
286             =item \
287              
288             Backslash escapes control characters to render them as themselves.
289              
290             =back
291              
292             =head2 Unicode text
293              
294             Separately to "enhanced" text above, if you wish to include text that
295             is not ASCII, then you will need to pass data that has been UTF-8
296             encoded. Sample code to achieve this:
297              
298             use utf8;
299             use Encode;
300             use PDL;
301             use PDL::Graphics::Gnuplot;
302             use PDL::Constants qw(PI);
303              
304             sub plot_sin {
305             my ($w, $coeff) = @_;
306             my $xrange = [ -2*PI, 2*PI ];
307             my $x = zeroes(1e3)->xlinvals(@$xrange); my $y = sin($coeff * 2 * PI * $x);
308             my $title = "y = sin( $coeff * 2Ï€ * x )";
309             # to get around sending text through syswrite()
310             my $title_octets = encode('UTF-8', $title);
311             $w->plot(with=>'lines', $x, $y, {
312             xrange => $xrange,
313             title => $title_octets, # can not pass $title as-is
314             });
315             }
316              
317             =head2 Color specification
318              
319             There are several contexts where you can specify color of plot elements. In those
320             places, you can specify colors exactly as in the Gnuplot manual, or more tersely.
321             In general, a color spec can be any one of the following:
322              
323             =over 3
324              
325             =item - an integer
326              
327             This specifies a recognizable unique color in the same order as used by the plotting engine.
328              
329             =item - the name of a color
330              
331             (e.g. "blue"). Supported color names are listed in the variable C<@Alien::Gnuplot::colors>.
332              
333             =item - an RGB value string
334              
335             Strings have the form C<#RRGGBB>, where the C<#> is literal and the RR, GG, and BB are hexadecimal bytes.
336              
337             =item - the word "palette"
338              
339             "palette" indicates that color is to be drawn from the scaled colorbar
340             palette (which you can set with the "clut" plot option), by lookup
341             using an additional column in the associated data tuple.
342              
343             =item - the word "variable"
344              
345             "variable" indicates that color is to be drawn from the integer
346             plotting colors used by the plotting engine, indexed by an additional
347             column in the associated data tuple.
348              
349             =item - the phrase "rgb variable"
350              
351             "rgb variable" indicates that color is to be directly specified by a
352             24 bit integer specifying 8-bit values for (from most significant byte
353             to least significant byte) R, G, and B in the output color. The
354             integer is drawn from an additional column in the associated data tuple.
355              
356             =back
357              
358              
359             =head2 Plot styles supported
360              
361             Gnuplot itself supports a wide range of plot styles, and all are supported by
362             PDL::Graphics::Gnuplot. Most of the basic plot styles collect tuples of 1-D columns
363             in 2-D mode (for ordinary plots), or either 1-D or 2-D "columns" in 3-D mode (for
364             grid surface plots and such). Image modes always collect tuples made of 2-D "columns".
365              
366             You can pass in 1-D columns as either PDLs or ARRAY refs. That is important for
367             plot types (such as "labels") that require a collection of strings rather than
368             numeric data.
369              
370             Each plot style can by modified to support particular colors or line
371             style options. These modifications get passed in as curve options (see
372             below). For example, to plot a blue line you can use
373             C'lines',lc=E'blue'>. To match the autogenerated style of a
374             particular line you can use the C curve option.
375              
376             The GNuplot plot styles supported are:
377              
378             =over 3
379              
380             =item * C - combo of C and C, below (2D)
381              
382             =item * C - simple boxes around regions on the plot (2D)
383              
384             =item * C - Render X and Y error bars as boxes (2D)
385              
386             =item * C - Y error bars with inner and outer limits (2D)
387              
388             =item * C - circles with variable radius at each point: X/Y/radius (2D)
389              
390             =item * C - tiny points ("dots") at each point, e.g. for scatterplots (2D/3D)
391              
392             =item * C - ellipses. Accepts X/Y/major/minor/angle (2D)
393              
394             =item * C - closed polygons or axis-to-line filled shapes (2D)
395              
396             =item * C - financial style plot. Accepts date/open/low/high/close (2D)
397              
398             =item * C - square bin plot; delta-Y, then delta-X (see C, C) (2D)
399              
400             =item * C - square bin plot; plateaus centered on X coords (see C, C) (2D)
401              
402             =item * C - binned histogram of dataset (not direct plot; see C) (2D)
403              
404             =item * C - (PDL-specific) renders FITS image files in scientific coordinates
405              
406             =item * C - Takes (i), (x,y,i), or (x,y,z,i). See C, C, C. (2D/3D)
407              
408             =item * C - vertical line from axis to the plotted point (2D/3D)
409              
410             =item * C - Text labels at specified locations all over the plot (2D/3D)
411              
412             =item * C - regular line plot (2D/3D)
413              
414             =item * C - line plot with symbols at plotted points (2D/3D)
415              
416             =item * C - multiple-histogram-friendly histogram style (see C) (2D)
417              
418             =item * C - symbols at plotted points (2D/3D)
419              
420             =item * C - R/G/B color image with variable transparency (2D/3D)
421              
422             =item * C - R/G/B color image (2D/3D)
423              
424             =item * C - square bin plot; delta-X, then delta-Y (see C, C) (2D)
425              
426             =item * C - Small arrows: (x,y,[z]) -> (x+dx,y+dy,[z+dz]) (2D/3D)
427              
428             =item * C - points with X error bars ("T" form) (2D)
429              
430             =item * C - points with both X and Y error bars ("T" form) (2D)
431              
432             =item * C - points with Y error bars ("T" form) (2D)
433              
434             =item * C - line plot with X errorbars at each point. (2D)
435              
436             =item * C - line plot with XY errorbars at each point. (2D)
437              
438             =item * C - line plot with Y error limits at each point. (2D)
439              
440             =item * C - three-dimensional variable-position surface plot
441              
442             =back
443              
444             =head2 Options arguments
445              
446             The plot options are parameters that affect the whole plot, like the title of
447             the plot, the axis labels, the extents, 2d/3d selection, etc. All the plot
448             options are described below in L<"Plot Options"|/"PLOT OPTIONS">. Plot options can be set
449             in the plot object, or passed to the plotting methods directly. Plot options can
450             be passed in as a leading interpolated hash, as a leading hash ref, or as a trailing
451             hash ref in the argument list to any of the main plotting routines (C, C,
452             C, etc.).
453              
454             The curve options are parameters that affect only one curve in particular. Each
455             call to C can contain many curves, and options for a particular curve
456             I the data for that curve in the argument list. The actual type of curve
457             (the "with" option) is persistent, but all other curve options and modifiers
458             are not. An example:
459              
460             gplot( with => 'points', $x, $a,
461             {axes=> x1y2}, $x, $b,
462             with => 'lines', $x, $c );
463              
464             This plots 3 curves: $a vs. $x plotted with points on the main y-axis (this is
465             the default), $b vs. $x plotted with points on the secondary y axis, and $c
466             vs. $x plotted with lines on the main y-axis (the default). Note that the curve
467             options can be supplied as either an inline hash or a hash ref.
468              
469             All the curve options are described below in L<"Curve Options"|/"CURVE OPTIONS">.
470              
471             If you want to plot multiple curves of the same type without setting
472             any curve options explicitly, you must include an empty hash ref
473             between the tuples for subsequent lines, as in:
474              
475             gplot( $x, $a, {}, $x, $b, {}, $x, $c );
476              
477             =head2 Data arguments
478              
479             Following the curve options in the C argument list is the
480             actual data being plotted. Each output data point is a "tuple" whose
481             size varies depending on what is being plotted. For example if we're
482             making a simple 2D x-y plot, each tuple has 2 values; if we're making
483             a 3d plot with each point having variable size and color, each tuple
484             has 5 values (x,y,z,size,color). Each tuple element must be passed
485             separately. For ordinary 2-D plots, the 0 dim of the tuple elements
486             runs across plotted point. PDL threading is active, so you can plot
487             multiple curves with similar curve options on a normal 2-D plot, just
488             by stacking data inside the passed-in PDLs. (An exception is that
489             threading is disabled if one or more of the data elements is a list
490             ref).
491              
492             =head3 PDLs vs array refs
493              
494             The usual way to pass in data is as a PDL -- one PDL per column of data
495             in the tuple. But strings, in particular, cannot easily be hammered into
496             PDLs. Therefore any column in each tuple can be an array ref containing
497             values (either numeric or string). The column is interpreted using the
498             usual polymorphous cast-behind-your-back behavior of Perl. For the sake
499             of sanity, if even one array ref is present in a tuple, then threading is
500             disabled in that tuple: everything has to have a nice 1-D shape.
501              
502              
503             =head3 Implicit domains
504              
505             When making a simple 2D plot, if exactly 1 dimension is missing,
506             PDL::Graphics::Gnuplot will use C as the domain. This is
507             why code like C works. Only one PDL is given
508             here, but the plot type ("lines" by default) requires 2 elements per
509             tuple. We are thus exactly 1 ndarray short; C is used as
510             the missing domain PDL. This is thus equivalent to
511             C.
512              
513             If plotting in 3d or displaying an image, an implicit domain will be
514             used if we are exactly 2 ndarrays short. In this case,
515             PDL::Graphics::Gnuplot will use a 2D grid as a domain. Example:
516              
517             my $xy = zeros(21,21)->ndcoords - pdl(10,10);
518             gplot({'3d' => 1},
519             with => 'points', inner($xy, $xy));
520             gplot( with => 'image', sin(rvals(51,51)) );
521              
522             Here the only given ndarray has dimensions (21,21). This is a 3D plot, so we are
523             exactly 2 ndarrays short. Thus, PDL::Graphics::Gnuplot generates an implicit
524             domain, corresponding to a 21-by-21 grid.
525              
526             C requires explicit separators between tuples
527             for different plots, so it is always clear from the arguments you pass
528             in just how many columns you are supplying. For example,
529             C will plot C<$b> vs. C<$a>. If you actually want to
530             plot an overlay of both C<$a> and C<$b> against array index, you want
531             C instead. The C<{}> is a hash ref containing a
532             collection of all the curve options that you are changing between
533             the two curves -- in this case, zero of them.
534              
535             =head2 Images
536              
537             PDL::Graphics::Gnuplot supports four styles of image plot, via the "with" curve option.
538              
539             The "image" style accepts a single image plane and displays it using
540             the palette (pseudocolor map) that is specified in the plot options
541             for that plot. As a special case, if you supply as data a (3xWxH) or
542             (WxHx3) PDL it is treated as an RGB image and displayed with the
543             "rgbimage" style (below), provided there are at least 5 pixels in each of the
544             other two dimensions (just to be sure). For quick image display there
545             is also an "image" method:
546              
547             use PDL::Graphics::Gnuplot qw/image gplot/;
548             $im = sin(rvals(51,51)/2);
549             image( $im ); # display the image
550             gplot( with=>'image', $im ); # display the image (longer form)
551              
552             The colors are autoscaled in both cases. To set a particular color range, use
553             the 'cbrange' plot option:
554              
555             image( {cbrange=>[0,1]}, $im );
556              
557             You can plot rgb images directly with the image style, just by including a
558             3rd dimension of size 3 on your image:
559              
560             $rgbim = pdl( xvals($im), yvals($im),rvals($im)/sqrt(2));
561             image( $rgbim ); # display an RGB image
562             gplot( with=>'image', $rgbim ); # display an RGB image (longer form)
563              
564             Some additional plot styles exist to specify RGB and RGB transparent forms
565             directly. These are the "with" styles "rgbimage" and "rgbalpha". For each
566             of them you must specify the channels as separate PDLs:
567              
568             gplot( with=>'rgbimage', $rgbim->dog ); # RGB the long way
569             gplot( with=>'rgbalpha', $rgbim->dog, 255*($im>0) ); # RGBA the long way
570              
571             According to the gnuplot specification you can also give X and Y
572             values for each pixel, as in
573              
574             gplot( with=>'image', xvals($im), yvals($im), $im )
575              
576             but this appears not to work properly for anything more complicated
577             than a trivial matrix of X and Y values.
578              
579             PDL::Graphics::Gnuplot provides a "fits" plot style that interprets
580             World Coordinate System (WCS) information supplied in the header of
581             the scientific image format FITS. The image is displayed in rectified
582             scientific coordinates, rather than in pixel coordinates. You can plot
583             FITS images in scientific coordinates with
584              
585             gplot( with=>'fits', $fitsdata );
586              
587             The fits plot style accepts a curve option "resample" (which may be
588             abbreviated), that allows you to downsample and/or rectify the image
589             before it is passed to the Gnuplot back-end. This is useful either to
590             cut down on the burden of transferring large blocks of image data or
591             to rectify images with nonlinear WCS transformations in their headers.
592             (gnuplot itself has a bug that prevents direct rendering of images in
593             nonlinear coordinates).
594              
595             gplot( with=>'fits', res=>1, $fitsdata );
596             gplot( with=>'fits', res=>[200], $fitsdata );
597             gplot( with=>'fits', res=>[100,400],$fitsdata );
598              
599             to specify that the output are to be resampled onto a square 1024x1024 grid,
600             a 200x200 grid, or a 100x400 grid, respectively. The resample sizes must be
601             positive integers.
602             A true non-ref value will be treated as 1024x1024.
603              
604             =head2 Interactivity
605              
606             Several of the graphical backends of Gnuplot are interactive, allowing
607             you to pan, zoom, rotate and measure the data interactively in the plot
608             window. See the Gnuplot documentation for details about how to do
609             this. Some terminals (such as C) are persistently interactive. Other
610             terminals (such as C) maintain their interactivity only while the
611             underlying gnuplot process is active -- i.e. until another plot is
612             created with the same PDL::Graphics::Gnuplot object, or until the perl
613             process exits (whichever comes first). Still others (the hardcopy
614             devices) aren't interactive at all.
615              
616             Some interactive devices (notably C and C) also support
617             mouse input: you can write PDL scripts that accept and manipulate
618             graphical input from the plotted window.
619              
620             =head1 PLOT OPTIONS
621              
622             Gnuplot controls plot style with "plot options" that configure and
623             specify virtually all aspects of the plot to be produced. Plot
624             options are tracked as stored state in the PDL::Graphics::Gnuplot
625             object. You can set them by passing them in to the constructor, to an
626             C method, or to the C method itself.
627              
628             Nearly all the underlying Gnuplot plot options are supported, as well
629             as some additional options that are parsed by the module itself for
630             convenience.
631              
632             There are many, many plot options. For convenience, we've grouped
633             them by general category below. Each group has a heading "POs for EfooE",
634             describing the category. You can skip below them all if you want to
635             read about curve options or other aspects of PDL::Graphics::Gnuplot.
636              
637             =head2 POs for Output: terminal, termoption, output, device, hardcopy
638              
639             You can send plots to a variety of different devices; Gnuplot calls
640             devices "terminals". With the object-oriented interface, you must set
641             the output device with the constructor C
642             (or the exported constructor C) or the C method. If you
643             use the simple non-object interface, you can set the output with the
644             C, C, and C plot options.
645              
646             C sets the output device type for Gnuplot, and C sets the
647             actual output file or window number.
648              
649             C and C are for convenience. C offers a
650             PGPLOT-style device specifier in "filename/device" format (the "filename"
651             gets sent to the "output" option, the "device" gets sent to the "terminal"
652             option). C takes an output file name, attempts to parse out a
653             file suffix and infer a device type. C also uses a common set of
654             terminal options needed to fill an entire letter page with a plot.
655              
656             For finer grained control of the plotting environment, you can send
657             "terminal options" to Gnuplot. If you set the terminal directly with
658             plot options, you can include terminal options by interpolating them
659             into a string, as in C, or you can
660             use the constructor C (also exported as C), which parses
661             terminal options as an argument list.
662              
663             The routine C prints a list of all
664             available terminals or, if you pass in a terminal name, options accepted
665             by that terminal.
666              
667              
668             =head2 POs for Titles
669              
670             The options described here are
671              
672             =over
673              
674             =item title
675              
676             =item xlabel
677              
678             =item x2label
679              
680             =item ylabel
681              
682             =item y2label
683              
684             =item zlabel
685              
686             =item cblabel
687              
688             =item key
689              
690             =back
691              
692             Gnuplot supports "enhanced" text escapes on most terminals; see "text",
693             below.
694              
695             The C option lets you set a title for the whole plot. </td> </tr> <tr> <td class="h" > <a name="696">696</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="697">697</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Individual plot components are labeled with the C<label> options. </td> </tr> <tr> <td class="h" > <a name="698">698</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<xlabel>, C<x2label>, C<ylabel>, and C<y2label> specify axis titles </td> </tr> <tr> <td class="h" > <a name="699">699</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for 2-D plots. The C<zlabel> works for 3-D plots. The C<cblabel> option </td> </tr> <tr> <td class="h" > <a name="700">700</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sets the label for the color box, in plot types that have one (e.g. </td> </tr> <tr> <td class="h" > <a name="701">701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> image display). </td> </tr> <tr> <td class="h" > <a name="702">702</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="703">703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (Don't be confused by C<clabel>, which doesn't set a label at all, rather </td> </tr> <tr> <td class="h" > <a name="704">704</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specifies the printf format used by contour labels in contour plots.) </td> </tr> <tr> <td class="h" > <a name="705">705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="706">706</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<key> controls where the plot key (that relates line/symbol style to label) </td> </tr> <tr> <td class="h" > <a name="707">707</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> is placed on the plot. It takes a scalar boolean indicating whether to turn the </td> </tr> <tr> <td class="h" > <a name="708">708</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> key on (with default values) or off, or an array ref containing any of the following </td> </tr> <tr> <td class="h" > <a name="709">709</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> arguments (all are optional) in the order listed: </td> </tr> <tr> <td class="h" > <a name="710">710</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="711">711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="712">712</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="713">713</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * ( on | off ) - turn the key on or off </td> </tr> <tr> <td class="h" > <a name="714">714</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="715">715</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * ( inside | outside | lmargin | rmargin | tmargin | bmargin | at <pos> ) </td> </tr> <tr> <td class="h" > <a name="716">716</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="717">717</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> These keywords set the location of the key -- "inside/outside" is </td> </tr> <tr> <td class="h" > <a name="718">718</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> relative to the plot border; the margin keywords indicate location in </td> </tr> <tr> <td class="h" > <a name="719">719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the margins of the plot; and at <pos> (where <pos> is a comma-delimited string </td> </tr> <tr> <td class="h" > <a name="720">720</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> containing (x,y): C<key=E<gt>[at=E<gt>"0.5,0.5"]>) is an exact location to place the key. </td> </tr> <tr> <td class="h" > <a name="721">721</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="722">722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * ( left | right | center ) ( top | bottom | center ) - horiz./vert. alignment </td> </tr> <tr> <td class="h" > <a name="723">723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="724">724</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * ( vertical | horizontal ) - stacking direction within the key </td> </tr> <tr> <td class="h" > <a name="725">725</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="726">726</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * ( Left | Right ) - justification of plot labels within the key (note case) </td> </tr> <tr> <td class="h" > <a name="727">727</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="728">728</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * [no]reverse - switch order of label and sample line </td> </tr> <tr> <td class="h" > <a name="729">729</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="730">730</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * [no]invert - invert the stack order of the labels </td> </tr> <tr> <td class="h" > <a name="731">731</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="732">732</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * samplen <length> - set the length of the sample lines </td> </tr> <tr> <td class="h" > <a name="733">733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="734">734</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * spacing <dist> - set the spacing between adjacent labels in the list </td> </tr> <tr> <td class="h" > <a name="735">735</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="736">736</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * [no]autotitle - control whether labels are generated when not specified </td> </tr> <tr> <td class="h" > <a name="737">737</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="738">738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * title "<text>" - set a title for the key </td> </tr> <tr> <td class="h" > <a name="739">739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="740">740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * [no]enhanced - override terminal settings for enhanced text interpretation </td> </tr> <tr> <td class="h" > <a name="741">741</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="742">742</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * font "<face>,<size>" - set font for the labels </td> </tr> <tr> <td class="h" > <a name="743">743</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="744">744</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * textcolor <colorspec> </td> </tr> <tr> <td class="h" > <a name="745">745</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="746">746</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * [no]box linestyle <ls> linetype <lt> linewidth <lw> - control box around the key </td> </tr> <tr> <td class="h" > <a name="747">747</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="748">748</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="749">749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="750">750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for axes, grids, & borders </td> </tr> <tr> <td class="h" > <a name="751">751</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="752">752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The options described here are </td> </tr> <tr> <td class="h" > <a name="753">753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="754">754</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over </td> </tr> <tr> <td class="h" > <a name="755">755</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="756">756</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item grid </td> </tr> <tr> <td class="h" > <a name="757">757</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="758">758</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item xzeroaxis </td> </tr> <tr> <td class="h" > <a name="759">759</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="760">760</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item x2zeroaxis </td> </tr> <tr> <td class="h" > <a name="761">761</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="762">762</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item yzeroaxis </td> </tr> <tr> <td class="h" > <a name="763">763</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="764">764</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item y2zeroaxis </td> </tr> <tr> <td class="h" > <a name="765">765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="766">766</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item zzeroaxis </td> </tr> <tr> <td class="h" > <a name="767">767</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="768">768</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item border </td> </tr> <tr> <td class="h" > <a name="769">769</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="770">770</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="771">771</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="772">772</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Normally, tick marks and their labels are applied to the border of a plot, </td> </tr> <tr> <td class="h" > <a name="773">773</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> and no extra axes (e.g. the y=0 line) nor coordinate grids are shown. You can </td> </tr> <tr> <td class="h" > <a name="774">774</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specify which (if any) zero axes should be drawn, and which (if any) </td> </tr> <tr> <td class="h" > <a name="775">775</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> borders should be drawn. </td> </tr> <tr> <td class="h" > <a name="776">776</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="777">777</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<border> option controls whether the plot itself has a border </td> </tr> <tr> <td class="h" > <a name="778">778</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> drawn around it. You can feed it a scalar boolean value to indicate </td> </tr> <tr> <td class="h" > <a name="779">779</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> whether borders should be drawn around the plot -- or you can feed in a list </td> </tr> <tr> <td class="h" > <a name="780">780</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref containing options. The options are all optional but must be supplied </td> </tr> <tr> <td class="h" > <a name="781">781</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in the order given. </td> </tr> <tr> <td class="h" > <a name="782">782</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="783">783</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="784">784</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="785">785</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * <integer> - packed bit flags for which border lines to draw </td> </tr> <tr> <td class="h" > <a name="786">786</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="787">787</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="788">788</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The default if you set a true value for C<border> is to draw all border lines. </td> </tr> <tr> <td class="h" > <a name="789">789</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can feed in a single integer value containing a bit mask, to draw only some </td> </tr> <tr> <td class="h" > <a name="790">790</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> border lines. From LSB to MSB, the coded lines are bottom, left, top, right for </td> </tr> <tr> <td class="h" > <a name="791">791</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 2D plots -- e.g. 5 will draw bottom and top borders but neither left nor right. </td> </tr> <tr> <td class="h" > <a name="792">792</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="793">793</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> In three dimensions, 12 bits are used to describe the twelve edges of </td> </tr> <tr> <td class="h" > <a name="794">794</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a cube surrounding the plot. In groups of three, the first four </td> </tr> <tr> <td class="h" > <a name="795">795</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> control the bottom (xy) plane edges in the same order as in the 2-D </td> </tr> <tr> <td class="h" > <a name="796">796</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plots; the middle four control the vertical edges that rise from the </td> </tr> <tr> <td class="h" > <a name="797">797</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> clockwise end of the bottom plane edges; and the last four control the </td> </tr> <tr> <td class="h" > <a name="798">798</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> top plane edges. </td> </tr> <tr> <td class="h" > <a name="799">799</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="800">800</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * ( back | front ) - draw borders first or last (controls hidden line appearance) </td> </tr> <tr> <td class="h" > <a name="801">801</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="802">802</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * linewidth <lw>, linestyle <ls>, linetype <lt> </td> </tr> <tr> <td class="h" > <a name="803">803</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="804">804</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> These are Gnuplot's usual three options for line control. </td> </tr> <tr> <td class="h" > <a name="805">805</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="806">806</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="807">807</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="808">808</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<grid> option indicates whether gridlines should be drawn on </td> </tr> <tr> <td class="h" > <a name="809">809</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> each axis. It takes an array ref of arguments, each of which is either "no" or "m" or "", </td> </tr> <tr> <td class="h" > <a name="810">810</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> followed by an axis name and "tics" -- </td> </tr> <tr> <td class="h" > <a name="811">811</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> e.g. C<< grid=>["noxtics","ymtics"] >> draws no X gridlines and draws </td> </tr> <tr> <td class="h" > <a name="812">812</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (horizontal) Y gridlines on Y axis major and minor tics, while </td> </tr> <tr> <td class="h" > <a name="813">813</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<< grid=>["xtics","ytics"] >> or C<< grid=>["xtics ytics"] >> will draw both </td> </tr> <tr> <td class="h" > <a name="814">814</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> vertical (X) and horizontal (Y) grid lines on major tics. </td> </tr> <tr> <td class="h" > <a name="815">815</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="816">816</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To draw a coordinate grid with default values, set C<< grid=>1 >>. For more </td> </tr> <tr> <td class="h" > <a name="817">817</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> control, feed in an array ref with zero or more of the following parameters, in order: </td> </tr> <tr> <td class="h" > <a name="818">818</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="819">819</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<zeroaxis> keyword indicates whether to actually draw each axis </td> </tr> <tr> <td class="h" > <a name="820">820</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> line at the corresponding zero along its indicated dimension. For </td> </tr> <tr> <td class="h" > <a name="821">821</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> example, to draw the X axis (y=0), use C<< xzeroaxis=>1 >>. If you just </td> </tr> <tr> <td class="h" > <a name="822">822</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> want the axis turned on with default values, you can feed in a Boolean </td> </tr> <tr> <td class="h" > <a name="823">823</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> scalar; if you want to set its parameters, you can feed in an array ref </td> </tr> <tr> <td class="h" > <a name="824">824</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> containing linewidth, linestyle, and linetype (with appropriate </td> </tr> <tr> <td class="h" > <a name="825">825</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> parameters for each), e.g. C<< xzeroaxis=>[linewidth=>2] >>. </td> </tr> <tr> <td class="h" > <a name="826">826</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="827">827</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for axis range and mode </td> </tr> <tr> <td class="h" > <a name="828">828</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="829">829</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The options described here are </td> </tr> <tr> <td class="h" > <a name="830">830</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="831">831</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over </td> </tr> <tr> <td class="h" > <a name="832">832</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="833">833</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item xrange </td> </tr> <tr> <td class="h" > <a name="834">834</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="835">835</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item x2range </td> </tr> <tr> <td class="h" > <a name="836">836</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="837">837</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item yrange </td> </tr> <tr> <td class="h" > <a name="838">838</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="839">839</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item y2range </td> </tr> <tr> <td class="h" > <a name="840">840</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="841">841</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item zrange </td> </tr> <tr> <td class="h" > <a name="842">842</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="843">843</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item rrange </td> </tr> <tr> <td class="h" > <a name="844">844</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="845">845</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item cbrange </td> </tr> <tr> <td class="h" > <a name="846">846</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="847">847</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item trange </td> </tr> <tr> <td class="h" > <a name="848">848</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="849">849</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item urange </td> </tr> <tr> <td class="h" > <a name="850">850</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="851">851</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item vrange </td> </tr> <tr> <td class="h" > <a name="852">852</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="853">853</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item autoscale </td> </tr> <tr> <td class="h" > <a name="854">854</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="855">855</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item logscale </td> </tr> <tr> <td class="h" > <a name="856">856</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="857">857</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="858">858</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="859">859</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Gnuplot accepts explicit ranges as plot options for all axes. Each option </td> </tr> <tr> <td class="h" > <a name="860">860</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> accepts an array ref with (min, max). If either min or max is missing, then </td> </tr> <tr> <td class="h" > <a name="861">861</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the opposite limit is autoscaled. The x and y ranges refer to the usual </td> </tr> <tr> <td class="h" > <a name="862">862</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ordinate and abscissa of the plot; x2 and y2 refer to alternate ordinate and </td> </tr> <tr> <td class="h" > <a name="863">863</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> abscissa; z if for 3-D plots; r is for polar plots; t, u, and v are for parametric </td> </tr> <tr> <td class="h" > <a name="864">864</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plots. cb is for the color box on plots that include it (see "color", below). </td> </tr> <tr> <td class="h" > <a name="865">865</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="866">866</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<rrange> is used for radial coordinates (which </td> </tr> <tr> <td class="h" > <a name="867">867</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> are accessible using the C<mapping> plot option, below). </td> </tr> <tr> <td class="h" > <a name="868">868</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="869">869</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<cbrange> (for 'color box range') sets the range of values over which </td> </tr> <tr> <td class="h" > <a name="870">870</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> palette colors (either gray or pseudocolor) are matched. It is valid </td> </tr> <tr> <td class="h" > <a name="871">871</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in any color-mapped plot (including images or palette-mapped lines or </td> </tr> <tr> <td class="h" > <a name="872">872</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> points), even if no color box is being displayed for this plot. </td> </tr> <tr> <td class="h" > <a name="873">873</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="874">874</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<trange>, C<urange>, and C<vrange> set ranges for the parametric coordinates </td> </tr> <tr> <td class="h" > <a name="875">875</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if you are plotting a parametric curve. </td> </tr> <tr> <td class="h" > <a name="876">876</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="877">877</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> By default all axes are autoscaled unless you specify a range on that </td> </tr> <tr> <td class="h" > <a name="878">878</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> axis, and partially (min or max) autoscaled if you specify a partial </td> </tr> <tr> <td class="h" > <a name="879">879</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> range on that axis. C<autoscale> allows more explicit control of how </td> </tr> <tr> <td class="h" > <a name="880">880</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> autoscaling is performed, on an axis-by-axis basis. It accepts a hash </td> </tr> <tr> <td class="h" > <a name="881">881</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref, each element of which specifies how a single axis should be </td> </tr> <tr> <td class="h" > <a name="882">882</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> autoscaled. Each keyword contains an axis name followed by one of </td> </tr> <tr> <td class="h" > <a name="883">883</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "fix", "min", "max", "fixmin", or "fixmax". You can set all the axes at </td> </tr> <tr> <td class="h" > <a name="884">884</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> once by setting the keyword name to ' '. Examples: </td> </tr> <tr> <td class="h" > <a name="885">885</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="886">886</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> autoscale=>{x=>'max',y=>'fix'}; </td> </tr> <tr> <td class="h" > <a name="887">887</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="888">888</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> There is an older array ref syntax which is deprecated but still accepted. </td> </tr> <tr> <td class="h" > <a name="889">889</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="890">890</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To not autoscale an axis at all, specify a range for it. The fix style of </td> </tr> <tr> <td class="h" > <a name="891">891</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> autoscaling forces the autoscaler to use the actual min/max of the data as </td> </tr> <tr> <td class="h" > <a name="892">892</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the limit for the corresponding axis -- by default the axis gets extended </td> </tr> <tr> <td class="h" > <a name="893">893</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> to the next minor tic (as set by the autoticker or by a tic specification, see </td> </tr> <tr> <td class="h" > <a name="894">894</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> below). </td> </tr> <tr> <td class="h" > <a name="895">895</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="896">896</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<logscale> allows you to turn on logarithmic scaling for any or all </td> </tr> <tr> <td class="h" > <a name="897">897</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> axes, and to set the base of the logarithm. It takes an array ref, the </td> </tr> <tr> <td class="h" > <a name="898">898</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> first element of which is a string mushing together the names of all </td> </tr> <tr> <td class="h" > <a name="899">899</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the axes to scale logarithmically, and the second of which is the base </td> </tr> <tr> <td class="h" > <a name="900">900</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of the logarithm: C<< logscale=>[xy=>10] >>. You can also leave off the </td> </tr> <tr> <td class="h" > <a name="901">901</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> base if you want base-10 logs: C<< logscale=>['xy'] >>. </td> </tr> <tr> <td class="h" > <a name="902">902</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="903">903</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for Axis tick marks </td> </tr> <tr> <td class="h" > <a name="904">904</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="905">905</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The options described here are </td> </tr> <tr> <td class="h" > <a name="906">906</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="907">907</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over </td> </tr> <tr> <td class="h" > <a name="908">908</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="909">909</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item xtics </td> </tr> <tr> <td class="h" > <a name="910">910</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="911">911</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item x2tics </td> </tr> <tr> <td class="h" > <a name="912">912</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="913">913</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ytics </td> </tr> <tr> <td class="h" > <a name="914">914</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="915">915</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item y2tics </td> </tr> <tr> <td class="h" > <a name="916">916</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="917">917</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ztics </td> </tr> <tr> <td class="h" > <a name="918">918</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="919">919</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item cbtics </td> </tr> <tr> <td class="h" > <a name="920">920</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="921">921</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item mxtics </td> </tr> <tr> <td class="h" > <a name="922">922</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="923">923</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item mx2tics </td> </tr> <tr> <td class="h" > <a name="924">924</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="925">925</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item mytics </td> </tr> <tr> <td class="h" > <a name="926">926</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="927">927</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item my2tics </td> </tr> <tr> <td class="h" > <a name="928">928</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="929">929</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item mztics </td> </tr> <tr> <td class="h" > <a name="930">930</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="931">931</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item mcbtics </td> </tr> <tr> <td class="h" > <a name="932">932</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="933">933</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="934">934</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="935">935</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Axis tick marks are called "tics" within Gnuplot, and they are extensively </td> </tr> <tr> <td class="h" > <a name="936">936</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> controllable via the "{axis}tics" options. In particular, major and minor </td> </tr> <tr> <td class="h" > <a name="937">937</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ticks are supported, as are arbitrarily variable length ticks, non-equally </td> </tr> <tr> <td class="h" > <a name="938">938</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> spaced ticks, and arbitrarily labelled ticks. Support exists for time formatted </td> </tr> <tr> <td class="h" > <a name="939">939</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ticks (see C<POs for time data values> below). </td> </tr> <tr> <td class="h" > <a name="940">940</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="941">941</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> By default, gnuplot will automatically place major and minor ticks. </td> </tr> <tr> <td class="h" > <a name="942">942</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can turn off ticks on an axis by setting the appropriate {foo}tics </td> </tr> <tr> <td class="h" > <a name="943">943</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> option to a defined, false scalar value (e.g. C<< xtics=>0 >>). If you </td> </tr> <tr> <td class="h" > <a name="944">944</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> want to set major tics to happen at a regular specified intervals, you can set the </td> </tr> <tr> <td class="h" > <a name="945">945</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> appropriate tics option to a nonzero scalar value (e.g. C<< xtics=>2 >> to </td> </tr> <tr> <td class="h" > <a name="946">946</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specify a tic every 2 units on the X axis). To use default values for the </td> </tr> <tr> <td class="h" > <a name="947">947</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> tick positioning, specify an empty hash or array ref (e.g. C<< xtics=>{} >>), or </td> </tr> <tr> <td class="h" > <a name="948">948</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a string containing only whitespace (e.g. C<< xtics=>' ' >>). </td> </tr> <tr> <td class="h" > <a name="949">949</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="950">950</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you prepend an 'm' to any tics option, it affects minor tics instead of </td> </tr> <tr> <td class="h" > <a name="951">951</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> major tics (major tics typically show units; minor tics typically show fractions </td> </tr> <tr> <td class="h" > <a name="952">952</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of a unit). </td> </tr> <tr> <td class="h" > <a name="953">953</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="954">954</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Each tics option can accept a hash ref containing options to pass to </td> </tr> <tr> <td class="h" > <a name="955">955</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Gnuplot. You can also pass in a snippet of gnuplot command, as either </td> </tr> <tr> <td class="h" > <a name="956">956</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a string or an array ref -- but those techniques are deprecated and may </td> </tr> <tr> <td class="h" > <a name="957">957</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> disappear in a future version of C<PDL:Graphics::Gnuplot>. </td> </tr> <tr> <td class="h" > <a name="958">958</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="959">959</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The keywords are case-insensitive and may be abbreviated, just as with </td> </tr> <tr> <td class="h" > <a name="960">960</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> other option types. They are: </td> </tr> <tr> <td class="h" > <a name="961">961</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="962">962</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 2 </td> </tr> <tr> <td class="h" > <a name="963">963</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="964">964</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * axis - set to 1 to place tics on the axis (the default) </td> </tr> <tr> <td class="h" > <a name="965">965</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="966">966</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * border - set to 1 to place tics on the border (not the default) </td> </tr> <tr> <td class="h" > <a name="967">967</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="968">968</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * mirror - set to 1 to place mirrored tics on the opposite axis/border (the default, unless an alternate axis interferes -- e.g. y2) </td> </tr> <tr> <td class="h" > <a name="969">969</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="970">970</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * in - set to 1 to draw tics inward from the axis/border </td> </tr> <tr> <td class="h" > <a name="971">971</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="972">972</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * out - set to 1 to draw tics outward from the axis/border </td> </tr> <tr> <td class="h" > <a name="973">973</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="974">974</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * scale - multiplier on tic length compared to the default </td> </tr> <tr> <td class="h" > <a name="975">975</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="976">976</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you pass in undef, tics get the default length. If you pass in a scalar, major tics get scaled. You can pass in an array ref to scale minor tics too. </td> </tr> <tr> <td class="h" > <a name="977">977</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="978">978</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * rotate - turn label text by the given angle (in degrees) on the drawing plane </td> </tr> <tr> <td class="h" > <a name="979">979</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="980">980</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * offset - offset label text from default position, (units: characters; requires array ref containing x,y) </td> </tr> <tr> <td class="h" > <a name="981">981</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="982">982</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * locations - sets tic locations. Gets an array ref: [incr], [start, incr], or [start, incr, stop]. </td> </tr> <tr> <td class="h" > <a name="983">983</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="984">984</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * labels - sets tic locations explicitly, with text labels for each. If you specify both C<locations> and C<labels>, you get both sets of tics on the same axis. </td> </tr> <tr> <td class="h" > <a name="985">985</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="986">986</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The labels should be a nested array ref that is a collection of duals </td> </tr> <tr> <td class="h" > <a name="987">987</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or triplets. Each dual or triplet should contain [label, position, minorflag], </td> </tr> <tr> <td class="h" > <a name="988">988</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> as in C<< labels=>[["one",1,0],["three-halves",1.5,1],["two",2,0]] >>. </td> </tr> <tr> <td class="h" > <a name="989">989</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="990">990</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * format - printf-style format string for tic labels. There are </td> </tr> <tr> <td class="h" > <a name="991">991</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> some extensions to the gnuplot format tags -- see the gnuplot manual. </td> </tr> <tr> <td class="h" > <a name="992">992</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Gnuplot 4.8 and higher have C<%h>, which works like C<%g> but uses </td> </tr> <tr> <td class="h" > <a name="993">993</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> extended text formatting if it is available. </td> </tr> <tr> <td class="h" > <a name="994">994</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="995">995</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * font - set font name and size (system font name) </td> </tr> <tr> <td class="h" > <a name="996">996</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="997">997</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * rangelimited - set to 1 to limit tics to the range of values actually present in the plot </td> </tr> <tr> <td class="h" > <a name="998">998</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="999">999</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * textcolor - set the color of the tick labels (see L</"Color specification">) </td> </tr> <tr> <td class="h" > <a name="1000">1000</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1001">1001</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1002">1002</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1003">1003</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For example, to turn on inward mirrored X axis ticks with diagonal Arial 9 text, use: </td> </tr> <tr> <td class="h" > <a name="1004">1004</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1005">1005</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xtics => {axis=>1,mirror=>1,in=>1,rotate=>45,font=>'Arial,9'} </td> </tr> <tr> <td class="h" > <a name="1006">1006</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1007">1007</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or </td> </tr> <tr> <td class="h" > <a name="1008">1008</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1009">1009</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xtics => ['axis','mirror','in','rotate by 45','font "Arial,9"'] </td> </tr> <tr> <td class="h" > <a name="1010">1010</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1011">1011</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for time data values </td> </tr> <tr> <td class="h" > <a name="1012">1012</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1013">1013</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The options described here are </td> </tr> <tr> <td class="h" > <a name="1014">1014</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1015">1015</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over </td> </tr> <tr> <td class="h" > <a name="1016">1016</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1017">1017</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item xmtics </td> </tr> <tr> <td class="h" > <a name="1018">1018</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1019">1019</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item x2mtics </td> </tr> <tr> <td class="h" > <a name="1020">1020</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1021">1021</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ymtics </td> </tr> <tr> <td class="h" > <a name="1022">1022</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1023">1023</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item y2mtics </td> </tr> <tr> <td class="h" > <a name="1024">1024</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1025">1025</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item zmtics </td> </tr> <tr> <td class="h" > <a name="1026">1026</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1027">1027</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item cbmtics </td> </tr> <tr> <td class="h" > <a name="1028">1028</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1029">1029</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item xdtics </td> </tr> <tr> <td class="h" > <a name="1030">1030</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1031">1031</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item x2dtics </td> </tr> <tr> <td class="h" > <a name="1032">1032</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1033">1033</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ydtics </td> </tr> <tr> <td class="h" > <a name="1034">1034</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1035">1035</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item y2dtics </td> </tr> <tr> <td class="h" > <a name="1036">1036</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1037">1037</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item zdtics </td> </tr> <tr> <td class="h" > <a name="1038">1038</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1039">1039</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item cbdtics </td> </tr> <tr> <td class="h" > <a name="1040">1040</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1041">1041</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item xdata </td> </tr> <tr> <td class="h" > <a name="1042">1042</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1043">1043</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item x2data </td> </tr> <tr> <td class="h" > <a name="1044">1044</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1045">1045</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ydata </td> </tr> <tr> <td class="h" > <a name="1046">1046</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1047">1047</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item y2data </td> </tr> <tr> <td class="h" > <a name="1048">1048</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1049">1049</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item zdata </td> </tr> <tr> <td class="h" > <a name="1050">1050</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1051">1051</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item cbdata </td> </tr> <tr> <td class="h" > <a name="1052">1052</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1053">1053</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1054">1054</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1055">1055</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Gnuplot contains support for plotting absolute time and date on any of its axes, </td> </tr> <tr> <td class="h" > <a name="1056">1056</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> with conventional formatting. There are three main methods, which are mutually exclusive </td> </tr> <tr> <td class="h" > <a name="1057">1057</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (i.e. you should not attempt to use two at once on the same axis). </td> </tr> <tr> <td class="h" > <a name="1058">1058</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1059">1059</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="1060">1060</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1061">1061</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item B<Plotting timestamps using UNIX times> </td> </tr> <tr> <td class="h" > <a name="1062">1062</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1063">1063</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can set any axis to plot timestamps rather than numeric values by </td> </tr> <tr> <td class="h" > <a name="1064">1064</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> setting the corresponding "data" plot option to "time", </td> </tr> <tr> <td class="h" > <a name="1065">1065</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> e.g. C<< xdata=>"time" >>. If you do so, then numeric values in the </td> </tr> <tr> <td class="h" > <a name="1066">1066</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> corresponding data are interpreted as UNIX time (seconds since the </td> </tr> <tr> <td class="h" > <a name="1067">1067</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> UNIX epoch, neglecting leap seconds). No provision is made for </td> </tr> <tr> <td class="h" > <a name="1068">1068</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> UTC<->TAI conversion. You can format how the times are plotted with </td> </tr> <tr> <td class="h" > <a name="1069">1069</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the "format" option in the various "tics" options(above). Output </td> </tr> <tr> <td class="h" > <a name="1070">1070</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specifiers should be in UNIX strftime(3) format -- for example, </td> </tr> <tr> <td class="h" > <a name="1071">1071</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<< xdata=>"time",xtics=>{format=>"%Y-%b-%dT%H:%M:%S"} >> </td> </tr> <tr> <td class="h" > <a name="1072">1072</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> will plot UNIX times as ISO timestamps in the ordinate. </td> </tr> <tr> <td class="h" > <a name="1073">1073</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1074">1074</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Due to limitations within gnuplot, the time resolution in this mode is </td> </tr> <tr> <td class="h" > <a name="1075">1075</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> limited to 1 second - if you want fractional seconds, you must use numerically </td> </tr> <tr> <td class="h" > <a name="1076">1076</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> formatted times (and/or create your own tick labels using the C<labels> suboption </td> </tr> <tr> <td class="h" > <a name="1077">1077</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> to the C<?tics> option. </td> </tr> <tr> <td class="h" > <a name="1078">1078</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1079">1079</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> B<Timestamp format specifiers> </td> </tr> <tr> <td class="h" > <a name="1080">1080</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1081">1081</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Time format specifiers use the following printf-like codes: </td> </tr> <tr> <td class="h" > <a name="1082">1082</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1083">1083</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="1084">1084</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1085">1085</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Year A.D.>: C<%Y> is 4-digit year; C<%y> is 2-digit year (1969-2068) </td> </tr> <tr> <td class="h" > <a name="1086">1086</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1087">1087</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Month of year>: C<%m>: 01-12; C<%b> or C<%h>: abrev. name; C<%B>: full name </td> </tr> <tr> <td class="h" > <a name="1088">1088</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1089">1089</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Week of year>: C<%W> (week starting Monday); C<%U> (week starting Sunday) </td> </tr> <tr> <td class="h" > <a name="1090">1090</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1091">1091</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Day of year>: C<%j> (1-366; boundary is midnight) </td> </tr> <tr> <td class="h" > <a name="1092">1092</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1093">1093</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Day of month>: C<%d> (01-31) </td> </tr> <tr> <td class="h" > <a name="1094">1094</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1095">1095</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Day of week>: C<%w> (0-6, Sunday=0), %a (abrev. name), %A (full name) </td> </tr> <tr> <td class="h" > <a name="1096">1096</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1097">1097</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Hour of day>: C<%k> (0-23); C<%H> (00-23); C<%l> (1-12); C<%I> (01-12) </td> </tr> <tr> <td class="h" > <a name="1098">1098</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1099">1099</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Am/pm>: C<%p> ("am" or "pm") </td> </tr> <tr> <td class="h" > <a name="1100">1100</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1101">1101</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Minute of hour>: C<%M> (00-60) </td> </tr> <tr> <td class="h" > <a name="1102">1102</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1103">1103</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Second of minute>: C<%S> (0-60) </td> </tr> <tr> <td class="h" > <a name="1104">1104</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1105">1105</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Total seconds since start of 2000 A.D.>: C<%s> </td> </tr> <tr> <td class="h" > <a name="1106">1106</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1107">1107</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Timestamps>: C<%T> (same as C<%H:%M:%S>); C<%R> (same as C<%H:%M>); C<%r> (same as C<%I:%M:%S %p>) </td> </tr> <tr> <td class="h" > <a name="1108">1108</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1109">1109</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<Datestamps>: C<%D> (same as C<%m/%d/%y>); C<%F> (same as C<%Y-%m-%d>) </td> </tr> <tr> <td class="h" > <a name="1110">1110</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1111">1111</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * B<ISO timestamps>: use C<%DT%T>. </td> </tr> <tr> <td class="h" > <a name="1112">1112</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1113">1113</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1114">1114</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1115">1115</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item B<day-of-week plotting> </td> </tr> <tr> <td class="h" > <a name="1116">1116</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1117">1117</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you just want to plot named days of the week, you can instead use </td> </tr> <tr> <td class="h" > <a name="1118">1118</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the C<dtics> options set plotting to day of week, where 0 is Sunday and 6 </td> </tr> <tr> <td class="h" > <a name="1119">1119</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> is Saturday; values are interpreted modulo 7. For example, C<< </td> </tr> <tr> <td class="h" > <a name="1120">1120</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xmtics=>1,xrange=>[-4,9] >> will plot two weeks from Wednesday to </td> </tr> <tr> <td class="h" > <a name="1121">1121</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Wednesday. As far as output format goes, this is exactly equivalent to </td> </tr> <tr> <td class="h" > <a name="1122">1122</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> using the C<%w> option with full formatting - but you can treat the </td> </tr> <tr> <td class="h" > <a name="1123">1123</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> numeric range in terms of weeks rather than seconds. </td> </tr> <tr> <td class="h" > <a name="1124">1124</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1125">1125</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item B<month-of-year plotting> </td> </tr> <tr> <td class="h" > <a name="1126">1126</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1127">1127</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<mtics> options set plotting to months of the year, where 1 is January and 12 is </td> </tr> <tr> <td class="h" > <a name="1128">1128</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> December, so C<< xdtics=>1, xrange=>[0,4] >> will include Christmas through Easter. </td> </tr> <tr> <td class="h" > <a name="1129">1129</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is exactly equivalent to using the C<%d> option with full formatting - but you </td> </tr> <tr> <td class="h" > <a name="1130">1130</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> can treat the numeric range in terms of months rather than seconds. </td> </tr> <tr> <td class="h" > <a name="1131">1131</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1132">1132</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1133">1133</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1134">1134</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for location/size </td> </tr> <tr> <td class="h" > <a name="1135">1135</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1136">1136</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The options described here are </td> </tr> <tr> <td class="h" > <a name="1137">1137</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1138">1138</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over </td> </tr> <tr> <td class="h" > <a name="1139">1139</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1140">1140</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item tmargin </td> </tr> <tr> <td class="h" > <a name="1141">1141</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1142">1142</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item bmargin </td> </tr> <tr> <td class="h" > <a name="1143">1143</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1144">1144</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item lmargin </td> </tr> <tr> <td class="h" > <a name="1145">1145</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1146">1146</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item rmargin </td> </tr> <tr> <td class="h" > <a name="1147">1147</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1148">1148</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item offsets </td> </tr> <tr> <td class="h" > <a name="1149">1149</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1150">1150</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item origin </td> </tr> <tr> <td class="h" > <a name="1151">1151</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1152">1152</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item size </td> </tr> <tr> <td class="h" > <a name="1153">1153</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1154">1154</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item justify </td> </tr> <tr> <td class="h" > <a name="1155">1155</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1156">1156</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item clip </td> </tr> <tr> <td class="h" > <a name="1157">1157</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1158">1158</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1159">1159</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1160">1160</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Adjusting the size, location, and margins of the plot on the plotting </td> </tr> <tr> <td class="h" > <a name="1161">1161</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> surface is something of a null operation for most single plots -- but </td> </tr> <tr> <td class="h" > <a name="1162">1162</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> you can tweak the placement and size of the plot with these options. </td> </tr> <tr> <td class="h" > <a name="1163">1163</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> That is particularly useful for multiplots, where you might like to </td> </tr> <tr> <td class="h" > <a name="1164">1164</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> make an inset plot or to lay out a set of plots in a custom way. </td> </tr> <tr> <td class="h" > <a name="1165">1165</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1166">1166</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The margin options accept scalar values -- either a positive number of </td> </tr> <tr> <td class="h" > <a name="1167">1167</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> character heights or widths of margin around the plot compared to the </td> </tr> <tr> <td class="h" > <a name="1168">1168</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> edge of the device window, or a string that starts with "at screen " </td> </tr> <tr> <td class="h" > <a name="1169">1169</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> and interpolates a number containing the fraction of the plot window </td> </tr> <tr> <td class="h" > <a name="1170">1170</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> offset. The "at screen" technique allows exact plot placement and is </td> </tr> <tr> <td class="h" > <a name="1171">1171</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> an alternative to the C<origin> and C<size> options below. </td> </tr> <tr> <td class="h" > <a name="1172">1172</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1173">1173</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<offsets> option allows you to put an empty boundary around the </td> </tr> <tr> <td class="h" > <a name="1174">1174</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> data, inside the plot borders, in an autosacaled graph. The offsets </td> </tr> <tr> <td class="h" > <a name="1175">1175</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> only affect the x1 and y1 axes, and only in 2D plot commands. </td> </tr> <tr> <td class="h" > <a name="1176">1176</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<offsets> accepts an array ref with four values for the offsets, which </td> </tr> <tr> <td class="h" > <a name="1177">1177</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> are given in scientific (plotted) axis units. </td> </tr> <tr> <td class="h" > <a name="1178">1178</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1179">1179</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<origin> option lets you specify the origin (lower left corner) </td> </tr> <tr> <td class="h" > <a name="1180">1180</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of an individual plot on the plotting window. The coordinates are </td> </tr> <tr> <td class="h" > <a name="1181">1181</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> screen coordinates -- i.e. fraction of the total plotting window. </td> </tr> <tr> <td class="h" > <a name="1182">1182</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1183">1183</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The size option lets you adjust the size and aspect ratio of the plot, </td> </tr> <tr> <td class="h" > <a name="1184">1184</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> as an absolute fraction of the plot window size. You feed in fractional </td> </tr> <tr> <td class="h" > <a name="1185">1185</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ratios, as in C<< size=>[$xfrac, $yfrac] >>. You can also feed in some keywords </td> </tr> <tr> <td class="h" > <a name="1186">1186</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> to adjust the aspect ratio of the plot. The size option overrides any </td> </tr> <tr> <td class="h" > <a name="1187">1187</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> autoscaling that is done by the auto-layout in multiplot mode, so use </td> </tr> <tr> <td class="h" > <a name="1188">1188</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> with caution -- particularly if you are multiplotting. You can use </td> </tr> <tr> <td class="h" > <a name="1189">1189</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "size" to adjust the aspect ratio of a plot, but this is deprecated </td> </tr> <tr> <td class="h" > <a name="1190">1190</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in favor of the pseudo-option C<justify>. </td> </tr> <tr> <td class="h" > <a name="1191">1191</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1192">1192</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<justify> sets the scientific aspect ratio of a 2-D plot. Unity </td> </tr> <tr> <td class="h" > <a name="1193">1193</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> yields a plot with a square scientific aspect ratio. Larger </td> </tr> <tr> <td class="h" > <a name="1194">1194</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> numbers yield taller plots. </td> </tr> <tr> <td class="h" > <a name="1195">1195</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1196">1196</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<clip> controls the border between the plotted data and the border of the plot. </td> </tr> <tr> <td class="h" > <a name="1197">1197</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> There are three clip types supported: points, one, and two. You can set them </td> </tr> <tr> <td class="h" > <a name="1198">1198</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> independently by passing in booleans with their names: C<< clip=>[points=>1,two=>0] >>. </td> </tr> <tr> <td class="h" > <a name="1199">1199</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1200">1200</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for Color: colorbox, palette, clut, pseudocolor, pc, perceptual, pcp </td> </tr> <tr> <td class="h" > <a name="1201">1201</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1202">1202</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Color plots are supported via RGB and pseudocolor. Plots that use pseudcolor or </td> </tr> <tr> <td class="h" > <a name="1203">1203</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> grayscale can have a "color box" that shows the photometric meaning of the color. </td> </tr> <tr> <td class="h" > <a name="1204">1204</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1205">1205</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The colorbox generally appears when necessary but can be controlled manually </td> </tr> <tr> <td class="h" > <a name="1206">1206</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> with the C<colorbox> option. C<colorbox> accepts a scalar boolean value indicating </td> </tr> <tr> <td class="h" > <a name="1207">1207</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> whether or no to draw a color box, or an array ref containing additional options. </td> </tr> <tr> <td class="h" > <a name="1208">1208</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The options are all, well, optional but must appear in the order given: </td> </tr> <tr> <td class="h" > <a name="1209">1209</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1210">1210</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="1211">1211</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1212">1212</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( vertical | horizontal ) - indicates direction of the gradient in the box </td> </tr> <tr> <td class="h" > <a name="1213">1213</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1214">1214</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( default | user ) - indicates user origin and size </td> </tr> <tr> <td class="h" > <a name="1215">1215</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1216">1216</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you specify C<default> the colorbox will be placed on the right-hand side of the plot; if you specify C<user>, you give the location and size in subsequent arguments: </td> </tr> <tr> <td class="h" > <a name="1217">1217</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1218">1218</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> colorbox => [ 'user', 'origin'=>"$x,$y", 'size' => "$x,$y" ] </td> </tr> <tr> <td class="h" > <a name="1219">1219</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1220">1220</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( front | back ) - draws the colorbox before or after the plot </td> </tr> <tr> <td class="h" > <a name="1221">1221</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1222">1222</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( noborder | bdefault | border <line style> ) - specify border </td> </tr> <tr> <td class="h" > <a name="1223">1223</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1224">1224</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The line style is a numeric type as described in the gnuplot manual. </td> </tr> <tr> <td class="h" > <a name="1225">1225</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1226">1226</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1227">1227</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1228">1228</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<palette> option offers many arguments that are not fully </td> </tr> <tr> <td class="h" > <a name="1229">1229</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> documented in this version but are explained in the gnuplot manual. </td> </tr> <tr> <td class="h" > <a name="1230">1230</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> It offers complete control over the pseudocolor mapping function. </td> </tr> <tr> <td class="h" > <a name="1231">1231</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1232">1232</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For simple color maps, C<clut> gives access to a set of named color </td> </tr> <tr> <td class="h" > <a name="1233">1233</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> maps. (from "Color Look Up Table"). A few existing color maps are: </td> </tr> <tr> <td class="h" > <a name="1234">1234</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "default", "gray", "sepia", "ocean", "rainbow", "heat1", "heat2", and </td> </tr> <tr> <td class="h" > <a name="1235">1235</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "wheel". To see a complete list, specify an invalid table, </td> </tr> <tr> <td class="h" > <a name="1236">1236</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> e.g. C<< clut=>'xxx' >>. C<clut> is maintained but is superseded </td> </tr> <tr> <td class="h" > <a name="1237">1237</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> by C<pc> and C<pcp> (below), which give access to a better variety </td> </tr> <tr> <td class="h" > <a name="1238">1238</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of color tables, and have better support for scientific images. </td> </tr> <tr> <td class="h" > <a name="1239">1239</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1240">1240</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<pseudocolor> (synonym C<pc>) gives access to the color tables built </td> </tr> <tr> <td class="h" > <a name="1241">1241</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in to the C<PDL::Transform::Color> package, if that package is </td> </tr> <tr> <td class="h" > <a name="1242">1242</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> available. It takes either a color table name or an array ref which </td> </tr> <tr> <td class="h" > <a name="1243">1243</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> is a collection of arguments that get sent to the </td> </tr> <tr> <td class="h" > <a name="1244">1244</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<PDL::Transform::Color::t_pc> transform definition method. Sending </td> </tr> <tr> <td class="h" > <a name="1245">1245</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the empty string or undef will generate a list of allowable color </td> </tr> <tr> <td class="h" > <a name="1246">1246</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> table names. Many of the color tables are "photometric" and </td> </tr> <tr> <td class="h" > <a name="1247">1247</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> will render photometric data correctly without gamma correction. </td> </tr> <tr> <td class="h" > <a name="1248">1248</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1249">1249</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<perceptual> (synonym C<pcp>) gives the same access to </td> </tr> <tr> <td class="h" > <a name="1250">1250</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<PDL::Transform::Color> as does C<pseudocolor>, but the </td> </tr> <tr> <td class="h" > <a name="1251">1251</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "equal-perceptual-difference" scaling is used -- i.e. input </td> </tr> <tr> <td class="h" > <a name="1252">1252</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> values are gamma-corrected by the module so that uniform </td> </tr> <tr> <td class="h" > <a name="1253">1253</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> shifts in numeric value yield approximately uniform perceptual </td> </tr> <tr> <td class="h" > <a name="1254">1254</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> shifts. </td> </tr> <tr> <td class="h" > <a name="1255">1255</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1256">1256</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you use C<pseudocolor> or C<perceptual>, and if </td> </tr> <tr> <td class="h" > <a name="1257">1257</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<PDL::Transform::Color> can be loaded, then the external module </td> </tr> <tr> <td class="h" > <a name="1258">1258</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> is used to define a custom Gnuplot palette by linear interpolation </td> </tr> <tr> <td class="h" > <a name="1259">1259</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> across 256 values. That palette is then used to translate your </td> </tr> <tr> <td class="h" > <a name="1260">1260</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> monochrome data to a color image. The Gnuplot output is assumed </td> </tr> <tr> <td class="h" > <a name="1261">1261</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> to be sRGB. This is probably OK for most output devices. </td> </tr> <tr> <td class="h" > <a name="1262">1262</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1263">1263</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for 3D: trid, view, pm3d, hidden3d, dgrid3d, surface, xyplane, mapping </td> </tr> <tr> <td class="h" > <a name="1264">1264</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1265">1265</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If C<trid> or its synonym C<3d> is true, Gnuplot renders a 3-D plot. </td> </tr> <tr> <td class="h" > <a name="1266">1266</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This changes the default tuple size from 2 to 3. This </td> </tr> <tr> <td class="h" > <a name="1267">1267</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> option is used to switch between the Gnuplot "plot" and "splot" </td> </tr> <tr> <td class="h" > <a name="1268">1268</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> command, but it is tracked with persistent state just as any other </td> </tr> <tr> <td class="h" > <a name="1269">1269</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> option. </td> </tr> <tr> <td class="h" > <a name="1270">1270</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1271">1271</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<view> option controls the viewpoint of the 3-D plot. It takes a </td> </tr> <tr> <td class="h" > <a name="1272">1272</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> list of numbers: C<< view=>[$rot_x, $rot_z, $scale, $scale_z] >>. After </td> </tr> <tr> <td class="h" > <a name="1273">1273</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> each number, you can omit the subsequent ones. Alternatively, </td> </tr> <tr> <td class="h" > <a name="1274">1274</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<< view=>['map'] >> represents the drawing as a map (e.g. for contour </td> </tr> <tr> <td class="h" > <a name="1275">1275</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plots) and C<< view=>[equal=>'xy'] >> forces equal length scales on the X </td> </tr> <tr> <td class="h" > <a name="1276">1276</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> and Y axes regardless of perspective, while C<< view=>[equal=>'xyz'] >> </td> </tr> <tr> <td class="h" > <a name="1277">1277</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sets equal length scales on all three axes. </td> </tr> <tr> <td class="h" > <a name="1278">1278</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1279">1279</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<pm3d> option accepts several parameters to control the pm3d plot style, </td> </tr> <tr> <td class="h" > <a name="1280">1280</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> which is a palette-mapped 3d surface. They are not documented here in this </td> </tr> <tr> <td class="h" > <a name="1281">1281</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> version of the module but are explained in the gnuplot manual. </td> </tr> <tr> <td class="h" > <a name="1282">1282</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1283">1283</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<hidden3d> accepts a list of parameters to control how hidden surfaces are </td> </tr> <tr> <td class="h" > <a name="1284">1284</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plotted (or not) in 3D. It accepts a boolean argument indicating whether to hide </td> </tr> <tr> <td class="h" > <a name="1285">1285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "hidden" surfaces and lines; or an array ref containing parameters that control how </td> </tr> <tr> <td class="h" > <a name="1286">1286</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> hidden surfaces and lines are handled. For details see the gnuplot manual. </td> </tr> <tr> <td class="h" > <a name="1287">1287</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1288">1288</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<xyplane> sets the location of that plane (which is drawn) relative </td> </tr> <tr> <td class="h" > <a name="1289">1289</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> to the rest of the plot in 3-space. It takes a single string: "at" or </td> </tr> <tr> <td class="h" > <a name="1290">1290</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "relative", and a number. C<< xyplane=>[at=>$z] >> places the XY plane at the </td> </tr> <tr> <td class="h" > <a name="1291">1291</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> stated Z value (in scientific units) on the plot. C<< xyplane=>[relative=>$frac] >> </td> </tr> <tr> <td class="h" > <a name="1292">1292</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> places the XY plane $frac times the length of the scaled Z axis *below* the Z </td> </tr> <tr> <td class="h" > <a name="1293">1293</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> axis (i.e. 0 places it at the bottom of the plotted Z axis; and -1 places it </td> </tr> <tr> <td class="h" > <a name="1294">1294</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> at the top of the plotted Z axis). </td> </tr> <tr> <td class="h" > <a name="1295">1295</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1296">1296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<mapping> takes a single string: "cartesian", "spherical", or </td> </tr> <tr> <td class="h" > <a name="1297">1297</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "cylindrical". It determines the interpretation of data coordinates </td> </tr> <tr> <td class="h" > <a name="1298">1298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in 3-space. (Compare to the C<polar> option in 2-D). </td> </tr> <tr> <td class="h" > <a name="1299">1299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1300">1300</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for Contour plots - contour, cntrparam </td> </tr> <tr> <td class="h" > <a name="1301">1301</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1302">1302</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Contour plots are only implemented in 3D. To make a normal 2D contour </td> </tr> <tr> <td class="h" > <a name="1303">1303</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plot, use 3-D mode, but set the view to "map" - which projects the 3-D </td> </tr> <tr> <td class="h" > <a name="1304">1304</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plot onto its 2-D XY plane. (This is convoluted, for sure -- future </td> </tr> <tr> <td class="h" > <a name="1305">1305</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> versions of this module may have a cleaner way to do it). </td> </tr> <tr> <td class="h" > <a name="1306">1306</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1307">1307</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<contour> enables contour drawing on surfaces in 3D. It takes a </td> </tr> <tr> <td class="h" > <a name="1308">1308</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> single string, which should be "base", "surface", or "both". </td> </tr> <tr> <td class="h" > <a name="1309">1309</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1310">1310</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<cntrparam> manages how contours are generated and smoothed. It </td> </tr> <tr> <td class="h" > <a name="1311">1311</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> accepts an array ref with a collection of Gnuplot parameters that are </td> </tr> <tr> <td class="h" > <a name="1312">1312</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> issued one per line; refer to the Gnuplot manual for how to operate </td> </tr> <tr> <td class="h" > <a name="1313">1313</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> it. </td> </tr> <tr> <td class="h" > <a name="1314">1314</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1315">1315</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for Polar plots - polar, angles, mapping </td> </tr> <tr> <td class="h" > <a name="1316">1316</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1317">1317</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can make 2-D polar plots by setting C<polar> to a true value. The </td> </tr> <tr> <td class="h" > <a name="1318">1318</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ordinate is then plotted as angle, and the abscissa is radius on the plot. </td> </tr> <tr> <td class="h" > <a name="1319">1319</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The ordinate can be in either radians or degrees, depending on the </td> </tr> <tr> <td class="h" > <a name="1320">1320</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<angles> parameter </td> </tr> <tr> <td class="h" > <a name="1321">1321</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1322">1322</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<angles> takes either "degrees" or "radians" (default is radians). </td> </tr> <tr> <td class="h" > <a name="1323">1323</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1324">1324</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<mapping> is used to set 3-D polar plots, either cylindrical or spherical </td> </tr> <tr> <td class="h" > <a name="1325">1325</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (see the section on 3-D plotting, above). </td> </tr> <tr> <td class="h" > <a name="1326">1326</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1327">1327</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for Markup - label, arrow, object </td> </tr> <tr> <td class="h" > <a name="1328">1328</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1329">1329</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You specify plot markup in advance of the plot command, with plot </td> </tr> <tr> <td class="h" > <a name="1330">1330</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options (or add it later with the C<replot> method). The options give </td> </tr> <tr> <td class="h" > <a name="1331">1331</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> you access to a collection of (separately) numbered descriptions that </td> </tr> <tr> <td class="h" > <a name="1332">1332</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> are accumulated into the plot object. To add a markup object to the </td> </tr> <tr> <td class="h" > <a name="1333">1333</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> next plot, supply the appropriate options as an array ref or as a single </td> </tr> <tr> <td class="h" > <a name="1334">1334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> string. To specify all markup objects at once, supply the appropriate </td> </tr> <tr> <td class="h" > <a name="1335">1335</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options for all of them as a nested list-of-lists. </td> </tr> <tr> <td class="h" > <a name="1336">1336</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1337">1337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To modify an object, you can specify it by number, either by appending </td> </tr> <tr> <td class="h" > <a name="1338">1338</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the number to the plot option name (e.g. C<arrow3>) or by supplying it </td> </tr> <tr> <td class="h" > <a name="1339">1339</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> as the first element of the option list for that object. </td> </tr> <tr> <td class="h" > <a name="1340">1340</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1341">1341</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To remove all objects of a given type, supply undef (e.g. C<< arrow=>undef >>). </td> </tr> <tr> <td class="h" > <a name="1342">1342</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1343">1343</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For example, to place two labels, use the plot option: </td> </tr> <tr> <td class="h" > <a name="1344">1344</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1345">1345</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> label => [["Upper left",at=>"10,10"],["lower right",at=>"20,5"]]; </td> </tr> <tr> <td class="h" > <a name="1346">1346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1347">1347</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To add a label to an existing plot object, if you don't care about what </td> </tr> <tr> <td class="h" > <a name="1348">1348</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> index number it gets, do this: </td> </tr> <tr> <td class="h" > <a name="1349">1349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1350">1350</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->options( label=>["my new label",at=>[10,20]] ); </td> </tr> <tr> <td class="h" > <a name="1351">1351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1352">1352</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you do care what index number it gets (or want to replace an existing label), </td> </tr> <tr> <td class="h" > <a name="1353">1353</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> do this: </td> </tr> <tr> <td class="h" > <a name="1354">1354</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1355">1355</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->options( label=>[$n, "my replacement label", at=>"10,20"] ); </td> </tr> <tr> <td class="h" > <a name="1356">1356</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1357">1357</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> where C<$w> is a Gnuplot object and C<$n> contains the label number </td> </tr> <tr> <td class="h" > <a name="1358">1358</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> you care about. </td> </tr> <tr> <td class="h" > <a name="1359">1359</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1360">1360</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1361">1361</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head3 label - add a text label to the plot. </td> </tr> <tr> <td class="h" > <a name="1362">1362</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1363">1363</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<label> option allows adding small bits of text at arbitrary </td> </tr> <tr> <td class="h" > <a name="1364">1364</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> locations on the plot. </td> </tr> <tr> <td class="h" > <a name="1365">1365</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1366">1366</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Each label specifier array ref accepts the following suboptions, in </td> </tr> <tr> <td class="h" > <a name="1367">1367</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> order. All of them are optional -- if no options other than the index </td> </tr> <tr> <td class="h" > <a name="1368">1368</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> tag are given, then any existing label with that index is deleted. </td> </tr> <tr> <td class="h" > <a name="1369">1369</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1370">1370</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For examples, please refer to the Gnuplot 4.4 manual, p. 117. </td> </tr> <tr> <td class="h" > <a name="1371">1371</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1372">1372</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="1373">1373</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1374">1374</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item <tag> - optional index number (integer) </td> </tr> <tr> <td class="h" > <a name="1375">1375</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1376">1376</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item <label text> - text to place on the plot. </td> </tr> <tr> <td class="h" > <a name="1377">1377</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1378">1378</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You may supply double-quotes inside the string, but it is not </td> </tr> <tr> <td class="h" > <a name="1379">1379</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> necessary in most cases (only if the string contains just an integer </td> </tr> <tr> <td class="h" > <a name="1380">1380</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> and you are not specifying a <tag>. </td> </tr> <tr> <td class="h" > <a name="1381">1381</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1382">1382</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item at <position> - where to place the text (sci. coordinates) </td> </tr> <tr> <td class="h" > <a name="1383">1383</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1384">1384</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The <position> should be a string containing a gnuplot position specifier. </td> </tr> <tr> <td class="h" > <a name="1385">1385</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> At its simplest, the position is just two numbers separated by </td> </tr> <tr> <td class="h" > <a name="1386">1386</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a comma, as in C<< label2=>["foo",at=>"5,3"] >>, to specify (X,Y) location </td> </tr> <tr> <td class="h" > <a name="1387">1387</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> on the plot in scientific coordinates. Each number can be preceded </td> </tr> <tr> <td class="h" > <a name="1388">1388</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> by a coordinate system specifier; see the Gnuplot 4.4 manual (page 20) </td> </tr> <tr> <td class="h" > <a name="1389">1389</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for details. </td> </tr> <tr> <td class="h" > <a name="1390">1390</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1391">1391</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( left | center | right ) - text placement rel. to position </td> </tr> <tr> <td class="h" > <a name="1392">1392</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1393">1393</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item rotate [ by <degrees> ] - text rotation </td> </tr> <tr> <td class="h" > <a name="1394">1394</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1395">1395</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If "rotate" appears in the list alone, then the label is rotated 90 degrees </td> </tr> <tr> <td class="h" > <a name="1396">1396</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> CCW (bottom-to-top instead of left-to-right). The following "by" clause is </td> </tr> <tr> <td class="h" > <a name="1397">1397</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> optional. </td> </tr> <tr> <td class="h" > <a name="1398">1398</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1399">1399</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item font "<name>,<size>" - font specifier </td> </tr> <tr> <td class="h" > <a name="1400">1400</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1401">1401</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The <name>,<size> must be double quoted in the string (this may be fixed </td> </tr> <tr> <td class="h" > <a name="1402">1402</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in a future version), as in </td> </tr> <tr> <td class="h" > <a name="1403">1403</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1404">1404</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> label3=>["foo",at=>"3,4",font=>'"Helvetica,18"'] </td> </tr> <tr> <td class="h" > <a name="1405">1405</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1406">1406</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item noenhanced - turn off gnuplot enhanced text processing (if enabled) </td> </tr> <tr> <td class="h" > <a name="1407">1407</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1408">1408</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( front | back ) - rendering order (last or first) </td> </tr> <tr> <td class="h" > <a name="1409">1409</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1410">1410</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item textcolor <colorspec> </td> </tr> <tr> <td class="h" > <a name="1411">1411</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1412">1412</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item (point <pointstyle> | nopoint ) - control whether the exact position is marked </td> </tr> <tr> <td class="h" > <a name="1413">1413</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1414">1414</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item offset <offset> - offfset from position (in points). </td> </tr> <tr> <td class="h" > <a name="1415">1415</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1416">1416</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1417">1417</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1418">1418</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head3 arrow - place an arrow or callout line on the plot </td> </tr> <tr> <td class="h" > <a name="1419">1419</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1420">1420</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Works similarly to the C<label> option, but with an arrow instead of text. </td> </tr> <tr> <td class="h" > <a name="1421">1421</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1422">1422</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The arguments, all of which are optional but which must be given in the order listed, </td> </tr> <tr> <td class="h" > <a name="1423">1423</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> are: </td> </tr> <tr> <td class="h" > <a name="1424">1424</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1425">1425</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="1426">1426</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1427">1427</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item from <position> - start of arrow line </td> </tr> <tr> <td class="h" > <a name="1428">1428</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1429">1429</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The <position> should be a string containing a gnuplot position specifier. </td> </tr> <tr> <td class="h" > <a name="1430">1430</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> At its simplest, the position is just two numbers separated by </td> </tr> <tr> <td class="h" > <a name="1431">1431</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a comma, as in C<< arrow2=>["foo",at=>"5,3"] >>, to specify (X,Y) location </td> </tr> <tr> <td class="h" > <a name="1432">1432</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> on the plot in scientific coordinates. Each number can be preceded </td> </tr> <tr> <td class="h" > <a name="1433">1433</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> by a coordinate system specifier; see the Gnuplot 4.4 manual (page 20) </td> </tr> <tr> <td class="h" > <a name="1434">1434</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for details. </td> </tr> <tr> <td class="h" > <a name="1435">1435</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1436">1436</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( to | rto ) <position> - end of arrow line </td> </tr> <tr> <td class="h" > <a name="1437">1437</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1438">1438</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> These work like C<from>. For absolute placement, use "to". For placement </td> </tr> <tr> <td class="h" > <a name="1439">1439</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> relative to the C<from> position, use "rto". </td> </tr> <tr> <td class="h" > <a name="1440">1440</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1441">1441</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item (arrowstyle | as) <arrow_style> </td> </tr> <tr> <td class="h" > <a name="1442">1442</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1443">1443</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This specifies that the arrow be drawn in a particular predeclared numerical </td> </tr> <tr> <td class="h" > <a name="1444">1444</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> style. If you give this parameter, you should omit all the following ones. </td> </tr> <tr> <td class="h" > <a name="1445">1445</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1446">1446</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( nohead | head | backhead | heads ) - specify arrowhead placement </td> </tr> <tr> <td class="h" > <a name="1447">1447</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1448">1448</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item size <length>,<angle>,<backangle> - specify arrowhead geometry </td> </tr> <tr> <td class="h" > <a name="1449">1449</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1450">1450</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( filled | empty | nofilled ) - specify arrowhead fill </td> </tr> <tr> <td class="h" > <a name="1451">1451</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1452">1452</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( front | back ) - specify drawing order ( last | first ) </td> </tr> <tr> <td class="h" > <a name="1453">1453</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1454">1454</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item linestyle <line_style> - specify a numeric linestyle </td> </tr> <tr> <td class="h" > <a name="1455">1455</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1456">1456</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item linetype <line_type> - specify numeric line type </td> </tr> <tr> <td class="h" > <a name="1457">1457</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1458">1458</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item linewidth <line_width> - multiplier on the width of the line </td> </tr> <tr> <td class="h" > <a name="1459">1459</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1460">1460</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1461">1461</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1462">1462</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head3 object - place a shape on the graph </td> </tr> <tr> <td class="h" > <a name="1463">1463</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1464">1464</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<object>s are rectangles, ellipses, circles, or polygons that can be placed </td> </tr> <tr> <td class="h" > <a name="1465">1465</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> arbitrarily on the plotting plane. </td> </tr> <tr> <td class="h" > <a name="1466">1466</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1467">1467</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The arguments, all of which are optional but which must be given in the order listed, are: </td> </tr> <tr> <td class="h" > <a name="1468">1468</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1469">1469</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="1470">1470</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1471">1471</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item <object-type> <object-properties> - type name of the shape and its type-specific properties </td> </tr> <tr> <td class="h" > <a name="1472">1472</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1473">1473</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The <object-type> is one of four words: "rectangle", "ellipse", "circle", or "polygon". </td> </tr> <tr> <td class="h" > <a name="1474">1474</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1475">1475</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can specify a rectangle with C<< from=>$pos1, [r]to=>$pos2 >>, with C<< center=>$pos1, size=>"$w,$h" >>, </td> </tr> <tr> <td class="h" > <a name="1476">1476</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or with C<< at=>$pos1,size=>"$w,$h" >>. </td> </tr> <tr> <td class="h" > <a name="1477">1477</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1478">1478</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can specify an ellipse with C<< at=>$pos, size=>"$w,$h" >> or C<< center=>$pos, size=>"$w,$h" >>, followed </td> </tr> <tr> <td class="h" > <a name="1479">1479</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> by C<< angle=>$a >>. </td> </tr> <tr> <td class="h" > <a name="1480">1480</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1481">1481</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can specify a circle with C<< at=>$pos, >> or C<< center=>$pos, >>, followed </td> </tr> <tr> <td class="h" > <a name="1482">1482</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> by C<< size=>$radius >> and (optionally) C<< arc=>"[$begin:$end]" >>. </td> </tr> <tr> <td class="h" > <a name="1483">1483</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1484">1484</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can specify a polygon with C<< from=>$pos1,to=>$pos2,to=>$pos3,...to=>$posn >> or with </td> </tr> <tr> <td class="h" > <a name="1485">1485</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<< from=>$pos1,rto=>$diff1,rto=>$diff2,...rto=>$diffn >>. </td> </tr> <tr> <td class="h" > <a name="1486">1486</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1487">1487</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item ( front | back | behind ) - draw the object last | first | really-first. </td> </tr> <tr> <td class="h" > <a name="1488">1488</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1489">1489</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item fc <colorspec> - specify fill color </td> </tr> <tr> <td class="h" > <a name="1490">1490</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1491">1491</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item fs <fillstyle> - specify fill style </td> </tr> <tr> <td class="h" > <a name="1492">1492</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1493">1493</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item lw <width> - multiplier on line width </td> </tr> <tr> <td class="h" > <a name="1494">1494</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1495">1495</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1496">1496</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1497">1497</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for appearance tweaks - bars, boxwidth, isosamples, pointsize, style </td> </tr> <tr> <td class="h" > <a name="1498">1498</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1499">1499</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> B<C<bars>> sets the width and behavior of the tick marks at the ends of error bars. </td> </tr> <tr> <td class="h" > <a name="1500">1500</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> It takes a list containing at most two elements, both of which are optional: </td> </tr> <tr> <td class="h" > <a name="1501">1501</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1502">1502</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="1503">1503</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1504">1504</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * A width specifier, which should be a numeric size multiplier times the usual </td> </tr> <tr> <td class="h" > <a name="1505">1505</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> width (which is about one character width in the default font size), or the word </td> </tr> <tr> <td class="h" > <a name="1506">1506</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<fullwidth> to make the ticks the same width as their associated boxes in boxplots </td> </tr> <tr> <td class="h" > <a name="1507">1507</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> and histograms. </td> </tr> <tr> <td class="h" > <a name="1508">1508</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1509">1509</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * the word "front" or "back" to indicate drawing order in plots that might contain </td> </tr> <tr> <td class="h" > <a name="1510">1510</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> filled rectangles (e.g. boxes, candlesticks, or histograms). </td> </tr> <tr> <td class="h" > <a name="1511">1511</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1512">1512</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1513">1513</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1514">1514</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you pass in the undefined value you get no ticks on errorbars; if you pass in the </td> </tr> <tr> <td class="h" > <a name="1515">1515</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> empty array ref you get default ticks. </td> </tr> <tr> <td class="h" > <a name="1516">1516</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1517">1517</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> B<C<boxwidth>> sets the width of drawn boxes in boxplots, candlesticks, and histograms. It </td> </tr> <tr> <td class="h" > <a name="1518">1518</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> takes a list containing at most two elements: </td> </tr> <tr> <td class="h" > <a name="1519">1519</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1520">1520</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="1521">1521</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1522">1522</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * a numeric width </td> </tr> <tr> <td class="h" > <a name="1523">1523</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1524">1524</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item * one of the words C<absolute> or C<relative>. </td> </tr> <tr> <td class="h" > <a name="1525">1525</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1526">1526</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1527">1527</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1528">1528</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Unless you set C<relative>, the numeric width sets the width of boxes </td> </tr> <tr> <td class="h" > <a name="1529">1529</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in X-axis scientific units (on log scales, this is measured at x=1 and </td> </tr> <tr> <td class="h" > <a name="1530">1530</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the same width is used throughout the plot plane). If C<relative> is </td> </tr> <tr> <td class="h" > <a name="1531">1531</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> included, the numeric width is taken to be a multiplier on the default </td> </tr> <tr> <td class="h" > <a name="1532">1532</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> width. </td> </tr> <tr> <td class="h" > <a name="1533">1533</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1534">1534</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> B<C<isosamples>> sets isoline density for plotting functions as </td> </tr> <tr> <td class="h" > <a name="1535">1535</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> surfaces. You supply one or two numbers. The first is the number of </td> </tr> <tr> <td class="h" > <a name="1536">1536</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> iso-u lines and the second is the number of iso-v lines. If you only </td> </tr> <tr> <td class="h" > <a name="1537">1537</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specify one, then the two are taken to be the same. From the gnuplot </td> </tr> <tr> <td class="h" > <a name="1538">1538</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> manual: "An isoline is a curve parameterized by one of the surface </td> </tr> <tr> <td class="h" > <a name="1539">1539</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> parameters while the other surface parameter is fixed. Isolines </td> </tr> <tr> <td class="h" > <a name="1540">1540</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> provide a simple means to display a surface. By fixing the u </td> </tr> <tr> <td class="h" > <a name="1541">1541</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> parameter of surface s(u,v), the iso-u lines of the form c(v) = </td> </tr> <tr> <td class="h" > <a name="1542">1542</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> s(u0,v) are produced, and by fixing the v parameter, the iso-v lines </td> </tr> <tr> <td class="h" > <a name="1543">1543</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of the form c(u)=s(u,v0) are produced". </td> </tr> <tr> <td class="h" > <a name="1544">1544</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1545">1545</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> B<C<pointsize>> accepts a single number and scales the size of points used in plots. </td> </tr> <tr> <td class="h" > <a name="1546">1546</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1547">1547</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> B<C<style>> provides a great deal of customization for individual plot styles. </td> </tr> <tr> <td class="h" > <a name="1548">1548</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> It is not (yet) fully parsed by PDL::Graphics::Gnuplot; please refer to the Gnuplot </td> </tr> <tr> <td class="h" > <a name="1549">1549</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> manual for details (it is pp. 145ff in the Gnuplot 4.6.1 manual). C<style> accepts </td> </tr> <tr> <td class="h" > <a name="1550">1550</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a hash ref whose keys are plot styles (such as you would feed to the C<with> curve option), </td> </tr> <tr> <td class="h" > <a name="1551">1551</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> and whose values are array refs containing keywords and other parameters to modify how each </td> </tr> <tr> <td class="h" > <a name="1552">1552</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plot style should be displayed. </td> </tr> <tr> <td class="h" > <a name="1553">1553</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1554">1554</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for locale/internationalization - locale, decimalsign </td> </tr> <tr> <td class="h" > <a name="1555">1555</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1556">1556</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<locale> is used to control date stamp creation. See the gnuplot manual. </td> </tr> <tr> <td class="h" > <a name="1557">1557</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1558">1558</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<decimalsign> accepts a character to use in lieu of a "." for the decimalsign. </td> </tr> <tr> <td class="h" > <a name="1559">1559</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (e.g. in European countries use C<< decimalsign=>',' >>). </td> </tr> <tr> <td class="h" > <a name="1560">1560</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1561">1561</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<globalwith> is used as a default plot style if no valid 'with' curve option is present for </td> </tr> <tr> <td class="h" > <a name="1562">1562</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a given curve. </td> </tr> <tr> <td class="h" > <a name="1563">1563</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1564">1564</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If set to a nonzero value, C<timestamp> causes a time stamp to be </td> </tr> <tr> <td class="h" > <a name="1565">1565</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> placed on the side of the plot, e.g. for keeping track of drafts. </td> </tr> <tr> <td class="h" > <a name="1566">1566</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1567">1567</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<zero> sets the approximation threshold for zero values within gnuplot. Its default is 1e-8. </td> </tr> <tr> <td class="h" > <a name="1568">1568</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1569">1569</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<fontpath> sets a font search path for gnuplot. It accepts a collection of file names as an array ref. </td> </tr> <tr> <td class="h" > <a name="1570">1570</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1571">1571</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 POs for advanced Gnuplot tweaks: topcmds, extracmds, bottomcmds, binary, dump, tee </td> </tr> <tr> <td class="h" > <a name="1572">1572</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1573">1573</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Plotting is carried out by sending a collection of commands to an underlying </td> </tr> <tr> <td class="h" > <a name="1574">1574</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gnuplot process. In general, the plot options cause "set" commands to be </td> </tr> <tr> <td class="h" > <a name="1575">1575</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sent, configuring gnuplot to make the plot; these are followed by a "plot" or </td> </tr> <tr> <td class="h" > <a name="1576">1576</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "splot" command and by any cleanup that is necessary to keep gnuplot in a known state. </td> </tr> <tr> <td class="h" > <a name="1577">1577</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1578">1578</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Provisions exist for sending commands directly to Gnuplot as part of a plot. You </td> </tr> <tr> <td class="h" > <a name="1579">1579</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> can send commands at the top of the configuration but just under the initial </td> </tr> <tr> <td class="h" > <a name="1580">1580</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "set terminal" and "set output" commands (with the C<topcmds> option), at the bottom </td> </tr> <tr> <td class="h" > <a name="1581">1581</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of the configuration and just before the "plot" command (with the C<extracmds> option), </td> </tr> <tr> <td class="h" > <a name="1582">1582</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or after the plot command (with the C<bottomcmds> option). Each of these plot </td> </tr> <tr> <td class="h" > <a name="1583">1583</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options takes an array ref, each element of which should be one command line for </td> </tr> <tr> <td class="h" > <a name="1584">1584</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gnuplot. </td> </tr> <tr> <td class="h" > <a name="1585">1585</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1586">1586</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Most plotting is done with binary data transfer to Gnuplot; however, due to </td> </tr> <tr> <td class="h" > <a name="1587">1587</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> some bugs in Gnuplot binary handling, certain types of plot data are sent in ASCII. </td> </tr> <tr> <td class="h" > <a name="1588">1588</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> In particular, time series and label data require transmission in ASCII (as of Gnuplot 4.4). </td> </tr> <tr> <td class="h" > <a name="1589">1589</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can force ASCII transmission of all but image data by explicitly setting the </td> </tr> <tr> <td class="h" > <a name="1590">1590</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<< binary=>0 >> option. </td> </tr> <tr> <td class="h" > <a name="1591">1591</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1592">1592</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<dump> is used for debugging. If true, it writes out the gnuplot commands to </td> </tr> <tr> <td class="h" > <a name="1593">1593</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> STDOUT I<instead> of writing to a gnuplot process. Useful to see what commands </td> </tr> <tr> <td class="h" > <a name="1594">1594</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> would be sent to gnuplot. This is a dry run. Note that if the 'binary' option is </td> </tr> <tr> <td class="h" > <a name="1595">1595</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> given (see below), then this dump will contain binary data. If this binary data </td> </tr> <tr> <td class="h" > <a name="1596">1596</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> should be suppressed from the dump, set C<< dump => 'nobinary' >>. </td> </tr> <tr> <td class="h" > <a name="1597">1597</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1598">1598</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<tee> is used for debugging. If true, writes out the gnuplot commands to STDERR </td> </tr> <tr> <td class="h" > <a name="1599">1599</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> I<in addition> to writing to a gnuplot process. This is I<not> a dry run: data </td> </tr> <tr> <td class="h" > <a name="1600">1600</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> is sent to gnuplot I<and> to the log. Useful for debugging I/O issues. Note that </td> </tr> <tr> <td class="h" > <a name="1601">1601</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if the 'binary' option is given (see below), then this log will contain binary </td> </tr> <tr> <td class="h" > <a name="1602">1602</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> data. If this binary data should be suppressed from the log, set C<< tee => </td> </tr> <tr> <td class="h" > <a name="1603">1603</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'nobinary' >>. </td> </tr> <tr> <td class="h" > <a name="1604">1604</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1605">1605</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 CURVE OPTIONS </td> </tr> <tr> <td class="h" > <a name="1606">1606</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1607">1607</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The curve options describe details of specific curves within a plot. </td> </tr> <tr> <td class="h" > <a name="1608">1608</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> They are in a hash, whose keys are as follows: </td> </tr> <tr> <td class="h" > <a name="1609">1609</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1610">1610</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 2 </td> </tr> <tr> <td class="h" > <a name="1611">1611</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1612">1612</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item legend </td> </tr> <tr> <td class="h" > <a name="1613">1613</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1614">1614</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Specifies the legend label for this curve </td> </tr> <tr> <td class="h" > <a name="1615">1615</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1616">1616</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item axes </td> </tr> <tr> <td class="h" > <a name="1617">1617</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1618">1618</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Lets you specify which X and/or Y axes to plot on. Gnuplot supports </td> </tr> <tr> <td class="h" > <a name="1619">1619</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a main and alternate X and Y axis. You specify them as a packed string </td> </tr> <tr> <td class="h" > <a name="1620">1620</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> with the x and y axes indicated: for example, C<x1y1> to plot on the main </td> </tr> <tr> <td class="h" > <a name="1621">1621</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> axes, or C<x1y2> to plot using an alternate Y axis (normally gridded on </td> </tr> <tr> <td class="h" > <a name="1622">1622</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the right side of the plot). </td> </tr> <tr> <td class="h" > <a name="1623">1623</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1624">1624</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item with </td> </tr> <tr> <td class="h" > <a name="1625">1625</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1626">1626</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Specifies the plot style for this curve. The value is passed to gnuplot </td> </tr> <tr> <td class="h" > <a name="1627">1627</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> using its 'with' keyword, so valid values are whatever gnuplot </td> </tr> <tr> <td class="h" > <a name="1628">1628</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> supports. See above ("Plot styles supported") for a list of supported </td> </tr> <tr> <td class="h" > <a name="1629">1629</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> curve styles. </td> </tr> <tr> <td class="h" > <a name="1630">1630</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1631">1631</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The following curve options in this list modify the plot style further. </td> </tr> <tr> <td class="h" > <a name="1632">1632</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Not all of them are applicable to all plot styles -- for example, it makes </td> </tr> <tr> <td class="h" > <a name="1633">1633</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> no sense to specify a fill style for C<< with=>lines >>. </td> </tr> <tr> <td class="h" > <a name="1634">1634</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1635">1635</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For historical reasons, you can supply the with modifier curve options </td> </tr> <tr> <td class="h" > <a name="1636">1636</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> as a single string in the "with" curve option. That usage is deprecated </td> </tr> <tr> <td class="h" > <a name="1637">1637</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> and will disappear in a future version of PDL::Graphics::Gnuplot. </td> </tr> <tr> <td class="h" > <a name="1638">1638</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1639">1639</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item linetype (abbrev 'lt') </td> </tr> <tr> <td class="h" > <a name="1640">1640</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1641">1641</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is a numeric selector from the default collection of line styles. </td> </tr> <tr> <td class="h" > <a name="1642">1642</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> It includes automagic selection of dash style, color, and width from the </td> </tr> <tr> <td class="h" > <a name="1643">1643</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default set of linetypes for your current output terminal. </td> </tr> <tr> <td class="h" > <a name="1644">1644</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1645">1645</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item dashtype (abbrev 'dt') </td> </tr> <tr> <td class="h" > <a name="1646">1646</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1647">1647</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is can be either a numeric type selector (0 for no dashes) or </td> </tr> <tr> <td class="h" > <a name="1648">1648</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> an ARRAY ref containing a list of up to 5 pairs of (dash length, </td> </tr> <tr> <td class="h" > <a name="1649">1649</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> space length). The C<dashtype> curve option is only supported for </td> </tr> <tr> <td class="h" > <a name="1650">1650</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Gnuplot versions 5.0 and above. </td> </tr> <tr> <td class="h" > <a name="1651">1651</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1652">1652</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you don't specify a C<dashtype> curve option, the default behavior </td> </tr> <tr> <td class="h" > <a name="1653">1653</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> matches the behavior of earlier gnuplots: many terminals support a </td> </tr> <tr> <td class="h" > <a name="1654">1654</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "dashed" terminal/output option, and if you have set that option (with </td> </tr> <tr> <td class="h" > <a name="1655">1655</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the constructor or with the C<output> method) then lines are uniquely </td> </tr> <tr> <td class="h" > <a name="1656">1656</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dashed by default. To make a single curve solid, specify C<< dt=>0 >> as </td> </tr> <tr> <td class="h" > <a name="1657">1657</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a curve option for it; or to make all curves solid, use the constructor </td> </tr> <tr> <td class="h" > <a name="1658">1658</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or the C<output> method to set the terminal option C<< dashed=>0 >>. </td> </tr> <tr> <td class="h" > <a name="1659">1659</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1660">1660</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If your gnuplot is older than v5.0, the dashtype curve option is </td> </tr> <tr> <td class="h" > <a name="1661">1661</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ignored (and causes a warning to be emitted). </td> </tr> <tr> <td class="h" > <a name="1662">1662</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1663">1663</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item linestyle (abbrev 'ls') </td> </tr> <tr> <td class="h" > <a name="1664">1664</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1665">1665</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This works exactly like C<< linetype >> above, except that you can modify </td> </tr> <tr> <td class="h" > <a name="1666">1666</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> individual line styles by setting the C<< style line <num> >> plot option. </td> </tr> <tr> <td class="h" > <a name="1667">1667</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> That is handy for a custom style you might use across several curves either </td> </tr> <tr> <td class="h" > <a name="1668">1668</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a single plot or several plots. </td> </tr> <tr> <td class="h" > <a name="1669">1669</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1670">1670</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item linewidth (abbrev 'lw') </td> </tr> <tr> <td class="h" > <a name="1671">1671</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1672">1672</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is a numeric multiplier on the usual default line width in your current </td> </tr> <tr> <td class="h" > <a name="1673">1673</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> terminal. </td> </tr> <tr> <td class="h" > <a name="1674">1674</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1675">1675</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item linecolor (abbrev 'lc') </td> </tr> <tr> <td class="h" > <a name="1676">1676</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1677">1677</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is a color specifier for the color of the line. See L</"Color specification">. </td> </tr> <tr> <td class="h" > <a name="1678">1678</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can feed in a standard color name (they're listed in the </td> </tr> <tr> <td class="h" > <a name="1679">1679</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> package-global variable C<@PDL::Graphics::Gnuplot::colornames>), a </td> </tr> <tr> <td class="h" > <a name="1680">1680</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> small integer to index the standard linetype colors, the word </td> </tr> <tr> <td class="h" > <a name="1681">1681</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "variable" to indicate that the line color is a standard linetype </td> </tr> <tr> <td class="h" > <a name="1682">1682</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> color to be drawn from an additional column of data, a string of the </td> </tr> <tr> <td class="h" > <a name="1683">1683</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> form #RRGGBB, where the # is literal and the RR, GG, and BB are </td> </tr> <tr> <td class="h" > <a name="1684">1684</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> hexadecimal bytes, the words "rgbcolor variable" to specify an </td> </tr> <tr> <td class="h" > <a name="1685">1685</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> additional column of data containing 24-bit packed integers with RGB </td> </tr> <tr> <td class="h" > <a name="1686">1686</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> color values, C<< [palette=>'frac',<val>] >> to specify a single </td> </tr> <tr> <td class="h" > <a name="1687">1687</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fractional position (scaled 0-1) in the current palette, or C<< </td> </tr> <tr> <td class="h" > <a name="1688">1688</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> [palette=>'cb',<val>] >> to specify a single value in the scaled </td> </tr> <tr> <td class="h" > <a name="1689">1689</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> cbrange. </td> </tr> <tr> <td class="h" > <a name="1690">1690</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1691">1691</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> There is no C<< linecolor=>[palette=>variable] >> due to Gnuplot's </td> </tr> <tr> <td class="h" > <a name="1692">1692</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> non-orthogonal syntax. To draw line color from the palette, via an </td> </tr> <tr> <td class="h" > <a name="1693">1693</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> additional data column, see the separate "palette" curve option </td> </tr> <tr> <td class="h" > <a name="1694">1694</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (below). </td> </tr> <tr> <td class="h" > <a name="1695">1695</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1696">1696</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item textcolor (abbrev 'tc') </td> </tr> <tr> <td class="h" > <a name="1697">1697</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1698">1698</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For plot styles like C<labels> that specify text, this sets the color </td> </tr> <tr> <td class="h" > <a name="1699">1699</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of the text. It has the same format as C<linecolor> (above). </td> </tr> <tr> <td class="h" > <a name="1700">1700</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1701">1701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item pointtype (abbrev 'pt') </td> </tr> <tr> <td class="h" > <a name="1702">1702</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1703">1703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Selects a point glyph shape from the built-in list for your terminal, </td> </tr> <tr> <td class="h" > <a name="1704">1704</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for plots that render points as small glyphs (like C<points> and </td> </tr> <tr> <td class="h" > <a name="1705">1705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<linespoints>). </td> </tr> <tr> <td class="h" > <a name="1706">1706</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1707">1707</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item pointsize (abbrev 'ps') </td> </tr> <tr> <td class="h" > <a name="1708">1708</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1709">1709</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Selects a fractional size for point glyphs, relative to the default size </td> </tr> <tr> <td class="h" > <a name="1710">1710</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> on your terminal, for plots that render points as small glyphs. </td> </tr> <tr> <td class="h" > <a name="1711">1711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1712">1712</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item fillcolor (abbrev 'fc') </td> </tr> <tr> <td class="h" > <a name="1713">1713</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1714">1714</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Fills an area plot like C<filledcurves> with a color. </td> </tr> <tr> <td class="h" > <a name="1715">1715</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> It has the same format as C<linecolor>. This will fill the whole plot with </td> </tr> <tr> <td class="h" > <a name="1716">1716</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the same color. To fill above a threshold or below a threshold, you need to </td> </tr> <tr> <td class="h" > <a name="1717">1717</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> use C<above> and C<below> options. </td> </tr> <tr> <td class="h" > <a name="1718">1718</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1719">1719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> An example to plot data in a single function call is below: </td> </tr> <tr> <td class="h" > <a name="1720">1720</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1721">1721</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plot({ with => 'filledcurves', fillcolor => 'green', above => 'y=0' }, </td> </tr> <tr> <td class="h" > <a name="1722">1722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> x, y, </td> </tr> <tr> <td class="h" > <a name="1723">1723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { with => 'filledcurves', fillcolor => 'red', below => 'y=0' }, </td> </tr> <tr> <td class="h" > <a name="1724">1724</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> x, y); </td> </tr> <tr> <td class="h" > <a name="1725">1725</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1726">1726</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1727">1727</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item below </td> </tr> <tr> <td class="h" > <a name="1728">1728</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1729">1729</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is used for C<filledcurves> to set a C<fillcolor> below a threshold. </td> </tr> <tr> <td class="h" > <a name="1730">1730</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can set the value like "y=0" if you want to color below the Y-axis value of 0. </td> </tr> <tr> <td class="h" > <a name="1731">1731</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1732">1732</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item above </td> </tr> <tr> <td class="h" > <a name="1733">1733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1734">1734</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is used for C<filledcurves> to set a C<fillcolor> above a threshold. </td> </tr> <tr> <td class="h" > <a name="1735">1735</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can set the value like "y=0" if you want to color above the Y-axis value of 0. </td> </tr> <tr> <td class="h" > <a name="1736">1736</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1737">1737</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item fillstyle (abbrev 'fs') </td> </tr> <tr> <td class="h" > <a name="1738">1738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1739">1739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Specify the way that filled regions should be colored, in plots that </td> </tr> <tr> <td class="h" > <a name="1740">1740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> have fillable areas (like C<boxes>). Unlike C<linestyle> above, </td> </tr> <tr> <td class="h" > <a name="1741">1741</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<fillstyle> accepts a full specification rather than an index into a </td> </tr> <tr> <td class="h" > <a name="1742">1742</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> set of predefined styles. You can feed in: C<< 'empty' >> for no fill; </td> </tr> <tr> <td class="h" > <a name="1743">1743</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<< 'transparent solid <density>' >> for a solid fill with optional </td> </tr> <tr> <td class="h" > <a name="1744">1744</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> <density> from 0.0 to 1.0 (default 1.0); C<< 'transparent pattern <n>' </td> </tr> <tr> <td class="h" > <a name="1745">1745</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> >> for a pattern fill--plotting multiple datasets causes the pattern </td> </tr> <tr> <td class="h" > <a name="1746">1746</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> to cycle through all available pattern types, starting from pattern </td> </tr> <tr> <td class="h" > <a name="1747">1747</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> <n> (be aware that the default <n>=0 may be equivalent to 'empty'); </td> </tr> <tr> <td class="h" > <a name="1748">1748</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The 'transparent' portions of the strings are optional, and are only </td> </tr> <tr> <td class="h" > <a name="1749">1749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> effective on terminals that support transparency. Be aware that the </td> </tr> <tr> <td class="h" > <a name="1750">1750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> quality of the visual output may depend on terminal type and rendering </td> </tr> <tr> <td class="h" > <a name="1751">1751</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> software. </td> </tr> <tr> <td class="h" > <a name="1752">1752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1753">1753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Any of those fill style specification strings can have a border </td> </tr> <tr> <td class="h" > <a name="1754">1754</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specification string appended to it. To specify a border, append </td> </tr> <tr> <td class="h" > <a name="1755">1755</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<'border'>, and then optionally either C<< 'lt=><type>' >> or C<< </td> </tr> <tr> <td class="h" > <a name="1756">1756</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'lc=><colorspec>' >> to the string. To specify no border, append </td> </tr> <tr> <td class="h" > <a name="1757">1757</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<'noborder'>. </td> </tr> <tr> <td class="h" > <a name="1758">1758</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1759">1759</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item nohidden3d </td> </tr> <tr> <td class="h" > <a name="1760">1760</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1761">1761</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you are making a 3D plot and have used the plot option C<hidden3d> to get </td> </tr> <tr> <td class="h" > <a name="1762">1762</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> hidden line removal, you can override that for a particular curve by setting </td> </tr> <tr> <td class="h" > <a name="1763">1763</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the C<nohidden3d> option to a true value. Only the single curve with C<nohidden3d> </td> </tr> <tr> <td class="h" > <a name="1764">1764</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> set will have its hidden points rendered. </td> </tr> <tr> <td class="h" > <a name="1765">1765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1766">1766</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item nocontours </td> </tr> <tr> <td class="h" > <a name="1767">1767</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1768">1768</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you are making a contour 3D plot, you can inhibit rendering of </td> </tr> <tr> <td class="h" > <a name="1769">1769</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> contours for a particular curve by setting C<nocontours> to a true </td> </tr> <tr> <td class="h" > <a name="1770">1770</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> value. </td> </tr> <tr> <td class="h" > <a name="1771">1771</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1772">1772</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item nosurface </td> </tr> <tr> <td class="h" > <a name="1773">1773</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1774">1774</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you are making a surface 3D plot, you can inhibit rendering of the </td> </tr> <tr> <td class="h" > <a name="1775">1775</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> surface associated with a particular curve, by setting C<nosurface> to </td> </tr> <tr> <td class="h" > <a name="1776">1776</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a true value. </td> </tr> <tr> <td class="h" > <a name="1777">1777</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1778">1778</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item palette </td> </tr> <tr> <td class="h" > <a name="1779">1779</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1780">1780</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Setting C<< palette => 1 >> causes line color to be drawn from an additional </td> </tr> <tr> <td class="h" > <a name="1781">1781</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> column in the data tuple. This column is always the very last column in the </td> </tr> <tr> <td class="h" > <a name="1782">1782</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> tuple, in case of conflict (e.g. if you set both C<< pointsize=>variable >> and </td> </tr> <tr> <td class="h" > <a name="1783">1783</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<< palette=>1 >>, then the palette column is the last column and the pointsize </td> </tr> <tr> <td class="h" > <a name="1784">1784</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> column is second-to-last). </td> </tr> <tr> <td class="h" > <a name="1785">1785</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1786">1786</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item tuplesize </td> </tr> <tr> <td class="h" > <a name="1787">1787</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1788">1788</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Specifies how many values represent each data point. Normally you </td> </tr> <tr> <td class="h" > <a name="1789">1789</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> don't need to set this as individual C<with> styles implicitly set a </td> </tr> <tr> <td class="h" > <a name="1790">1790</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> tuple size (which is automatically extended if you specify additional </td> </tr> <tr> <td class="h" > <a name="1791">1791</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> modifiers such as C<palette> that require more data); this option </td> </tr> <tr> <td class="h" > <a name="1792">1792</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lets you override PDL::Graphics::Gnuplot's parsing in case of irregularity. </td> </tr> <tr> <td class="h" > <a name="1793">1793</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1794">1794</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item cdims </td> </tr> <tr> <td class="h" > <a name="1795">1795</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1796">1796</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Specifies the dimensions of of each column in this curve's tuple. It must </td> </tr> <tr> <td class="h" > <a name="1797">1797</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> be 0, 1, or 2. Normally you don't need to set this for most plots; the </td> </tr> <tr> <td class="h" > <a name="1798">1798</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> main use is to specify that a 2-D data PDL is to be interpreted as a collection </td> </tr> <tr> <td class="h" > <a name="1799">1799</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of 1-D columns rather than a single 2-D grid (which would be the default </td> </tr> <tr> <td class="h" > <a name="1800">1800</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in a 3-D plot). For example: </td> </tr> <tr> <td class="h" > <a name="1801">1801</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1802">1802</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w=gpwin(); </td> </tr> <tr> <td class="h" > <a name="1803">1803</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $r2 = rvals(21,21)**2; </td> </tr> <tr> <td class="h" > <a name="1804">1804</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot3d( wi=>'lines', xvals($r2), yvals($r2), $r2 ); </td> </tr> <tr> <td class="h" > <a name="1805">1805</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1806">1806</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> will produce a grid of values on a paraboloid. To instead plot a collection </td> </tr> <tr> <td class="h" > <a name="1807">1807</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of lines using the threaded syntax, try </td> </tr> <tr> <td class="h" > <a name="1808">1808</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1809">1809</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot3d( wi=>'lines', cd=>1, xvals($r2), yvals($r2), $r2 ); </td> </tr> <tr> <td class="h" > <a name="1810">1810</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1811">1811</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> which will plot 21 separate curves in a threaded manner. </td> </tr> <tr> <td class="h" > <a name="1812">1812</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1813">1813</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item resample </td> </tr> <tr> <td class="h" > <a name="1814">1814</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1815">1815</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For C<< with=>'fits' >>. See L</Images>. </td> </tr> <tr> <td class="h" > <a name="1816">1816</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1817">1817</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="1818">1818</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1819">1819</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 RECIPES </td> </tr> <tr> <td class="h" > <a name="1820">1820</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1821">1821</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Most of these come directly from Gnuplot commands. See the Gnuplot docs for </td> </tr> <tr> <td class="h" > <a name="1822">1822</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> details. </td> </tr> <tr> <td class="h" > <a name="1823">1823</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1824">1824</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 2D plotting </td> </tr> <tr> <td class="h" > <a name="1825">1825</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1826">1826</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If we're plotting an ndarray $y of y-values to be plotted sequentially (implicit </td> </tr> <tr> <td class="h" > <a name="1827">1827</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> domain), all you need is </td> </tr> <tr> <td class="h" > <a name="1828">1828</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1829">1829</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot($y); </td> </tr> <tr> <td class="h" > <a name="1830">1830</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1831">1831</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If we also have a corresponding $x domain, we can plot $y vs. $x with </td> </tr> <tr> <td class="h" > <a name="1832">1832</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1833">1833</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot($x, $y); </td> </tr> <tr> <td class="h" > <a name="1834">1834</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1835">1835</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head3 Simple style control </td> </tr> <tr> <td class="h" > <a name="1836">1836</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1837">1837</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To change line thickness: </td> </tr> <tr> <td class="h" > <a name="1838">1838</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1839">1839</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'lines',linewidth=>4, $x, $y); </td> </tr> <tr> <td class="h" > <a name="1840">1840</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'lines', lw=>4, $x, $y); </td> </tr> <tr> <td class="h" > <a name="1841">1841</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1842">1842</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To change point size and point type: </td> </tr> <tr> <td class="h" > <a name="1843">1843</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1844">1844</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'points',pointtype=>8, $x, $y); </td> </tr> <tr> <td class="h" > <a name="1845">1845</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'points',pt=>8, $x, $y); </td> </tr> <tr> <td class="h" > <a name="1846">1846</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1847">1847</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head3 Errorbars </td> </tr> <tr> <td class="h" > <a name="1848">1848</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1849">1849</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To plot errorbars that show $y +- 1, plotted with an implicit domain </td> </tr> <tr> <td class="h" > <a name="1850">1850</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1851">1851</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'yerrorbars', $y, $y->ones); </td> </tr> <tr> <td class="h" > <a name="1852">1852</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1853">1853</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Same with an explicit $x domain: </td> </tr> <tr> <td class="h" > <a name="1854">1854</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1855">1855</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'yerrorbars', $x, $y, $y->ones); </td> </tr> <tr> <td class="h" > <a name="1856">1856</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1857">1857</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Symmetric errorbars on both x and y. $x +- 1, $y +- 2: </td> </tr> <tr> <td class="h" > <a name="1858">1858</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1859">1859</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'xyerrorbars', $x, $y, $x->ones, 2*$y->ones); </td> </tr> <tr> <td class="h" > <a name="1860">1860</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1861">1861</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To plot asymmetric errorbars that show the range $y-1 to $y+2 (note that here </td> </tr> <tr> <td class="h" > <a name="1862">1862</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> you must specify the actual errorbar-end positions, NOT just their deviations </td> </tr> <tr> <td class="h" > <a name="1863">1863</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> from the center; this is how Gnuplot does it) </td> </tr> <tr> <td class="h" > <a name="1864">1864</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1865">1865</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'yerrorbars', $y, $y - $y->ones, $y + 2*$y->ones); </td> </tr> <tr> <td class="h" > <a name="1866">1866</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1867">1867</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head3 More multi-value styles </td> </tr> <tr> <td class="h" > <a name="1868">1868</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1869">1869</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Plotting with variable-size circles (size given in plot units, requires Gnuplot >= 4.4) </td> </tr> <tr> <td class="h" > <a name="1870">1870</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1871">1871</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'circles', $x, $y, $radii); </td> </tr> <tr> <td class="h" > <a name="1872">1872</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1873">1873</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Plotting with a variably-sized arbitrary point type (size given in multiples of </td> </tr> <tr> <td class="h" > <a name="1874">1874</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the "default" point size) </td> </tr> <tr> <td class="h" > <a name="1875">1875</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1876">1876</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'points', pointtype=>7, pointsize=>'variable', </td> </tr> <tr> <td class="h" > <a name="1877">1877</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $x, $y, $sizes); </td> </tr> <tr> <td class="h" > <a name="1878">1878</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1879">1879</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Color-coded points </td> </tr> <tr> <td class="h" > <a name="1880">1880</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1881">1881</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(with => 'points', palette=>1, </td> </tr> <tr> <td class="h" > <a name="1882">1882</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $x, $y, $colors); </td> </tr> <tr> <td class="h" > <a name="1883">1883</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1884">1884</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Variable-size AND color-coded circles. A Gnuplot (4.4.0) bug make it necessary to </td> </tr> <tr> <td class="h" > <a name="1885">1885</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specify the color range here </td> </tr> <tr> <td class="h" > <a name="1886">1886</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1887">1887</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(cbmin => $mincolor, cbmax => $maxcolor, </td> </tr> <tr> <td class="h" > <a name="1888">1888</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> with => 'circles', palette=>1, </td> </tr> <tr> <td class="h" > <a name="1889">1889</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $x, $y, $radii, $colors); </td> </tr> <tr> <td class="h" > <a name="1890">1890</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1891">1891</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 3D plotting </td> </tr> <tr> <td class="h" > <a name="1892">1892</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1893">1893</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> General style control works identically for 3D plots as in 2D plots. </td> </tr> <tr> <td class="h" > <a name="1894">1894</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1895">1895</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To plot a set of 3d points, with a square aspect ratio (squareness requires </td> </tr> <tr> <td class="h" > <a name="1896">1896</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Gnuplot >= 4.4): </td> </tr> <tr> <td class="h" > <a name="1897">1897</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1898">1898</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> splot(square => 1, $x, $y, $z); </td> </tr> <tr> <td class="h" > <a name="1899">1899</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1900">1900</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If $xy is a 2D ndarray, we can plot it as a height map on an implicit domain </td> </tr> <tr> <td class="h" > <a name="1901">1901</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1902">1902</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> splot($xy); </td> </tr> <tr> <td class="h" > <a name="1903">1903</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1904">1904</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Complicated 3D plot with fancy styling: </td> </tr> <tr> <td class="h" > <a name="1905">1905</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1906">1906</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $pi = 3.14159; </td> </tr> <tr> <td class="h" > <a name="1907">1907</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $theta = zeros(200)->xlinvals(0, 6*$pi); </td> </tr> <tr> <td class="h" > <a name="1908">1908</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $z = zeros(200)->xlinvals(0, 5); </td> </tr> <tr> <td class="h" > <a name="1909">1909</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1910">1910</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> splot(title => 'double helix', </td> </tr> <tr> <td class="h" > <a name="1911">1911</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1912">1912</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { with => 'linespoints', </td> </tr> <tr> <td class="h" > <a name="1913">1913</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pointsize=>'variable', </td> </tr> <tr> <td class="h" > <a name="1914">1914</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pointtype=>7, </td> </tr> <tr> <td class="h" > <a name="1915">1915</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> palette=>1, </td> </tr> <tr> <td class="h" > <a name="1916">1916</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> legend => 'spiral 1' }, </td> </tr> <tr> <td class="h" > <a name="1917">1917</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { legend => 'spiral 2' }, </td> </tr> <tr> <td class="h" > <a name="1918">1918</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1919">1919</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 2 sets of x, 2 sets of y, single z </td> </tr> <tr> <td class="h" > <a name="1920">1920</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::cat( cos($theta), -cos($theta)), </td> </tr> <tr> <td class="h" > <a name="1921">1921</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::cat( sin($theta), -sin($theta)), </td> </tr> <tr> <td class="h" > <a name="1922">1922</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $z, </td> </tr> <tr> <td class="h" > <a name="1923">1923</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1924">1924</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # pointsize, color </td> </tr> <tr> <td class="h" > <a name="1925">1925</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 0.5 + abs(cos($theta)), sin(2*$theta) ); </td> </tr> <tr> <td class="h" > <a name="1926">1926</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1927">1927</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 3D plots can be plotted as a heat map. </td> </tr> <tr> <td class="h" > <a name="1928">1928</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1929">1929</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> splot( extracmds => 'set view 0,0', </td> </tr> <tr> <td class="h" > <a name="1930">1930</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> with => 'image', </td> </tr> <tr> <td class="h" > <a name="1931">1931</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $xy ); </td> </tr> <tr> <td class="h" > <a name="1932">1932</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1933">1933</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 Hardcopies </td> </tr> <tr> <td class="h" > <a name="1934">1934</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1935">1935</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To send any plot to a file, instead of to the screen, one can simply do </td> </tr> <tr> <td class="h" > <a name="1936">1936</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1937">1937</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(hardcopy => 'output.pdf', </td> </tr> <tr> <td class="h" > <a name="1938">1938</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $x, $y); </td> </tr> <tr> <td class="h" > <a name="1939">1939</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1940">1940</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<hardcopy> option is a shorthand for the C<terminal> and </td> </tr> <tr> <td class="h" > <a name="1941">1941</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<output> options. The output device is chosen from the file name </td> </tr> <tr> <td class="h" > <a name="1942">1942</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> suffix. </td> </tr> <tr> <td class="h" > <a name="1943">1943</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1944">1944</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you want more (any) control over the output options (e.g. page </td> </tr> <tr> <td class="h" > <a name="1945">1945</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> size, font, etc.) then you can specify the output device using the </td> </tr> <tr> <td class="h" > <a name="1946">1946</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<output> method or the constructor itself -- or the corresponding plot </td> </tr> <tr> <td class="h" > <a name="1947">1947</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options in the non-object mode. For example, to generate a PDF of a </td> </tr> <tr> <td class="h" > <a name="1948">1948</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> particular size with a particular font size for the text, one can do </td> </tr> <tr> <td class="h" > <a name="1949">1949</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1950">1950</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot(terminal => 'pdfcairo solid color font ",10" size 11in,8.5in', </td> </tr> <tr> <td class="h" > <a name="1951">1951</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> output => 'output.pdf', </td> </tr> <tr> <td class="h" > <a name="1952">1952</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $x, $y); </td> </tr> <tr> <td class="h" > <a name="1953">1953</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1954">1954</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This command is equivalent to the C<hardcopy> shorthand used previously, but the </td> </tr> <tr> <td class="h" > <a name="1955">1955</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fonts and sizes can be changed. </td> </tr> <tr> <td class="h" > <a name="1956">1956</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1957">1957</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Using the object oriented mode, you could instead say: </td> </tr> <tr> <td class="h" > <a name="1958">1958</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1959">1959</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w = gpwin(); </td> </tr> <tr> <td class="h" > <a name="1960">1960</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot( $x, $y ); </td> </tr> <tr> <td class="h" > <a name="1961">1961</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->output( pdfcairo, solid=>1, color=>1,font=>',10',size=>[11,8.5,'in'] ); </td> </tr> <tr> <td class="h" > <a name="1962">1962</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->replot(); </td> </tr> <tr> <td class="h" > <a name="1963">1963</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->close(); </td> </tr> <tr> <td class="h" > <a name="1964">1964</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1965">1965</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Many hardcopy output terminals (such as C<pdf> and C<svg>) will not </td> </tr> <tr> <td class="h" > <a name="1966">1966</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dump their plot to the file unless the file is explicitly closed with a </td> </tr> <tr> <td class="h" > <a name="1967">1967</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> change of output device or a call to C<reset>, C<restart>, or C<close>. </td> </tr> <tr> <td class="h" > <a name="1968">1968</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is because those devices support multipage output and also require </td> </tr> <tr> <td class="h" > <a name="1969">1969</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> an end-of-file marker to close the file. </td> </tr> <tr> <td class="h" > <a name="1970">1970</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1971">1971</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 Plotting examples </td> </tr> <tr> <td class="h" > <a name="1972">1972</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1973">1973</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 A simple example </td> </tr> <tr> <td class="h" > <a name="1974">1974</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1975">1975</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $win = gpwin('x11'); </td> </tr> <tr> <td class="h" > <a name="1976">1976</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $win->plot( sin(xvals(45)) * 3.14159/10 ); </td> </tr> <tr> <td class="h" > <a name="1977">1977</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1978">1978</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Here we just plot a simple function. The default plot style is a </td> </tr> <tr> <td class="h" > <a name="1979">1979</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> line. Line plots take a 2-tuple (X and Y values). Since we have </td> </tr> <tr> <td class="h" > <a name="1980">1980</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> supplied only one element, C<plot()> understands it to be the Y value </td> </tr> <tr> <td class="h" > <a name="1981">1981</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (abscissa) of the plot, and supplies value indices as X values -- so </td> </tr> <tr> <td class="h" > <a name="1982">1982</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> we get a plot of just over 2 cycles of the sine wave over an X range </td> </tr> <tr> <td class="h" > <a name="1983">1983</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> across X values from 0 to 44. </td> </tr> <tr> <td class="h" > <a name="1984">1984</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1985">1985</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 A not-so-simple example </td> </tr> <tr> <td class="h" > <a name="1986">1986</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1987">1987</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $win = gpwin('x11'); </td> </tr> <tr> <td class="h" > <a name="1988">1988</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $pi = 3.14159; </td> </tr> <tr> <td class="h" > <a name="1989">1989</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $win->plot( {with => line}, xvals(10)**2, xvals(10), </td> </tr> <tr> <td class="h" > <a name="1990">1990</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> {with => circles}, 2 * xvals(50), 2 * sin(xvals(50) * $pi / 10), xvals(50)/20 </td> </tr> <tr> <td class="h" > <a name="1991">1991</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="1992">1992</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1993">1993</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This plots sqrt(x) in an interesting way, and overplots some circles of varying size. </td> </tr> <tr> <td class="h" > <a name="1994">1994</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The line plot accepts a 2-tuple, and we supply both X and Y. The circles plot accepts </td> </tr> <tr> <td class="h" > <a name="1995">1995</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a 3-tuple: X, Y, and R. </td> </tr> <tr> <td class="h" > <a name="1996">1996</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1997">1997</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 A complicated example: </td> </tr> <tr> <td class="h" > <a name="1998">1998</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="1999">1999</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $pi = 3.14159; </td> </tr> <tr> <td class="h" > <a name="2000">2000</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $theta = xvals(201) * 6 * $pi / 200; </td> </tr> <tr> <td class="h" > <a name="2001">2001</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $z = xvals(201) * 5 / 200; </td> </tr> <tr> <td class="h" > <a name="2002">2002</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2003">2003</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gplot( {trid => 1, title => 'double helix',cbr=>[0,1]}, </td> </tr> <tr> <td class="h" > <a name="2004">2004</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> {with => 'linespoints', </td> </tr> <tr> <td class="h" > <a name="2005">2005</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pointsize=>'variable', </td> </tr> <tr> <td class="h" > <a name="2006">2006</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pointtype=>2, </td> </tr> <tr> <td class="h" > <a name="2007">2007</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> palette=>1, </td> </tr> <tr> <td class="h" > <a name="2008">2008</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> legend => ['spiral 1','spiral 2'], </td> </tr> <tr> <td class="h" > <a name="2009">2009</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> cdim=>1}, </td> </tr> <tr> <td class="h" > <a name="2010">2010</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pdl( cos($theta), -cos($theta) ), # x </td> </tr> <tr> <td class="h" > <a name="2011">2011</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pdl( sin($theta), -sin($theta) ), # y </td> </tr> <tr> <td class="h" > <a name="2012">2012</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $z, # z </td> </tr> <tr> <td class="h" > <a name="2013">2013</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (0.5 + abs(cos($theta))), # pointsize </td> </tr> <tr> <td class="h" > <a name="2014">2014</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sin($theta/3), # color </td> </tr> <tr> <td class="h" > <a name="2015">2015</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { with=>'points', </td> </tr> <tr> <td class="h" > <a name="2016">2016</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pointsize=>'variable', </td> </tr> <tr> <td class="h" > <a name="2017">2017</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pointtype=>5, </td> </tr> <tr> <td class="h" > <a name="2018">2018</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> palette=>0 </td> </tr> <tr> <td class="h" > <a name="2019">2019</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="2020">2020</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> zeroes(6), # x </td> </tr> <tr> <td class="h" > <a name="2021">2021</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> zeroes(6), # y </td> </tr> <tr> <td class="h" > <a name="2022">2022</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xvals(6), # z </td> </tr> <tr> <td class="h" > <a name="2023">2023</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xvals(6)+1 # point size </td> </tr> <tr> <td class="h" > <a name="2024">2024</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="2025">2025</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2026">2026</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is a 3d plot with variable size and color. There are 5 values in </td> </tr> <tr> <td class="h" > <a name="2027">2027</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the tuple. The first 2 ndarrays have dimensions (N,2); all the other </td> </tr> <tr> <td class="h" > <a name="2028">2028</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ndarrays have a single dimension. The "cdim=>1" specifies that each column </td> </tr> <tr> <td class="h" > <a name="2029">2029</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of data should be one-dimensional. Thus the PDL threading generates 2 </td> </tr> <tr> <td class="h" > <a name="2030">2030</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> distinct curves, with varying values for x,y and identical values for </td> </tr> <tr> <td class="h" > <a name="2031">2031</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> everything else. To label the curves differently, 2 different sets of </td> </tr> <tr> <td class="h" > <a name="2032">2032</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> curve options are given. Omitting the "cdim" curve option would yield </td> </tr> <tr> <td class="h" > <a name="2033">2033</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a 201x2 grid with the "linespoints" plotstyle, rather than two separate </td> </tr> <tr> <td class="h" > <a name="2034">2034</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> curves. </td> </tr> <tr> <td class="h" > <a name="2035">2035</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2036">2036</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> In addition to the threaded pair of linespoints curves, there are six </td> </tr> <tr> <td class="h" > <a name="2037">2037</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> variable size points plotted as filled squares, as a secondary curve. </td> </tr> <tr> <td class="h" > <a name="2038">2038</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2039">2039</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Plot options are passed in in two places: as a leading hash ref, and as </td> </tr> <tr> <td class="h" > <a name="2040">2040</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a trailing hash ref. Any other hash elements or hash refs must be curve </td> </tr> <tr> <td class="h" > <a name="2041">2041</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options. </td> </tr> <tr> <td class="h" > <a name="2042">2042</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2043">2043</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Curves are delimited by non-data arguments. After the initial hash </td> </tr> <tr> <td class="h" > <a name="2044">2044</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref, curve options for the first curve (the threaded pair of spirals) </td> </tr> <tr> <td class="h" > <a name="2045">2045</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> are passed in as a second hash ref. The curve's data arguments are </td> </tr> <tr> <td class="h" > <a name="2046">2046</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ended by the first non-data argument (the hash ref with the curve </td> </tr> <tr> <td class="h" > <a name="2047">2047</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options for the second curve). </td> </tr> <tr> <td class="h" > <a name="2048">2048</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2049">2049</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2050">2050</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 FUNCTIONS </td> </tr> <tr> <td class="h" > <a name="2051">2051</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2052">2052</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2053">2053</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2054">2054</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> package PDL::Graphics::Gnuplot; </td> </tr> <tr> <td class="h" > <a name="2055">2055</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2056">2056</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2056-1"> 3 </a> </td> <td >   </td> <td > 295471 </td> <td class="s"> use strict; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 141 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2057">2057</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2057-1"> 3 </a> </td> <td >   </td> <td > 19 </td> <td class="s"> use warnings; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 247 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2058">2058</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2058-1"> 3 </a> </td> <td >   </td> <td > 1422 </td> <td class="s"> use PDL; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 923 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 15 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2059">2059</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2059-1"> 3 </a> </td> <td >   </td> <td > 545298 </td> <td class="s"> use List::Util qw(first); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 198 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2060">2060</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2060-1"> 3 </a> </td> <td >   </td> <td > 1755 </td> <td class="s"> use Storable qw(dclone); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12162 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 233 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2061">2061</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2061-1"> 3 </a> </td> <td >   </td> <td > 1420 </td> <td class="s"> use IPC::Open3; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 8245 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 154 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2062">2062</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2062-1"> 3 </a> </td> <td >   </td> <td > 2832 </td> <td class="s"> use IPC::Run; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 108058 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 177 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2063">2063</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2063-1"> 3 </a> </td> <td >   </td> <td > 1475 </td> <td class="s"> use IO::Select; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 5551 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 215 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2064">2064</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2064-1"> 3 </a> </td> <td >   </td> <td > 25 </td> <td class="s"> use Symbol qw(gensym); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 157 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2065">2065</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2065-1"> 3 </a> </td> <td >   </td> <td > 20 </td> <td class="s"> use File::Temp (); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 100 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2066">2066</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2066-1"> 3 </a> </td> <td >   </td> <td > 18 </td> <td class="s"> use Time::HiRes qw(gettimeofday tv_interval); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 32 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2067">2067</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2067-1"> 3 </a> </td> <td >   </td> <td > 1734 </td> <td class="s"> use Safe::Isa; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1959 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 471 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2068">2068</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2068-1"> 3 </a> </td> <td >   </td> <td > 21 </td> <td class="s"> use Carp; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 5 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 204 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2069">2069</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2070">2070</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2070-1"> 3 </a> </td> <td >   </td> <td > 1810 </td> <td class="s"> use Alien::Gnuplot; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 119263 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 20 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2071">2071</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($Alien::Gnuplot::VERSION < 1.031) { </td> </tr> <tr> <td class="h" > <a name="2072">2072</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Have to check explicitly since we use the version hack to check the *gnuplot* version. </td> </tr> <tr> <td class="h" > <a name="2073">2073</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "PDL::Graphics::Gnuplot requires Alien::Gnuplot version 1.031 or higher\n (v$Alien::Gnuplot::VERSION found). You can pull the latest from CPAN.\n"; </td> </tr> <tr> <td class="h" > <a name="2074">2074</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2075">2075</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2076">2076</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $gnuplot_dep_v = 4.006; # Versions below this are deprecated. </td> </tr> <tr> <td class="h" > <a name="2077">2077</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $gnuplot_req_v = 4.004; # Versions below this are not supported. </td> </tr> <tr> <td class="h" > <a name="2078">2078</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Ensure gnuplot exists and is recent, and get ancillary info about it. </td> </tr> <tr> <td class="h" > <a name="2079">2079</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Alien::Gnuplot->VERSION('4.4'); </td> </tr> <tr> <td class="h" > <a name="2080">2080</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2081">2081</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Compile time config flags... </td> </tr> <tr> <td class="h" > <a name="2082">2082</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $check_syntax = 0; </td> </tr> <tr> <td class="h" > <a name="2083">2083</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $MS_io_braindamage = ($^O =~ m/MSWin32/i || $ENV{CYGWIN}); # Do some different things on Losedows </td> </tr> <tr> <td class="h" > <a name="2084">2084</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $echo_eating = 0; # Older versions of gnuplot on windows echo commands </td> </tr> <tr> <td class="h" > <a name="2085">2085</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $debug_echo = 0; # If set, mock up Losedows half-duplex pipes </td> </tr> <tr> <td class="h" > <a name="2086">2086</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2087">2087</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2088">2088</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $VERSION = '2.032'; </td> </tr> <tr> <td class="h" > <a name="2089">2089</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $VERSION = eval $VERSION; </td> </tr> <tr> <td class="h" > <a name="2090">2090</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2091">2091</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $gp_version = undef; # eventually gets the extracted gnuplot(1) version number. </td> </tr> <tr> <td class="h" > <a name="2092">2092</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $gp_numversion = undef; # which is here converted to a float </td> </tr> <tr> <td class="h" > <a name="2093">2093</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2094">2094</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $did_warn_non_numeric_patchlevel; # whether we already warned about this </td> </tr> <tr> <td class="h" > <a name="2095">2095</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2096">2096</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2096-1"> 3 </a> </td> <td >   </td> <td > 393416 </td> <td class="s"> use base 'Exporter'; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 33 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 53599 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2097">2097</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our @EXPORT_OK = qw( </td> </tr> <tr> <td class="h" > <a name="2098">2098</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plot plot3d line lines points image terminfo reset restart replot </td> </tr> <tr> <td class="h" > <a name="2099">2099</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> multiplot_generate plot_generate multiplot_next_generate end_multi_generate </td> </tr> <tr> <td class="h" > <a name="2100">2100</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="2101">2101</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our @EXPORT = qw(gpwin gplot greplot greset grestart); </td> </tr> <tr> <td class="h" > <a name="2102">2102</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2103">2103</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $SIG{TERM} = $SIG{INT} = $SIG{QUIT} = $SIG{HUP} = sub { die; }; </td> </tr> <tr> <td class="h" > <a name="2104">2104</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2105">2105</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # when testing plots with binary i/o, this is the unit of test data </td> </tr> <tr> <td class="h" > <a name="2106">2106</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $testdataunit_binary = "........"; # 8 bytes - length of an IEEE double </td> </tr> <tr> <td class="h" > <a name="2107">2107</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2108">2108</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # globalPlot holds state when methods are called with non-object </td> </tr> <tr> <td class="h" > <a name="2109">2109</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # syntax. (If you want more than one plot at once, you have to use </td> </tr> <tr> <td class="h" > <a name="2110">2110</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the object syntax). </td> </tr> <tr> <td class="h" > <a name="2111">2111</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $globalPlot; </td> </tr> <tr> <td class="h" > <a name="2112">2112</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2113">2113</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # get a list of all the -- options that this gnuplot supports </td> </tr> <tr> <td class="h" > <a name="2114">2114</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our %gnuplotFeatures = _getGnuplotFeatures(); </td> </tr> <tr> <td class="h" > <a name="2115">2115</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2116">2116</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Declare the parse tables for plot and curve options. (They're populated below). </td> </tr> <tr> <td class="h" > <a name="2117">2117</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our($pOpt, $cOpt); </td> </tr> <tr> <td class="h" > <a name="2118">2118</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2119">2119</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is a magic string that's used to separate curve blocks when assembling the </td> </tr> <tr> <td class="h" > <a name="2120">2120</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # plot command. </td> </tr> <tr> <td class="h" > <a name="2121">2121</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $cmdFence = "cmdFENCEcmd"; </td> </tr> <tr> <td class="h" > <a name="2122">2122</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2123">2123</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2124">2124</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2125">2125</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Constructor(s) </td> </tr> <tr> <td class="h" > <a name="2126">2126</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2127">2127</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # gpwin & new - constructor </td> </tr> <tr> <td class="h" > <a name="2128">2128</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # DESTROY - destructor kills gnuplot task </td> </tr> <tr> <td class="h" > <a name="2129">2129</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2130">2130</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _startGnuplot - helper for new </td> </tr> <tr> <td class="h" > <a name="2131">2131</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2132">2132</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="2133">2133</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2134">2134</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 gpwin </td> </tr> <tr> <td class="h" > <a name="2135">2135</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2136">2136</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="2137">2137</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2138">2138</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> use PDL::Graphics::Gnuplot; </td> </tr> <tr> <td class="h" > <a name="2139">2139</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w = gpwin( @options ); </td> </tr> <tr> <td class="h" > <a name="2140">2140</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot( @plot_args ); </td> </tr> <tr> <td class="h" > <a name="2141">2141</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2142">2142</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2143">2143</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2144">2144</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2145">2145</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gpwin is the PDL::Graphics::Gnuplot exported constructor. It is </td> </tr> <tr> <td class="h" > <a name="2146">2146</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> exported by default and is a synonym for "new </td> </tr> <tr> <td class="h" > <a name="2147">2147</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Graphics::Gnuplot(...)". If given no arguments, it creates a </td> </tr> <tr> <td class="h" > <a name="2148">2148</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plot object with the default terminal settings for your gnuplot. You </td> </tr> <tr> <td class="h" > <a name="2149">2149</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> can also give it the name of a Gnuplot terminal type (e.g. 'x11') and </td> </tr> <tr> <td class="h" > <a name="2150">2150</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> some terminal and output options (see "output"). </td> </tr> <tr> <td class="h" > <a name="2151">2151</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2152">2152</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2153">2153</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2154">2154</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2155">2155</a> </td> <td class="c3" > 20 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2155-1"> 20 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2155-1"> 1 </a> </td> <td > 377798 </td> <td class="s"> sub gpwin { return new("PDL::Graphics::Gnuplot",@_); } </td> </tr> <tr> <td class="h" > <a name="2156">2156</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2157">2157</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="2158">2158</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2159">2159</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 new </td> </tr> <tr> <td class="h" > <a name="2160">2160</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2161">2161</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="2162">2162</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2163">2163</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w = new PDL::Graphics::Gnuplot; </td> </tr> <tr> <td class="h" > <a name="2164">2164</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot( @plot_args ); </td> </tr> <tr> <td class="h" > <a name="2165">2165</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2166">2166</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Specify plot options alone </td> </tr> <tr> <td class="h" > <a name="2167">2167</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w = new PDL::Graphics::Gnuplot( {%plot_options} ); </td> </tr> <tr> <td class="h" > <a name="2168">2168</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2169">2169</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Specify device and device options (and optional default plot options) </td> </tr> <tr> <td class="h" > <a name="2170">2170</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w = new PDL::Graphics::Gnuplot( device, %device_options, {%plot_options} ); </td> </tr> <tr> <td class="h" > <a name="2171">2171</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot( @plot_args ); </td> </tr> <tr> <td class="h" > <a name="2172">2172</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2173">2173</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2174">2174</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2175">2175</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Creates a PDL::Graphics::Gnuplot persistent plot object, and connects it to gnuplot. </td> </tr> <tr> <td class="h" > <a name="2176">2176</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2177">2177</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For convenience, you can specify the output device and its options </td> </tr> <tr> <td class="h" > <a name="2178">2178</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> right here in the constructor. Because different gnuplot devices </td> </tr> <tr> <td class="h" > <a name="2179">2179</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> accept different options, you must specify a device if you want to </td> </tr> <tr> <td class="h" > <a name="2180">2180</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specify any device configuration options (such as window size, output </td> </tr> <tr> <td class="h" > <a name="2181">2181</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> file, text mode, or default font). </td> </tr> <tr> <td class="h" > <a name="2182">2182</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2183">2183</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you don't specify a device type, then the Gnuplot default device </td> </tr> <tr> <td class="h" > <a name="2184">2184</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for your system gets used. You can set that with an environment </td> </tr> <tr> <td class="h" > <a name="2185">2185</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> variable (check the Gnuplot documentation). </td> </tr> <tr> <td class="h" > <a name="2186">2186</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2187">2187</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Gnuplot uses the word "terminal" for output devices; you can see a </td> </tr> <tr> <td class="h" > <a name="2188">2188</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> list of terminals supported by PDL::Graphics::Gnuplot by invoking </td> </tr> <tr> <td class="h" > <a name="2189">2189</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<PDL::Graphics::Gnuplot::terminfo()> (for example in the perldl shell). </td> </tr> <tr> <td class="h" > <a name="2190">2190</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2191">2191</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For convenience, you can provide default plot options here. If the last </td> </tr> <tr> <td class="h" > <a name="2192">2192</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> argument to C<new()> is a trailing hash ref, it is treated as plot options. </td> </tr> <tr> <td class="h" > <a name="2193">2193</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2194">2194</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> After you have created an object, you can change its terminal/output </td> </tr> <tr> <td class="h" > <a name="2195">2195</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> device with the C<output> method, which is useful for (e.g.) throwing </td> </tr> <tr> <td class="h" > <a name="2196">2196</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> up an interactive plot and then sending it to a hardcopy device. See </td> </tr> <tr> <td class="h" > <a name="2197">2197</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<output> for a description of terminal options and how to format </td> </tr> <tr> <td class="h" > <a name="2198">2198</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> them. </td> </tr> <tr> <td class="h" > <a name="2199">2199</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2200">2200</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Normally, the object connects to the command "gnuplot" in your path, </td> </tr> <tr> <td class="h" > <a name="2201">2201</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> using the C<Alien::Gnuplot> module. If you need to specify a binary </td> </tr> <tr> <td class="h" > <a name="2202">2202</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> other than this default, check the C<Alien::Gnuplot> documentation. </td> </tr> <tr> <td class="h" > <a name="2203">2203</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2204">2204</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for example </td> </tr> <tr> <td class="h" > <a name="2205">2205</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2206">2206</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $plot = PDL::Graphics::Gnuplot->new({title => 'Object-oriented plot'}); </td> </tr> <tr> <td class="h" > <a name="2207">2207</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $plot->plot( legend => 'curve', sequence(5) ); </td> </tr> <tr> <td class="h" > <a name="2208">2208</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2209">2209</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2210">2210</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2211">2211</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2212">2212</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $termTab; </td> </tr> <tr> <td class="h" > <a name="2213">2213</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2214">2214</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub new </td> </tr> <tr> <td class="h" > <a name="2215">2215</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="2216">2216</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2216-1"> 22 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2216-1"> 1 </a> </td> <td > 1465 </td> <td class="s"> my $classname; </td> </tr> <tr> <td class="h" > <a name="2217">2217</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2218">2218</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # DWIM if we call this like gpwin(). That usage is deprecated but tolerated. </td> </tr> <tr> <td class="h" > <a name="2219">2219</a> </td> <td class="c3" > 22 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2219-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 297 </td> <td class="s"> if(UNIVERSAL::isa('PDL::Graphics::Gnuplot',$_[0])) { </td> </tr> <tr> <td class="h" > <a name="2220">2220</a> </td> <td class="c3" > 21 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 152 </td> <td class="s"> $classname = shift; </td> </tr> <tr> <td class="h" > <a name="2221">2221</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2222">2222</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s"> $classname = "PDL::Graphics::Gnuplot"; </td> </tr> <tr> <td class="h" > <a name="2223">2223</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2224">2224</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2225">2225</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Declare & bless minimal object to hold everything. </td> </tr> <tr> <td class="h" > <a name="2226">2226</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 343 </td> <td class="s"> my $this = { t0 => [gettimeofday], # last access </td> </tr> <tr> <td class="h" > <a name="2227">2227</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options => {multiplot=>0}, # multiplot option actually holds multiplotting state flag </td> </tr> <tr> <td class="h" > <a name="2228">2228</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> replottable => 0, # small amount of state... </td> </tr> <tr> <td class="h" > <a name="2229">2229</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> interactive => 0, </td> </tr> <tr> <td class="h" > <a name="2230">2230</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="2231">2231</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 120 </td> <td class="s"> bless($this,$classname); </td> </tr> <tr> <td class="h" > <a name="2232">2232</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2233">2233</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # start up a gnuplot </td> </tr> <tr> <td class="h" > <a name="2234">2234</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 222 </td> <td class="s"> _startGnuplot($this,'main'); </td> </tr> <tr> <td class="h" > <a name="2235">2235</a> </td> <td class="c3" > 22 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2235-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 121 </td> <td class="s"> _startGnuplot($this,'syntax') if($check_syntax); </td> </tr> <tr> <td class="h" > <a name="2236">2236</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2237">2237</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Parse and process all remaining parameters using output(), below. </td> </tr> <tr> <td class="h" > <a name="2238">2238</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 400 </td> <td class="s"> output($this, @_); </td> </tr> <tr> <td class="h" > <a name="2239">2239</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2240">2240</a> </td> <td class="c3" > 22 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2240-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 122 </td> <td class="s"> _logEvent($this, "startGnuplot() finished") if ($this->{options}{tee}); </td> </tr> <tr> <td class="h" > <a name="2241">2241</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2242">2242</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 479 </td> <td class="s"> return $this; </td> </tr> <tr> <td class="h" > <a name="2243">2243</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2244">2244</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2245">2245</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2246">2246</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # output - set output terminal and options. </td> </tr> <tr> <td class="h" > <a name="2247">2247</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2248">2248</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="2249">2249</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2250">2250</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 output </td> </tr> <tr> <td class="h" > <a name="2251">2251</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2252">2252</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="2253">2253</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2254">2254</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $window->output( $device ); </td> </tr> <tr> <td class="h" > <a name="2255">2255</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $window->output( $device, %device_options ); </td> </tr> <tr> <td class="h" > <a name="2256">2256</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $window->output( $device, %device_options, {plot_options} ); </td> </tr> <tr> <td class="h" > <a name="2257">2257</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $window->output( %device_options, {plot_options} ); </td> </tr> <tr> <td class="h" > <a name="2258">2258</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $window->output( %device_options ); </td> </tr> <tr> <td class="h" > <a name="2259">2259</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2260">2260</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2261">2261</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2262">2262</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Sets the output device and options for a Gnuplot object. If you omit </td> </tr> <tr> <td class="h" > <a name="2263">2263</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the C<$device> name, then you get the gnuplot default device (generally </td> </tr> <tr> <td class="h" > <a name="2264">2264</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<x11>, C<wxt>, or C<aqua>, depending on platform). </td> </tr> <tr> <td class="h" > <a name="2265">2265</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2266">2266</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can control the output device of a PDL::Graphics::Gnuplot object on </td> </tr> <tr> <td class="h" > <a name="2267">2267</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the fly. That is useful, for example, to replot several versions of the </td> </tr> <tr> <td class="h" > <a name="2268">2268</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> same plot to different output devices (interactive and hardcopy). </td> </tr> <tr> <td class="h" > <a name="2269">2269</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2270">2270</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Gnuplot interprets terminal options differently per device. </td> </tr> <tr> <td class="h" > <a name="2271">2271</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Graphics::Gnuplot attempts to interpret some of the more common </td> </tr> <tr> <td class="h" > <a name="2272">2272</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ones in a common way. In particular: </td> </tr> <tr> <td class="h" > <a name="2273">2273</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2274">2274</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="2275">2275</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2276">2276</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item size </td> </tr> <tr> <td class="h" > <a name="2277">2277</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2278">2278</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Most drivers support a "size" option to specify the size of the output </td> </tr> <tr> <td class="h" > <a name="2279">2279</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plotting surface. The format is [$width, $height, $unit]; the </td> </tr> <tr> <td class="h" > <a name="2280">2280</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> trailing unit string is optional but recommended, since the default </td> </tr> <tr> <td class="h" > <a name="2281">2281</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unit of length changes from device to device. </td> </tr> <tr> <td class="h" > <a name="2282">2282</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2283">2283</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The unit string can be in, cm, mm, px, char, or pt. Pixels are taken </td> </tr> <tr> <td class="h" > <a name="2284">2284</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> to be 1 point in size (72 pixels per inch) and dimensions are computed </td> </tr> <tr> <td class="h" > <a name="2285">2285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> accordingly. Characters are taken to be 12 point in size (6 per </td> </tr> <tr> <td class="h" > <a name="2286">2286</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> inch). </td> </tr> <tr> <td class="h" > <a name="2287">2287</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2288">2288</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item output </td> </tr> <tr> <td class="h" > <a name="2289">2289</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2290">2290</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This option actually sets the object's "output" option for most terminal </td> </tr> <tr> <td class="h" > <a name="2291">2291</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> devices; that changes the file to which the plot will be written. Some </td> </tr> <tr> <td class="h" > <a name="2292">2292</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> devices, notably X11 and Aqua, don't make proper use of "output"; for those </td> </tr> <tr> <td class="h" > <a name="2293">2293</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> devices, specifying "output" in the object constructor actually sets the </td> </tr> <tr> <td class="h" > <a name="2294">2294</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> appropriate terminal option (e.g. "window" in the X11 terminal). </td> </tr> <tr> <td class="h" > <a name="2295">2295</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is described as a "plot option" in the Gnuplot manual, but it is </td> </tr> <tr> <td class="h" > <a name="2296">2296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> treated as a setup variable and parsed with the setup/terminal options here </td> </tr> <tr> <td class="h" > <a name="2297">2297</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in the constructor. </td> </tr> <tr> <td class="h" > <a name="2298">2298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2299">2299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you don't specify an output device, plots will go to sequentially-numbered </td> </tr> <tr> <td class="h" > <a name="2300">2300</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> files of the form C<Plot-E<lt>nE<gt>.E<lt>sufE<gt>> in your current working </td> </tr> <tr> <td class="h" > <a name="2301">2301</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> directory. In that case, PDL::Graphics::Gnuplot will report (on STDERR) </td> </tr> <tr> <td class="h" > <a name="2302">2302</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> where the plot ended up. </td> </tr> <tr> <td class="h" > <a name="2303">2303</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2304">2304</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item enhanced </td> </tr> <tr> <td class="h" > <a name="2305">2305</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2306">2306</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is a flag that indicates whether to enable Gnuplot's enhanced text </td> </tr> <tr> <td class="h" > <a name="2307">2307</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> processing (e.g. for superscripts and subscripts). Set it to a false </td> </tr> <tr> <td class="h" > <a name="2308">2308</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> value for plain text, to a true value for enhanced text (which includes </td> </tr> <tr> <td class="h" > <a name="2309">2309</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> LaTeX-like markup for super/sub scripts and fonts). </td> </tr> <tr> <td class="h" > <a name="2310">2310</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2311">2311</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item aa </td> </tr> <tr> <td class="h" > <a name="2312">2312</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2313">2313</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For certain pixel-grid terminals (currently only C<pncairo> and </td> </tr> <tr> <td class="h" > <a name="2314">2314</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<png>, as of v2.012), you can specify an antialiasing factor for the </td> </tr> <tr> <td class="h" > <a name="2315">2315</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> output. The output is rendered oversized by a factor of C<aa>, then </td> </tr> <tr> <td class="h" > <a name="2316">2316</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> scaled down using C<PDL::Transform>. Fixed font sized, line widths, </td> </tr> <tr> <td class="h" > <a name="2317">2317</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> and point sizes are autoscaled -- but you must handle variable ones </td> </tr> <tr> <td class="h" > <a name="2318">2318</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> explicitly. </td> </tr> <tr> <td class="h" > <a name="2319">2319</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2320">2320</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Antialiasing is done in the gamma=2.2 approximation, to match the sRGB </td> </tr> <tr> <td class="h" > <a name="2321">2321</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> coding that most pixel image files use. (See PDL::Transform::Color </td> </tr> <tr> <td class="h" > <a name="2322">2322</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for more information). </td> </tr> <tr> <td class="h" > <a name="2323">2323</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2324">2324</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="2325">2325</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2326">2326</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For a brief description of the terminal options that any one device supports, </td> </tr> <tr> <td class="h" > <a name="2327">2327</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> you can run PDL::Graphics::Gnuplot::terminfo(). </td> </tr> <tr> <td class="h" > <a name="2328">2328</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2329">2329</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> As with plot options, terminal options can be abbreviated to the shortest </td> </tr> <tr> <td class="h" > <a name="2330">2330</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unique string -- so (e.g.) "size" can generally be abbreviated "si" and </td> </tr> <tr> <td class="h" > <a name="2331">2331</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "monochrome" can be abbreviated "mono" or "mo". </td> </tr> <tr> <td class="h" > <a name="2332">2332</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2333">2333</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2334">2334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2335">2335</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub output { </td> </tr> <tr> <td class="h" > <a name="2336">2336</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2336-1"> 23 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2336-1"> 1 </a> </td> <td > 252 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="2337">2337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2338">2338</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Check if the last passed-in parameter is a hash ref -- if it is, then it is plot options </td> </tr> <tr> <td class="h" > <a name="2339">2339</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 55 </td> <td class="s"> my $poh; </td> </tr> <tr> <td class="h" > <a name="2340">2340</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2340-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2340-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 354 </td> <td class="s"> if( (0+@_) && ref($_[$#_]) eq 'HASH') { </td> </tr> <tr> <td class="h" > <a name="2341">2341</a> </td> <td class="c0" > <a href="#2345"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $poh = pop @_; </td> </tr> <tr> <td class="h" > <a name="2342">2342</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2343">2343</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # parse plot options (if any) </td> </tr> <tr> <td class="h" > <a name="2344">2344</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2344-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 82 </td> <td class="s"> if($poh) { </td> </tr> <tr> <td class="h" > <a name="2345">2345</a> </td> <td class="c0" > <a href="#2357"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> options($this,$poh); </td> </tr> <tr> <td class="h" > <a name="2346">2346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2347">2347</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2348">2348</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If there are no arguments, we're not setting the terminal - so we need to </td> </tr> <tr> <td class="h" > <a name="2349">2349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ask gnuplot what it thinks the terminal is. Then we run it through the usual </td> </tr> <tr> <td class="h" > <a name="2350">2350</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # setting logic, to make sure we've got our terminal options parsing and </td> </tr> <tr> <td class="h" > <a name="2351">2351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # other switches set right (e.g. does the default terminal support mouse input?) </td> </tr> <tr> <td class="h" > <a name="2352">2352</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 107 </td> <td class="s"> my $terminal = ""; </td> </tr> <tr> <td class="h" > <a name="2353">2353</a> </td> <td class="c3" > 23 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2353-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2353-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 121 </td> <td class="s"> unless(@_ && (@_ % 2)) { </td> </tr> <tr> <td class="h" > <a name="2354">2354</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 18 </td> <td class="s"> _printGnuplotPipe($this, "main","show terminal\n"); </td> </tr> <tr> <td class="h" > <a name="2355">2355</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 26 </td> <td class="s"> my $show = _checkpoint($this, "main"); </td> </tr> <tr> <td class="h" > <a name="2356">2356</a> </td> <td class="c3" > 4 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2356-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 75 </td> <td class="s"> unless($show =~ s/^\s*terminal type is ((\w+)(.*[^\s])?)\s*$/$1/) { </td> </tr> <tr> <td class="h" > <a name="2357">2357</a> </td> <td class="c0" > <a href="#2370"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "You seem to be using the default terminal, but gnuplot was unwilling to report it!" </td> </tr> <tr> <td class="h" > <a name="2358">2358</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2359">2359</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 19 </td> <td class="s"> unshift(@_, $2); </td> </tr> <tr> <td class="h" > <a name="2360">2360</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2361">2361</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2362">2362</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2363">2363</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2363-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 8954 </td> <td class="s"> if(@_) { </td> </tr> <tr> <td class="h" > <a name="2364">2364</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Check that, if there is at least one more argument, it is recognizable as a terminal </td> </tr> <tr> <td class="h" > <a name="2365">2365</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 96 </td> <td class="s"> my $terminal = lc(shift); </td> </tr> <tr> <td class="h" > <a name="2366">2366</a> </td> <td class="c3" > 23 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2366-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 72 </td> <td class="s"> $terminal = 'dumb' if $terminal eq 'unknown'; </td> </tr> <tr> <td class="h" > <a name="2367">2367</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2368">2368</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Check the terminal list here! </td> </tr> <tr> <td class="h" > <a name="2369">2369</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2369-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 164 </td> <td class="s"> if(!exists($this->{valid_terms}->{$terminal})) { </td> </tr> <tr> <td class="h" > <a name="2370">2370</a> </td> <td class="c0" > <a href="#2371"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $s; </td> </tr> <tr> <td class="h" > <a name="2371">2371</a> </td> <td class="c0" > <a href="#2373"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> our $termTabSource; </td> </tr> <tr> <td class="h" > <a name="2372">2372</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2373">2373</a> </td> <td class="c0" > <a href="#2374"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2373-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(exists($this->{unknown_terms}->{$terminal})) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2374">2374</a> </td> <td class="c0" > <a href="#2381"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s = <<"FOO"; </td> </tr> <tr> <td class="h" > <a name="2375">2375</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Graphics::Gnuplot: Your gnuplot has terminal '$terminal' but it is not supported. </td> </tr> <tr> <td class="h" > <a name="2376">2376</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $terminal: $this->{unknown_terms}->{$terminal} </td> </tr> <tr> <td class="h" > <a name="2377">2377</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> FOO </td> </tr> <tr> <td class="h" > <a name="2378">2378</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2379">2379</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2380">2380</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif(exists($termTab->{$terminal})) { </td> </tr> <tr> <td class="h" > <a name="2381">2381</a> </td> <td class="c0" > <a href="#2387"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s = <<"FOO"; </td> </tr> <tr> <td class="h" > <a name="2382">2382</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Graphics::Gnuplot: your gnuplot appears not to support the terminal '$terminal'. </td> </tr> <tr> <td class="h" > <a name="2383">2383</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $terminal: $termTabSource->{$terminal}->{desc} [not in reported list from gnuplot] </td> </tr> <tr> <td class="h" > <a name="2384">2384</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> FOO </td> </tr> <tr> <td class="h" > <a name="2385">2385</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2386">2386</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else { </td> </tr> <tr> <td class="h" > <a name="2387">2387</a> </td> <td class="c0" > <a href="#2388"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s = "PDL::Graphics::Gnuplot: neither this module nor your gnuplot support '$terminal'.\n"; </td> </tr> <tr> <td class="h" > <a name="2388">2388</a> </td> <td class="c0" > <a href="#2389"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2388-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(exists($termTabSource->{$terminal})) { </td> </tr> <tr> <td class="h" > <a name="2389">2389</a> </td> <td class="c0" > <a href="#2391"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= " $terminal: $termTabSource->{$terminal}\n"; </td> </tr> <tr> <td class="h" > <a name="2390">2390</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2391">2391</a> </td> <td class="c0" > <a href="#2395"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= " $terminal: doesn't appear to be a gnuplot terminal name\n"; </td> </tr> <tr> <td class="h" > <a name="2392">2392</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2393">2393</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2394">2394</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2395">2395</a> </td> <td class="c0" > <a href="#2396"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "\nYou can use the 'terminfo' method for a list of available terminals.\n\n"; </td> </tr> <tr> <td class="h" > <a name="2396">2396</a> </td> <td class="c0" > <a href="#2423"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf($s); </td> </tr> <tr> <td class="h" > <a name="2397">2397</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2398">2398</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2399">2399</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Generate abbrevs on first invokation for each terminal type. </td> </tr> <tr> <td class="h" > <a name="2400">2400</a> </td> <td class="c3" > 23 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2400-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 191 </td> <td class="s"> unless($termTab->{$terminal}->{opt}->[1]) { </td> </tr> <tr> <td class="h" > <a name="2401">2401</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2 </td> <td class="s"> $termTab->{$terminal}->{opt}->[1] = _gen_abbrev_list(keys %{$termTab->{$terminal}->{opt}[0]}); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 30 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2402">2402</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s"> $termTab->{$terminal}->{opt}->[0]->{__unit__} = ['s','-']; # Hack so we can stash the unit string in there later. </td> </tr> <tr> <td class="h" > <a name="2403">2403</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2404">2404</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2405">2405</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 98 </td> <td class="s"> my $termOptions = {}; </td> </tr> <tr> <td class="h" > <a name="2406">2406</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2407">2407</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # parse "terminal" options </td> </tr> <tr> <td class="h" > <a name="2408">2408</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2408-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2408-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 279 </td> <td class="s"> if($termTab->{$terminal} && $termTab->{$terminal}->{opt}) { </td> </tr> <tr> <td class="h" > <a name="2409">2409</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2410">2410</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Stuff the default output filename into the options hash (will be overwritten if </td> </tr> <tr> <td class="h" > <a name="2411">2411</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the user specified an "output" option) </td> </tr> <tr> <td class="h" > <a name="2412">2412</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 203 </td> <td class="s"> $termOptions->{'output'} = $termTab->{$terminal}->{default_output}; </td> </tr> <tr> <td class="h" > <a name="2413">2413</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2414">2414</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Stuff the default size unit into the options hash, so that the parser has access to it. </td> </tr> <tr> <td class="h" > <a name="2415">2415</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 206 </td> <td class="s"> $termOptions->{'__unit__'} = $termTab->{$terminal}->{unit}; </td> </tr> <tr> <td class="h" > <a name="2416">2416</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2417">2417</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 404 </td> <td class="s"> _parseOptHash( $termOptions, $termTab->{$terminal}->{opt}, @_ ); </td> </tr> <tr> <td class="h" > <a name="2418">2418</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2419">2419</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Default the 'persist' option to 0, so that interactive windows behave nicely unless </td> </tr> <tr> <td class="h" > <a name="2420">2420</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # asked to stay. </td> </tr> <tr> <td class="h" > <a name="2421">2421</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2421-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2421-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 138 </td> <td class="s"> if (exists($termTab->{$terminal}{opt}[0]{persist}) and </td> </tr> <tr> <td class="h" > <a name="2422">2422</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !defined($termOptions->{persist}) ) { </td> </tr> <tr> <td class="h" > <a name="2423">2423</a> </td> <td class="c0" > <a href="#2429"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $termOptions->{persist} = 0; </td> </tr> <tr> <td class="h" > <a name="2424">2424</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2425">2425</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2426">2426</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Default the 'dashed' option to 1. </td> </tr> <tr> <td class="h" > <a name="2427">2427</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2427-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2427-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 139 </td> <td class="s"> if (exists($termTab->{$terminal}{opt}[0]{dashed}) and </td> </tr> <tr> <td class="h" > <a name="2428">2428</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !defined($termOptions->{dashed}) ) { </td> </tr> <tr> <td class="h" > <a name="2429">2429</a> </td> <td class="c0" > <a href="#2440"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $termOptions->{dashed} = 1; </td> </tr> <tr> <td class="h" > <a name="2430">2430</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2431">2431</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2432">2432</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Although 'output' is strictly speaking a terminal option, gnuplot treats it as a plot option -- so </td> </tr> <tr> <td class="h" > <a name="2433">2433</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we copy it into the main plot options hash to be emitted as part of the plot operation. </td> </tr> <tr> <td class="h" > <a name="2434">2434</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 108 </td> <td class="s"> $this->{options}{output} = $termOptions->{output}; </td> </tr> <tr> <td class="h" > <a name="2435">2435</a> </td> <td class="c3" > 23 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2435-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 77 </td> <td class="s"> $this->{wait} = $termOptions->{wait} if defined $termOptions->{wait}; </td> </tr> <tr> <td class="h" > <a name="2436">2436</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2437">2437</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### Deal with anti-aliasing scaling factors </td> </tr> <tr> <td class="h" > <a name="2438">2438</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2438-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 98 </td> <td class="s"> if( defined $termOptions->{aa}) { </td> </tr> <tr> <td class="h" > <a name="2439">2439</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $this->{aa} = $termOptions->{aa} </td> </tr> <tr> <td class="h" > <a name="2440">2440</a> </td> <td class="c0" > <a href="#2447"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2441">2441</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 128 </td> <td class="s"> $this->{aa} = 1; </td> </tr> <tr> <td class="h" > <a name="2442">2442</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2443">2443</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2444">2444</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### Set a default font size for better control </td> </tr> <tr> <td class="h" > <a name="2445">2445</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2445-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 88 </td> <td class="s"> unless(defined $termOptions->{font}) { </td> </tr> <tr> <td class="h" > <a name="2446">2446</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2446-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 83 </td> <td class="s"> if($termTab->{$terminal}->{opt}->[0]->{font}){ </td> </tr> <tr> <td class="h" > <a name="2447">2447</a> </td> <td class="c0" > <a href="#2453"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $termOptions->{font} = ',10'; </td> </tr> <tr> <td class="h" > <a name="2448">2448</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2449">2449</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2450">2450</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2451">2451</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### Terminals that support anti-aliasing all broadcast their format so that rpic can handle them. </td> </tr> <tr> <td class="h" > <a name="2452">2452</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2452-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 75 </td> <td class="s"> if( defined $termTab->{$terminal}->{image_format}) { </td> </tr> <tr> <td class="h" > <a name="2453">2453</a> </td> <td class="c0" > <a href="#2466"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{image_format}= $termTab->{$terminal}->{image_format}; </td> </tr> <tr> <td class="h" > <a name="2454">2454</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2455">2455</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 65 </td> <td class="s"> delete($this->{image_format}); </td> </tr> <tr> <td class="h" > <a name="2456">2456</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2457">2457</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2458">2458</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2459">2459</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 102 </td> <td class="s"> delete $termOptions->{output}; </td> </tr> <tr> <td class="h" > <a name="2460">2460</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2461">2461</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Emit the terminal options line for this terminal. </td> </tr> <tr> <td class="h" > <a name="2462">2462</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 322 </td> <td class="s"> $this->{options}{terminal} = join(" ", ($terminal, _emitOpts( $termOptions, $termTab->{$terminal}{opt} ))); </td> </tr> <tr> <td class="h" > <a name="2463">2463</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 77 </td> <td class="s"> $this->{terminal} = $terminal; </td> </tr> <tr> <td class="h" > <a name="2464">2464</a> </td> <td class="c3" > 23 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2464-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 220 </td> <td class="s"> $this->{mouse} = $termTab->{$terminal}{mouse} || 0; </td> </tr> <tr> <td class="h" > <a name="2465">2465</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2466">2466</a> </td> <td class="c0" > <a href="#2512"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "PDL::Graphics::Gnuplot doesn't support the device '$terminal', sorry\n\n Run PDL::Graphics::Gnuplot::terminfo() for a list of devices.\n\n"; </td> </tr> <tr> <td class="h" > <a name="2467">2467</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2468">2468</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2469">2469</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2470">2470</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 80 </td> <td class="s"> return $this; </td> </tr> <tr> <td class="h" > <a name="2471">2471</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2472">2472</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2473">2473</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2474">2474</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # DESTROY - required to make sure the subprocess is gone. </td> </tr> <tr> <td class="h" > <a name="2475">2475</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (no POD since it's not part of the usual API) </td> </tr> <tr> <td class="h" > <a name="2476">2476</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2477">2477</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub DESTROY </td> </tr> <tr> <td class="h" > <a name="2478">2478</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="2479">2479</a> </td> <td class="c3" > 21 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2479-1"> 21 </a> </td> <td >   </td> <td > 16153 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="2480">2480</a> </td> <td class="c3" > 21 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 112 </td> <td class="s"> _killGnuplot($this); </td> </tr> <tr> <td class="h" > <a name="2481">2481</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2482">2482</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2483">2483</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="2484">2484</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2485">2485</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 close </td> </tr> <tr> <td class="h" > <a name="2486">2486</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2487">2487</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="2488">2488</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2489">2489</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w=gpwin(); </td> </tr> <tr> <td class="h" > <a name="2490">2490</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot(xvals(5)); </td> </tr> <tr> <td class="h" > <a name="2491">2491</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->close; </td> </tr> <tr> <td class="h" > <a name="2492">2492</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2493">2493</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2494">2494</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2495">2495</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Close gnuplot process (actually just a synonym for restart) </td> </tr> <tr> <td class="h" > <a name="2496">2496</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2497">2497</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Some of the gnuplot terminals (e.g. pdf) don't write out a file </td> </tr> <tr> <td class="h" > <a name="2498">2498</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> promptly. The close method closes the associated gnuplot subprocess, </td> </tr> <tr> <td class="h" > <a name="2499">2499</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> forcing the file to be written out. It is implemented as a simple </td> </tr> <tr> <td class="h" > <a name="2500">2500</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> restart operation. </td> </tr> <tr> <td class="h" > <a name="2501">2501</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2502">2502</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The object preserves the plot state, so C<replot> and similar methods </td> </tr> <tr> <td class="h" > <a name="2503">2503</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> still work with the new subprocess. </td> </tr> <tr> <td class="h" > <a name="2504">2504</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2505">2505</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2506">2506</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2507">2507</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub close </td> </tr> <tr> <td class="h" > <a name="2508">2508</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="2509">2509</a> </td> <td class="c3" > 9 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2509-1"> 9 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2509-1"> 1 </a> </td> <td > 1428 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="2510">2510</a> </td> <td class="c3" > 9 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 65 </td> <td class="s"> restart($this); </td> </tr> <tr> <td class="h" > <a name="2511">2511</a> </td> <td class="c3" > 9 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2511-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2511-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 232 </td> <td class="s"> if(defined $this->{aa} && $this->{aa} && $this->{aa} != 1 && $this->{aa_ready}) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-3"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2512">2512</a> </td> <td class="c0" > <a href="#2513"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> eval "use PDL::Transform; use PDL::IO::Pic;"; # load when needed </td> </tr> <tr> <td class="h" > <a name="2513">2513</a> </td> <td class="c0" > <a href="#2514"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2513-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2513-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless( rpiccan($this->{image_format}) and wpiccan($this->{image_format}) ) { </td> </tr> <tr> <td class="h" > <a name="2514">2514</a> </td> <td class="c0" > <a href="#2515"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "Can not read/write $this->{image_format} for anti-aliasing. Skipping aa operation."; </td> </tr> <tr> <td class="h" > <a name="2515">2515</a> </td> <td class="c0" > <a href="#2517"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return; </td> </tr> <tr> <td class="h" > <a name="2516">2516</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2517">2517</a> </td> <td class="c0" > <a href="#2518"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $im = rpic($this->{options}{output},{FORMAT=>$this->{image_format}}); </td> </tr> <tr> <td class="h" > <a name="2518">2518</a> </td> <td class="c0" > <a href="#2519"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2518-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($im->ndims==3) { </td> </tr> <tr> <td class="h" > <a name="2519">2519</a> </td> <td class="c0" > <a href="#2522"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $im = $im->mv(0,-1); </td> </tr> <tr> <td class="h" > <a name="2520">2520</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2521">2521</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # gamma-correct before scaling, and put back after. </td> </tr> <tr> <td class="h" > <a name="2522">2522</a> </td> <td class="c0" > <a href="#2523"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $imf = ((float $im)/255.0)->clip(0,1) ** 2.2; </td> </tr> <tr> <td class="h" > <a name="2523">2523</a> </td> <td class="c0" > <a href="#2524"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $imf = $imf->match( [ $im->dim(0)/$this->{aa}, $im->dim(1)/$this->{aa} ], {method=>'h',blur=>0.5}); </td> </tr> <tr> <td class="h" > <a name="2524">2524</a> </td> <td class="c0" > <a href="#2525"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $imf->check_badflag; </td> </tr> <tr> <td class="h" > <a name="2525">2525</a> </td> <td class="c0" > <a href="#2526"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $im = byte(($imf ** (1/2.2)) * 255); </td> </tr> <tr> <td class="h" > <a name="2526">2526</a> </td> <td class="c0" > <a href="#2527"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2526-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($im->ndims==3){ </td> </tr> <tr> <td class="h" > <a name="2527">2527</a> </td> <td class="c0" > <a href="#2529"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $im = $im->mv(-1,0); </td> </tr> <tr> <td class="h" > <a name="2528">2528</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2529">2529</a> </td> <td class="c0" > <a href="#2613"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> wpic($im, $this->{options}{output}, {FORMAT=>$this->{image_format}}); </td> </tr> <tr> <td class="h" > <a name="2530">2530</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2531">2531</a> </td> <td class="c3" > 9 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 126 </td> <td class="s"> $this->{aa_ready} = 0; </td> </tr> <tr> <td class="h" > <a name="2532">2532</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2533">2533</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2534">2534</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="2535">2535</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2536">2536</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 restart </td> </tr> <tr> <td class="h" > <a name="2537">2537</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2538">2538</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="2539">2539</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2540">2540</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->restart(); </td> </tr> <tr> <td class="h" > <a name="2541">2541</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Graphics::Gnuplot::restart(); </td> </tr> <tr> <td class="h" > <a name="2542">2542</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2543">2543</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2544">2544</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2545">2545</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Restart the gnuplot backend for a plot object </td> </tr> <tr> <td class="h" > <a name="2546">2546</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2547">2547</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Occasionally the gnuplot backend can get into an unknown state. </td> </tr> <tr> <td class="h" > <a name="2548">2548</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<restart> kills the gnuplot backend and starts a new one, preserving </td> </tr> <tr> <td class="h" > <a name="2549">2549</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> state in the object. (i.e. C<replot> and similar functions work even </td> </tr> <tr> <td class="h" > <a name="2550">2550</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> with the new subprocess). </td> </tr> <tr> <td class="h" > <a name="2551">2551</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2552">2552</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Called with no arguments, C<restart> applies to the global plot object. </td> </tr> <tr> <td class="h" > <a name="2553">2553</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2554">2554</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2555">2555</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2556">2556</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # reset - stops and restarts the underlying gnuplot process for an object </td> </tr> <tr> <td class="h" > <a name="2557">2557</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *grestart = \&restart; </td> </tr> <tr> <td class="h" > <a name="2558">2558</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub restart { </td> </tr> <tr> <td class="h" > <a name="2559">2559</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2559-1"> 23 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2559-1"> 1 </a> </td> <td > 22558 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="2560">2560</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 79 </td> <td class="s"> my $dumpswitch = shift; </td> </tr> <tr> <td class="h" > <a name="2561">2561</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 87 </td> <td class="s"> my $localdumpvar = $this->{options}{dump}; </td> </tr> <tr> <td class="h" > <a name="2562">2562</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="2563">2563</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We restart the process when the dump option is switched on or off. </td> </tr> <tr> <td class="h" > <a name="2564">2564</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Since _killGnuplot uses _printGnuplotPipe, we have </td> </tr> <tr> <td class="h" > <a name="2565">2565</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # to hold the old state briefly while the old process is killed. </td> </tr> <tr> <td class="h" > <a name="2566">2566</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 97 </td> <td class="s"> local($this->{options}{dump}) = </td> </tr> <tr> <td class="h" > <a name="2567">2567</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2567-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 329 </td> <td class="s"> ($dumpswitch ? $this->{dumping} : $localdumpvar); </td> </tr> <tr> <td class="h" > <a name="2568">2568</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2569">2569</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 96 </td> <td class="s"> _killGnuplot($this); </td> </tr> <tr> <td class="h" > <a name="2570">2570</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2571">2571</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # When starting Gnuplot we use the {options}->{dump} flag as it should be. </td> </tr> <tr> <td class="h" > <a name="2572">2572</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 231 </td> <td class="s"> _startGnuplot($this,'main'); </td> </tr> <tr> <td class="h" > <a name="2573">2573</a> </td> <td class="c3" > 23 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2573-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 160 </td> <td class="s"> _startGnuplot($this,'syntax') if($check_syntax); </td> </tr> <tr> <td class="h" > <a name="2574">2574</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 97 </td> <td class="s"> $this->{options}{multiplot} = 0; </td> </tr> <tr> <td class="h" > <a name="2575">2575</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 155 </td> <td class="s"> undef $PDL::Graphics::Gnuplot::last_plotcmd; </td> </tr> <tr> <td class="h" > <a name="2576">2576</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 48 </td> <td class="s"> undef $PDL::Graphics::Gnuplot::last_testcmd; </td> </tr> <tr> <td class="h" > <a name="2577">2577</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 131 </td> <td class="s"> undef $this->{last_plotcmd}; </td> </tr> <tr> <td class="h" > <a name="2578">2578</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 316 </td> <td class="s"> undef $this->{last_testcmd}; </td> </tr> <tr> <td class="h" > <a name="2579">2579</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2580">2580</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2581">2581</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2582">2582</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="2583">2583</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2584">2584</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 reset </td> </tr> <tr> <td class="h" > <a name="2585">2585</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2586">2586</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="2587">2587</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2588">2588</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->reset() </td> </tr> <tr> <td class="h" > <a name="2589">2589</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2590">2590</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2591">2591</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2592">2592</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Clear state from the gnuplot backend </td> </tr> <tr> <td class="h" > <a name="2593">2593</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2594">2594</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Clears all plot option state from the underlying object. All plot </td> </tr> <tr> <td class="h" > <a name="2595">2595</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options except "terminal", "termoptions", "output", and "multiplot" </td> </tr> <tr> <td class="h" > <a name="2596">2596</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> are cleared. This is similar to the "reset" command supported by </td> </tr> <tr> <td class="h" > <a name="2597">2597</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gnuplot itself, and in fact it also causes a "reset" to be sent to </td> </tr> <tr> <td class="h" > <a name="2598">2598</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gnuplot. </td> </tr> <tr> <td class="h" > <a name="2599">2599</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2600">2600</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2601">2601</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2602">2602</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2603">2603</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *greset = \*reset; </td> </tr> <tr> <td class="h" > <a name="2604">2604</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub reset { </td> </tr> <tr> <td class="h" > <a name="2605">2605</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2605-1"> 4 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2605-1"> 1 </a> </td> <td > 19594 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="2606">2606</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 30 </td> <td class="s"> delete @{$this->{options}}{ </td> </tr> <tr> <td class="h" > <a name="2607">2607</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 25 </td> <td class="s"> grep !/(terminal|output|termoptions|multiplot)/, keys %{$this->{options}} </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 128 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2608">2608</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="2609">2609</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> my $checkpointMessage; </td> </tr> <tr> <td class="h" > <a name="2610">2610</a> </td> <td class="c3" > 4 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2610-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 22 </td> <td class="s"> if ($check_syntax) { </td> </tr> <tr> <td class="h" > <a name="2611">2611</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Send multiple newlines to avoid bugs in certain gnuplots, which </td> </tr> <tr> <td class="h" > <a name="2612">2612</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # appear to lose a character after reset. </td> </tr> <tr> <td class="h" > <a name="2613">2613</a> </td> <td class="c0" > <a href="#2614"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this, "syntax", "reset\n\n\n"); </td> </tr> <tr> <td class="h" > <a name="2614">2614</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $checkpointMessage = _checkpoint($this,"syntax"); </td> </tr> <tr> <td class="h" > <a name="2615">2615</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2616">2616</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 23 </td> <td class="s"> _printGnuplotPipe($this, "main", "reset\n\n\n"); </td> </tr> <tr> <td class="h" > <a name="2617">2617</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 20 </td> <td class="s"> $checkpointMessage = _checkpoint($this, "main"); </td> </tr> <tr> <td class="h" > <a name="2618">2618</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 18 </td> <td class="s"> $this->{replottable} = 0; </td> </tr> <tr> <td class="h" > <a name="2619">2619</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 90 </td> <td class="s"> delete $this->{last_plot}; </td> </tr> <tr> <td class="h" > <a name="2620">2620</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 31 </td> <td class="s"> return $this; </td> </tr> <tr> <td class="h" > <a name="2621">2621</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2622">2622</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2623">2623</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2624">2624</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2625">2625</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2626">2626</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Options setting routines </td> </tr> <tr> <td class="h" > <a name="2627">2627</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2628">2628</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2629">2629</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="2630">2630</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2631">2631</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 options </td> </tr> <tr> <td class="h" > <a name="2632">2632</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2633">2633</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="2634">2634</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2635">2635</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w = new PDL::Graphics::Gnuplot(); </td> </tr> <tr> <td class="h" > <a name="2636">2636</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->options( globalwith=>'lines' ); </td> </tr> <tr> <td class="h" > <a name="2637">2637</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> print %{$w->options()}; </td> </tr> <tr> <td class="h" > <a name="2638">2638</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2639">2639</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2640">2640</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2641">2641</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Set/get persistent plot options for a plot object </td> </tr> <tr> <td class="h" > <a name="2642">2642</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2643">2643</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The options method parses plot options into a gnuplot object on a </td> </tr> <tr> <td class="h" > <a name="2644">2644</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> cumulative basis, and returns the resultant options hash. </td> </tr> <tr> <td class="h" > <a name="2645">2645</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2646">2646</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If called as a sub rather than a method, options() changes the </td> </tr> <tr> <td class="h" > <a name="2647">2647</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> global gnuplot object. </td> </tr> <tr> <td class="h" > <a name="2648">2648</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2649">2649</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2650">2650</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2651">2651</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *option = \&options; </td> </tr> <tr> <td class="h" > <a name="2652">2652</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub options { </td> </tr> <tr> <td class="h" > <a name="2653">2653</a> </td> <td class="c3" > 11 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2653-1"> 11 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2653-1"> 1 </a> </td> <td > 12668 </td> <td class="s"> my ($me) = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="2654">2654</a> </td> <td class="c3" > 11 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2654-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 58 </td> <td class="s"> $me->{options} //= {}; </td> </tr> <tr> <td class="h" > <a name="2655">2655</a> </td> <td class="c3" > 11 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 94 </td> <td class="s"> _parseOptHash($me->{options}, $pOpt, @_); </td> </tr> <tr> <td class="h" > <a name="2656">2656</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> _parseOptHash($me->{last_plot}{options}, $pOpt, @_) </td> </tr> <tr> <td class="h" > <a name="2657">2657</a> </td> <td class="c3" > 9 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2657-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2657-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 112 </td> <td class="s"> if $me->{last_plot} && $me->{last_plot}{options}; </td> </tr> <tr> <td class="h" > <a name="2658">2658</a> </td> <td class="c3" > 9 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 57 </td> <td class="s"> return $me->{options}; </td> </tr> <tr> <td class="h" > <a name="2659">2659</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2660">2660</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2661">2661</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="2662">2662</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="2663">2663</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2664">2664</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # plot - the main API function to generate a plot. </td> </tr> <tr> <td class="h" > <a name="2665">2665</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2666">2666</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="2667">2667</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2668">2668</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 plot_generate </td> </tr> <tr> <td class="h" > <a name="2669">2669</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2670">2670</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2671">2671</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2672">2672</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Called with the same arguments as L</plot>, it returns the text that </td> </tr> <tr> <td class="h" > <a name="2673">2673</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> would be sent to Gnuplot. Exportable. </td> </tr> <tr> <td class="h" > <a name="2674">2674</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Added in 2.025. </td> </tr> <tr> <td class="h" > <a name="2675">2675</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2676">2676</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2677">2677</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2678">2678</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub plot_generate </td> </tr> <tr> <td class="h" > <a name="2679">2679</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="2680">2680</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2680-1"> 50 </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2680-1"> 1 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2680-1"> 1 </a> </td> <td > 1347 </td> <td class="s"> barf "plot_generate called with no arguments" unless @_; </td> </tr> <tr> <td class="h" > <a name="2681">2681</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s"> my ($plotchunks) = _obj_or_global(\@_)->_plot_generate(@_); </td> </tr> <tr> <td class="h" > <a name="2682">2682</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2682-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 33 </td> <td class="s"> join '', map ref $_ eq 'ARRAY' ? $_->[0] : ${$_->[0]}, @$plotchunks; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#2789"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2683">2683</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2684">2684</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2685">2685</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 gplot </td> </tr> <tr> <td class="h" > <a name="2686">2686</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2687">2687</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2688">2688</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2689">2689</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Plot method exported by default (synonym for "PDL::Graphics::Gnuplot::plot") </td> </tr> <tr> <td class="h" > <a name="2690">2690</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2691">2691</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 plot </td> </tr> <tr> <td class="h" > <a name="2692">2692</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2693">2693</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="2694">2694</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2695">2695</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This is the main plotting routine in PDL::Graphics::Gnuplot. </td> </tr> <tr> <td class="h" > <a name="2696">2696</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2697">2697</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Each C<plot()> call creates a new plot from whole cloth, either creating </td> </tr> <tr> <td class="h" > <a name="2698">2698</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or overwriting the output for that device. </td> </tr> <tr> <td class="h" > <a name="2699">2699</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2700">2700</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you want to add features to an existing plot, use C<replot>. </td> </tr> <tr> <td class="h" > <a name="2701">2701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2702">2702</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<plot()> understands the PDL bad value mechanism. Bad values are omitted </td> </tr> <tr> <td class="h" > <a name="2703">2703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> from the plot. </td> </tr> <tr> <td class="h" > <a name="2704">2704</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2705">2705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="2706">2706</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2707">2707</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w=gpwin(); </td> </tr> <tr> <td class="h" > <a name="2708">2708</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot({temp_plot_options}, # optional </td> </tr> <tr> <td class="h" > <a name="2709">2709</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> curve_options, data, data, ... , # curve_options are optional for the first plot </td> </tr> <tr> <td class="h" > <a name="2710">2710</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> curve_options, data, data, ... , </td> </tr> <tr> <td class="h" > <a name="2711">2711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> {temp_plot_options}); </td> </tr> <tr> <td class="h" > <a name="2712">2712</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2713">2713</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Most of the arguments are optional. </td> </tr> <tr> <td class="h" > <a name="2714">2714</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2715">2715</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> All of the extensive array of gnuplot plot styles are supported, including images and 3-D plots. </td> </tr> <tr> <td class="h" > <a name="2716">2716</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2717">2717</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for example </td> </tr> <tr> <td class="h" > <a name="2718">2718</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2719">2719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> use PDL::Graphics::Gnuplot qw(plot); </td> </tr> <tr> <td class="h" > <a name="2720">2720</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $x = sequence(101) - 50; </td> </tr> <tr> <td class="h" > <a name="2721">2721</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plot($x**2); </td> </tr> <tr> <td class="h" > <a name="2722">2722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2723">2723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> See main POD for PDL::Graphics::Gnuplot for details. </td> </tr> <tr> <td class="h" > <a name="2724">2724</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2725">2725</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can pass plot options into plot as either a leading or trailing hash ref, or both. </td> </tr> <tr> <td class="h" > <a name="2726">2726</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you pass both, the trailing hash ref is parsed last and overrides the leading hash. </td> </tr> <tr> <td class="h" > <a name="2727">2727</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2728">2728</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For debugging and curiosity purposes, the last plot command issued to gnuplot </td> </tr> <tr> <td class="h" > <a name="2729">2729</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> is maintained in a package global: C<$PDL::Graphics::Gnuplot::last_plotcmd>, and also </td> </tr> <tr> <td class="h" > <a name="2730">2730</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in each object as the {last_plotcmd} field. </td> </tr> <tr> <td class="h" > <a name="2731">2731</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2732">2732</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="2733">2733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2734">2734</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _plot_generate </td> </tr> <tr> <td class="h" > <a name="2735">2735</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="2736">2736</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#2736-1"> 102 </a> </td> <td >   </td> <td > 300 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="2737">2737</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 257 </td> <td class="s"> delete $this->{last_dashtype}; # implement dashtype state function for gnuplot>=5.0 </td> </tr> <tr> <td class="h" > <a name="2738">2738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2739">2739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Parse optional plot options - must be an array or hash ref, if present. </td> </tr> <tr> <td class="h" > <a name="2740">2740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Cheesy but hopefully effective method (from Dima): parse as plot options </td> </tr> <tr> <td class="h" > <a name="2741">2741</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # and if that throws an error treat 'em as curve options instead. </td> </tr> <tr> <td class="h" > <a name="2742">2742</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2743">2743</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is additionally complicated by the desire to make these *temporary* </td> </tr> <tr> <td class="h" > <a name="2744">2744</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # options -- so we don't accumulate the options in the main object options </td> </tr> <tr> <td class="h" > <a name="2745">2745</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # hash. </td> </tr> <tr> <td class="h" > <a name="2746">2746</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2747">2747</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The temporariness is accomplished by localizing $this->{options} and replacing </td> </tr> <tr> <td class="h" > <a name="2748">2748</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # it with either itself or the parsed copy of itself. </td> </tr> <tr> <td class="h" > <a name="2749">2749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2750">2750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2751">2751</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # As an additional DWIM to make Dima happy, we parse initial options as plot </td> </tr> <tr> <td class="h" > <a name="2752">2752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # options until encountering something that could conceivably be a curve option - </td> </tr> <tr> <td class="h" > <a name="2753">2753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # whereupon we switch to curve options. The DWIMming is done by checking individual </td> </tr> <tr> <td class="h" > <a name="2754">2754</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # option names to see if they (A) are NOT curve options and (B) are plot options. </td> </tr> <tr> <td class="h" > <a name="2755">2755</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We snarf up all such options and put 'em into a hash ref like they should have been. </td> </tr> <tr> <td class="h" > <a name="2756">2756</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 217 </td> <td class="s"> my @dwim_plot_options; </td> </tr> <tr> <td class="h" > <a name="2757">2757</a> </td> <td class="c3" > 102 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2757-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 882 </td> <td class="s"> while( 0+@_ and !(ref $_[0]) ) { </td> </tr> <tr> <td class="h" > <a name="2758">2758</a> </td> <td class="c3" > 52 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 188 </td> <td class="s"> my ($kk,$knum) = eval { _expand_abbrev($_[0], @$cOpt[1,2]) }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 52 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 387 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2759">2759</a> </td> <td class="c3" > 52 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2759-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 277 </td> <td class="s"> last if !$@; </td> </tr> <tr> <td class="h" > <a name="2760">2760</a> </td> <td class="c3" > 18 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 46 </td> <td class="s"> ($kk,$knum) = eval { _expand_abbrev($_[0], @$pOpt[1,2]) }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 18 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 65 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2761">2761</a> </td> <td class="c3" > 18 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2761-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 96 </td> <td class="s"> last if $@; </td> </tr> <tr> <td class="h" > <a name="2762">2762</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # It's a plot option and not a curve option -- pull it, and its argument, from the arg list and put them </td> </tr> <tr> <td class="h" > <a name="2763">2763</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # into @dwim_plot_options. </td> </tr> <tr> <td class="h" > <a name="2764">2764</a> </td> <td class="c3" > 18 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 144 </td> <td class="s"> push @dwim_plot_options, shift, shift; </td> </tr> <tr> <td class="h" > <a name="2765">2765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2766">2766</a> </td> <td class="c3" > 102 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2766-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 375 </td> <td class="s"> unshift @_, \@dwim_plot_options if @dwim_plot_options; </td> </tr> <tr> <td class="h" > <a name="2767">2767</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Any option parsing we do is ephemeral, so we have to localize the options hash, so we dclone it at </td> </tr> <tr> <td class="h" > <a name="2768">2768</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the start. If we're replotting, start with the last_plot options - which gets the same treatment even </td> </tr> <tr> <td class="h" > <a name="2769">2769</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # though it will be overwritten with its own clone on successful completion. That is so, if we fail, </td> </tr> <tr> <td class="h" > <a name="2770">2770</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the last_plot hash options hash remains unchanged in the object. </td> </tr> <tr> <td class="h" > <a name="2771">2771</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 212 </td> <td class="s"> my $o; </td> </tr> <tr> <td class="h" > <a name="2772">2772</a> </td> <td class="c3" > 102 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2772-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 328 </td> <td class="s"> if($this->{replotting}) { </td> </tr> <tr> <td class="h" > <a name="2773">2773</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 732 </td> <td class="s"> $o = dclone($this->{last_plot}{options}); </td> </tr> <tr> <td class="h" > <a name="2774">2774</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 24 </td> <td class="s"> $o->{terminal} = $this->{options}{terminal}; </td> </tr> <tr> <td class="h" > <a name="2775">2775</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 19 </td> <td class="s"> $o->{output} = $this->{options}{output}; </td> </tr> <tr> <td class="h" > <a name="2776">2776</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2777">2777</a> </td> <td class="c3" > 99 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 5868 </td> <td class="s"> $o = dclone($this->{options}); </td> </tr> <tr> <td class="h" > <a name="2778">2778</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2779">2779</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now parse the initial hash of plot options (if there is one) </td> </tr> <tr> <td class="h" > <a name="2780">2780</a> </td> <td class="c3" > 102 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2780-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 871 </td> <td class="s"> if ( (ref $_[0]) =~ m/^(HASH|ARRAY)/ ) { </td> </tr> <tr> <td class="h" > <a name="2781">2781</a> </td> <td class="c3" > 37 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 615 </td> <td class="s"> my $oo = dclone($o); </td> </tr> <tr> <td class="h" > <a name="2782">2782</a> </td> <td class="c3" > 37 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 102 </td> <td class="s"> eval { _parseOptHash( $oo, $pOpt, $_[0] ); }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 37 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 232 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2783">2783</a> </td> <td class="c3" > 37 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2783-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 161 </td> <td class="s"> if($@ =~ m/^No /) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2784">2784</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Found an unrecognized keyword -- clear the error and keep going. </td> </tr> <tr> <td class="h" > <a name="2785">2785</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (not a set of plot options) </td> </tr> <tr> <td class="h" > <a name="2786">2786</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 55 </td> <td class="s"> $@ = ""; </td> </tr> <tr> <td class="h" > <a name="2787">2787</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif($@) { </td> </tr> <tr> <td class="h" > <a name="2788">2788</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Some other actual exception -- pass it down the line. Oops. </td> </tr> <tr> <td class="h" > <a name="2789">2789</a> </td> <td class="c0" > <a href="#2803"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf $@ . " (while parsing presumed extra plot options at start of plot command)\n"; </td> </tr> <tr> <td class="h" > <a name="2790">2790</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2791">2791</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # worked! </td> </tr> <tr> <td class="h" > <a name="2792">2792</a> </td> <td class="c3" > 25 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 81 </td> <td class="s"> $o = $oo; </td> </tr> <tr> <td class="h" > <a name="2793">2793</a> </td> <td class="c3" > 25 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 66 </td> <td class="s"> shift @_; # pull argument off the start. </td> </tr> <tr> <td class="h" > <a name="2794">2794</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2795">2795</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2796">2796</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now look for and parse a trailing hash of plot options (if there is one) </td> </tr> <tr> <td class="h" > <a name="2797">2797</a> </td> <td class="c3" > 102 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2797-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2797-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 3526 </td> <td class="s"> if (@_ >= 2 and ((ref $_[-1])=~ /^(HASH)/)) { </td> </tr> <tr> <td class="h" > <a name="2798">2798</a> </td> <td class="c3" > 21 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 389 </td> <td class="s"> my $oo = dclone($o); </td> </tr> <tr> <td class="h" > <a name="2799">2799</a> </td> <td class="c3" > 21 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 88 </td> <td class="s"> eval { _parseOptHash( $oo, $pOpt, $_[-1] ); }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 21 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 146 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2800">2800</a> </td> <td class="c3" > 21 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2800-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 128 </td> <td class="s"> if ($@ =~ m/^No /) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2801">2801</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Found an unrecognized keyword -- clear the error and keep going. </td> </tr> <tr> <td class="h" > <a name="2802">2802</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (not a set of plot options) </td> </tr> <tr> <td class="h" > <a name="2803">2803</a> </td> <td class="c0" > <a href="#2806"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $@ = ""; </td> </tr> <tr> <td class="h" > <a name="2804">2804</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ($@) { </td> </tr> <tr> <td class="h" > <a name="2805">2805</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Some other actual exception -- pass it down the line. Oops. </td> </tr> <tr> <td class="h" > <a name="2806">2806</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf $@ . " (while parsing presumed extra plot options at end of plot command)\n"; </td> </tr> <tr> <td class="h" > <a name="2807">2807</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2808">2808</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # worked! </td> </tr> <tr> <td class="h" > <a name="2809">2809</a> </td> <td class="c3" > 21 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 98 </td> <td class="s"> $o = $oo; </td> </tr> <tr> <td class="h" > <a name="2810">2810</a> </td> <td class="c3" > 21 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 54 </td> <td class="s"> pop @_; # pull argument off the end. </td> </tr> <tr> <td class="h" > <a name="2811">2811</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2812">2812</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2813">2813</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Localize the options hash for uniform reference. Now the </td> </tr> <tr> <td class="h" > <a name="2814">2814</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # object options has the full parsed options, but it is fully localized -- </td> </tr> <tr> <td class="h" > <a name="2815">2815</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # it will revert to its pre-call state when we exit this block. </td> </tr> <tr> <td class="h" > <a name="2816">2816</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 373 </td> <td class="s"> local($this->{options}) = $o; </td> </tr> <tr> <td class="h" > <a name="2817">2817</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 444 </td> <td class="s"> local($this->{tmp_options}) = {}; </td> </tr> <tr> <td class="h" > <a name="2818">2818</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Make sure to reset the palette to the gnuplot default if it's not set here </td> </tr> <tr> <td class="h" > <a name="2819">2819</a> </td> <td class="c3" > 102 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2819-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 880 </td> <td class="s"> $this->{options}{palette} ||= []; </td> </tr> <tr> <td class="h" > <a name="2820">2820</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If we're replotting, then any remaining arguments need to be put </td> </tr> <tr> <td class="h" > <a name="2821">2821</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # *after* the arguments that we used for the last plot. </td> </tr> <tr> <td class="h" > <a name="2822">2822</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 32 </td> <td class="s"> unshift @_, @{$this->{last_plot}{args}}, !$_[0]->$_isa('PDL') ? () : {} </td> </tr> <tr> <td class="h" > <a name="2823">2823</a> </td> <td class="c3" > 102 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2823-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 345 </td> <td class="s"> if $this->{replotting}; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2824">2824</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2825">2825</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Set binary mode default. This is a bit complex since </td> </tr> <tr> <td class="h" > <a name="2826">2826</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we sometimes default to binary and sometimes to ascii. </td> </tr> <tr> <td class="h" > <a name="2827">2827</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 666 </td> <td class="s"> local $this->{binary_flag_defaulted} = !defined $this->{options}{binary}; </td> </tr> <tr> <td class="h" > <a name="2828">2828</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The user didn't explicitly set binary or non-binary mode. Try to guess. </td> </tr> <tr> <td class="h" > <a name="2829">2829</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Also, under Microsoft Windows binary mode seems to be dicey </td> </tr> <tr> <td class="h" > <a name="2830">2830</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (Juegen Mueck's hang test), so we default to ascii. </td> </tr> <tr> <td class="h" > <a name="2831">2831</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $this->{options}{binary} //= </td> </tr> <tr> <td class="h" > <a name="2832">2832</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Early gnuplot - ASCII mode only (by default) </td> </tr> <tr> <td class="h" > <a name="2833">2833</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ($this->{early_gnuplot} || $MS_io_braindamage) ? 0 : </td> </tr> <tr> <td class="h" > <a name="2834">2834</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Late-model gnuplot - binary for non time format plots, ASCII for time plots. </td> </tr> <tr> <td class="h" > <a name="2835">2835</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (Note: some transfer formats force binary transfer) </td> </tr> <tr> <td class="h" > <a name="2836">2836</a> </td> <td class="c3" > 102 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2836-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2836-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 2387 </td> <td class="s"> !grep +($this->{options}{$_."data"}||'') =~ m/time/, </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-3"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2837">2837</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/x x2 y y2 z cb/; </td> </tr> <tr> <td class="h" > <a name="2838">2838</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Store the current arguments into the state array for next time. </td> </tr> <tr> <td class="h" > <a name="2839">2839</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (This has to be done here because plot options need to be stripped out first). </td> </tr> <tr> <td class="h" > <a name="2840">2840</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2841">2841</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Because of all the local-variable shenanigans with overlain configs for this and that, </td> </tr> <tr> <td class="h" > <a name="2842">2842</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we unfortunately have to make a deep copy of the plot options for the last_plot. </td> </tr> <tr> <td class="h" > <a name="2843">2843</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The variables we deliberately do *not* deep copy, in case someone wants to use the </td> </tr> <tr> <td class="h" > <a name="2844">2844</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # modify-and-replot trick that is in the gnuplot documentation. (That trick uses </td> </tr> <tr> <td class="h" > <a name="2845">2845</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # file modification, but in-place modification of PDLs "feels right" too) </td> </tr> <tr> <td class="h" > <a name="2846">2846</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2847">2847</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We don't store the arguments if we're carrying the "ephemeral" flag - that is </td> </tr> <tr> <td class="h" > <a name="2848">2848</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # so we can do ephemeral markup of plots, without adding to the replot list. </td> </tr> <tr> <td class="h" > <a name="2849">2849</a> </td> <td class="c3" > 102 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2849-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 335 </td> <td class="s"> unless($this->{ephemeral}) { </td> </tr> <tr> <td class="h" > <a name="2850">2850</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1289 </td> <td class="s"> $this->{last_plot}{args} = [@_]; </td> </tr> <tr> <td class="h" > <a name="2851">2851</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3143 </td> <td class="s"> $this->{last_plot}{options} = dclone($this->{options}); </td> </tr> <tr> <td class="h" > <a name="2852">2852</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> delete $this->{last_plot}{options}{binary} </td> </tr> <tr> <td class="h" > <a name="2853">2853</a> </td> <td class="c3" > 102 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2853-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 863 </td> <td class="s"> if $this->{binary_flag_defaulted}; </td> </tr> <tr> <td class="h" > <a name="2854">2854</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2855">2855</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now parse the rest of the arguments into chunks. </td> </tr> <tr> <td class="h" > <a name="2856">2856</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 596 </td> <td class="s"> my ($chunks, $Ncurves) = parseArgs($this, @_); </td> </tr> <tr> <td class="h" > <a name="2857">2857</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2857-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 298 </td> <td class="s"> if (scalar @$chunks == 0) { barf "plot() was not given any data"; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#2891"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2858">2858</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2859">2859</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2860">2860</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now generate the plot command. </td> </tr> <tr> <td class="h" > <a name="2861">2861</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is complicated by the need to generate two separate commands -- </td> </tr> <tr> <td class="h" > <a name="2862">2862</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the main command (which goes into $plotcmd), and a separate test command </td> </tr> <tr> <td class="h" > <a name="2863">2863</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # that is intended to check syntax (and goes into $testcmd). </td> </tr> <tr> <td class="h" > <a name="2864">2864</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2865">2865</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We start by emitting the options string (and re-emitting it with the dumb </td> </tr> <tr> <td class="h" > <a name="2866">2866</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # terminal, for the test command), then emitting a mock-up of each </td> </tr> <tr> <td class="h" > <a name="2867">2867</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # chunk's plot/curve arguments into a single "plot" command line. This first </td> </tr> <tr> <td class="h" > <a name="2868">2868</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # line doesn't contain the data specifier, only a fence string. </td> </tr> <tr> <td class="h" > <a name="2869">2869</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2870">2870</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Then we cut up the command line into pieces at the fences, so that we can assemble the </td> </tr> <tr> <td class="h" > <a name="2871">2871</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # data specifiers and build a complete command line. </td> </tr> <tr> <td class="h" > <a name="2872">2872</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2873">2873</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="2874">2874</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Figure per-curve binary/ASCII mode, and fix up some of the option defaults based on context. </td> </tr> <tr> <td class="h" > <a name="2875">2875</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # In particular, gnuplot 4.4-4.6 don't handle image scaling correctly, so unless an xrange/yrange </td> </tr> <tr> <td class="h" > <a name="2876">2876</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # is specified we have to take care of it ourselves. </td> </tr> <tr> <td class="h" > <a name="2877">2877</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2878">2878</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is complicated in the case when there are multiple chunks, one of which is an image. </td> </tr> <tr> <td class="h" > <a name="2879">2879</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We can't set an overall range until we scan the whole collection of chunks. </td> </tr> <tr> <td class="h" > <a name="2880">2880</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 290 </td> <td class="s"> my ($im_ranges, $active_axes, $cbmin, $cbmax, @axes_by_chunkno) = ({}, {}); </td> </tr> <tr> <td class="h" > <a name="2881">2881</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 372 </td> <td class="s"> for my $i (0..$#$chunks) { </td> </tr> <tr> <td class="h" > <a name="2882">2882</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Allow global binary/ASCII flag to be overridden by per-curve binary/ASCII flag </td> </tr> <tr> <td class="h" > <a name="2883">2883</a> </td> <td class="c3" > 92 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2883-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 917 </td> <td class="s"> $chunks->[$i]{binaryCurveFlag} = $chunks->[$i]{binaryWith} // $this->{options}{binary}; </td> </tr> <tr> <td class="h" > <a name="2884">2884</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Figure which axes are active </td> </tr> <tr> <td class="h" > <a name="2885">2885</a> </td> <td class="c3" > 92 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2885-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 557 </td> <td class="s"> my $axis_str = $chunks->[$i]{options}{axes} // 'x1y1'; </td> </tr> <tr> <td class="h" > <a name="2886">2886</a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 295 </td> <td class="s"> my ($xax,$yax); </td> </tr> <tr> <td class="h" > <a name="2887">2887</a> </td> <td class="c3" > 92 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2887-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 639 </td> <td class="s"> if ($axis_str =~ m/x([12])y([12])/i) { </td> </tr> <tr> <td class="h" > <a name="2888">2888</a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 575 </td> <td class="s"> my ($x,$y) = ($1,$2); </td> </tr> <tr> <td class="h" > <a name="2889">2889</a> </td> <td class="c3" > 92 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2889-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 512 </td> <td class="s"> ($xax,$yax) = ($x==1 ? 'x' : 'x2', $y==1 ? 'y' : 'y2'); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2890">2890</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2891">2891</a> </td> <td class="c0" > <a href="#2892"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: axes specifier '$axis_str' doesn't make sense. Continuing anyway...\n"; </td> </tr> <tr> <td class="h" > <a name="2892">2892</a> </td> <td class="c0" > <a href="#2966"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> ($xax,$yax) = ('x','y'); </td> </tr> <tr> <td class="h" > <a name="2893">2893</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2894">2894</a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 348 </td> <td class="s"> $axes_by_chunkno[$i] = [$xax,$yax]; </td> </tr> <tr> <td class="h" > <a name="2895">2895</a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 709 </td> <td class="s"> $_++ for @$active_axes{$xax, $yax}; </td> </tr> <tr> <td class="h" > <a name="2896">2896</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Everything else in this block is an image fix </td> </tr> <tr> <td class="h" > <a name="2897">2897</a> </td> <td class="c3" > 92 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2897-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 343 </td> <td class="s"> next unless($chunks->[$i]{imgFlag}); </td> </tr> <tr> <td class="h" > <a name="2898">2898</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Fix up gnuplot color scaling bug/misfeature for RGB images </td> </tr> <tr> <td class="h" > <a name="2899">2899</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Here, we accumulate min/max color ranges across *all* imagelike chunks, </td> </tr> <tr> <td class="h" > <a name="2900">2900</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # so mixing rgb and palette images will scale right. </td> </tr> <tr> <td class="h" > <a name="2901">2901</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2901-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 69 </td> <td class="s"> if(!defined( $this->{options}{cbrange} )) { </td> </tr> <tr> <td class="h" > <a name="2902">2902</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 68 </td> <td class="s"> my $with = $chunks->[$i]{options}{with}[0]; </td> </tr> <tr> <td class="h" > <a name="2903">2903</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 35 </td> <td class="s"> my $slice = "-1"; </td> </tr> <tr> <td class="h" > <a name="2904">2904</a> </td> <td class="c3" > 17 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2904-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 60 </td> <td class="s"> $slice = "-3:-1" if $with eq 'rgbimage'; </td> </tr> <tr> <td class="h" > <a name="2905">2905</a> </td> <td class="c3" > 17 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2905-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 50 </td> <td class="s"> $slice = "-4:-2" if $with eq 'rgbalpha'; </td> </tr> <tr> <td class="h" > <a name="2906">2906</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Sometimes data comes in that has BAD values but they are </td> </tr> <tr> <td class="h" > <a name="2907">2907</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # not marked as such, which messes up the cbmin &c. calc. </td> </tr> <tr> <td class="h" > <a name="2908">2908</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2908-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 54 </td> <td class="s"> if ($PDL::Bad::Status){ </td> </tr> <tr> <td class="h" > <a name="2909">2909</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $chunks->[$i]->{data}->[0]->inplace->setvaltobad( </td> </tr> <tr> <td class="h" > <a name="2910">2910</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 134 </td> <td class="s"> $chunks->[$i]->{data}->[0]->type->badvalue)->check_badflag; </td> </tr> <tr> <td class="h" > <a name="2911">2911</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2912">2912</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 244265 </td> <td class="s"> my $bolus = $chunks->[$i]->{data}->[0]->slice($slice); </td> </tr> <tr> <td class="h" > <a name="2913">2913</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Convert NaNs to bad if possible. This is slow -- </td> </tr> <tr> <td class="h" > <a name="2914">2914</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # need to fix the minmax &c. operators in PDL to ignore NaNs on command; </td> </tr> <tr> <td class="h" > <a name="2915">2915</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # currently the default behavior is that NaN poisons the whole min/max </td> </tr> <tr> <td class="h" > <a name="2916">2916</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # operation. </td> </tr> <tr> <td class="h" > <a name="2917">2917</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 13818 </td> <td class="s"> my ($cmin,$cmax) = $bolus->where(isfinite($bolus))->minmax; </td> </tr> <tr> <td class="h" > <a name="2918">2918</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2918-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2918-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 126442 </td> <td class="s"> $cbmin = $cmin if( !defined($cbmin) or $cmin < $cbmin ); </td> </tr> <tr> <td class="h" > <a name="2919">2919</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2919-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2919-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 129 </td> <td class="s"> $cbmax = $cmax if( !defined($cbmax) or $cmax < $cbmax ); </td> </tr> <tr> <td class="h" > <a name="2920">2920</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2921">2921</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Do image ranging. </td> </tr> <tr> <td class="h" > <a name="2922">2922</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is necessary to tighten up the boundaries around images -- gnuplot ranging </td> </tr> <tr> <td class="h" > <a name="2923">2923</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # has a wart in that case, where image boundaries are extended to the nearest round </td> </tr> <tr> <td class="h" > <a name="2924">2924</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # number of pixels by default. </td> </tr> <tr> <td class="h" > <a name="2925">2925</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2926">2926</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We implement that here by accumulating the largest extent covered by images. </td> </tr> <tr> <td class="h" > <a name="2927">2927</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If there are images and no xrange/yrange was set by the user, we set it to that. </td> </tr> <tr> <td class="h" > <a name="2928">2928</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 28 </td> <td class="s"> my $z; # temp. holding space for xrange/yrange for this chunk </td> </tr> <tr> <td class="h" > <a name="2929">2929</a> </td> <td class="c3" > 17 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2929-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 78 </td> <td class="s"> if ($chunks->[$i]{ArrayRec} eq 'array') { </td> </tr> <tr> <td class="h" > <a name="2930">2930</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 68 </td> <td class="s"> $z = [-0.5, $chunks->[$i]{data}[0]->dim(1) - 0.5]; </td> </tr> <tr> <td class="h" > <a name="2931">2931</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2932">2932</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 63 </td> <td class="s"> my($xmin,$xmax) = $chunks->[$i]{data}[0]->slice("(0)")->minmax; </td> </tr> <tr> <td class="h" > <a name="2933">2933</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 44810 </td> <td class="s"> my($dx) = ($xmax-$xmin) / $chunks->[$i]{data}[0]->dim(1) * 0.5; </td> </tr> <tr> <td class="h" > <a name="2934">2934</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 51 </td> <td class="s"> $z = [$xmin - $dx, $xmax + $dx]; </td> </tr> <tr> <td class="h" > <a name="2935">2935</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2936">2936</a> </td> <td class="c3" > 17 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2936-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 178 </td> <td class="s"> $im_ranges->{$xax} //= [undef, undef]; </td> </tr> <tr> <td class="h" > <a name="2937">2937</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2937-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2937-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 83 </td> <td class="s"> $im_ranges->{$xax}[0] = $z->[0] if( !defined( $im_ranges->{$xax}[0] ) or $z->[0] < $im_ranges->{$xax}[0] ); </td> </tr> <tr> <td class="h" > <a name="2938">2938</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2938-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2938-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 71 </td> <td class="s"> $im_ranges->{$xax}[1] = $z->[1] if( !defined( $im_ranges->{$xax}[1] ) or $z->[1] > $im_ranges->{$xax}[1] ); </td> </tr> <tr> <td class="h" > <a name="2939">2939</a> </td> <td class="c3" > 17 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2939-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 63 </td> <td class="s"> if($chunks->[$i]->{ArrayRec} eq 'array') { </td> </tr> <tr> <td class="h" > <a name="2940">2940</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 30 </td> <td class="s"> $z= [ -0.5, $chunks->[$i]{data}[0]->dim(2) - 0.5 ]; </td> </tr> <tr> <td class="h" > <a name="2941">2941</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2942">2942</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 63 </td> <td class="s"> my ($ymin,$ymax) = $chunks->[$i]{data}[0]->slice("(1)")->minmax; </td> </tr> <tr> <td class="h" > <a name="2943">2943</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 43939 </td> <td class="s"> my($dy) = ($ymax-$ymin) / $chunks->[$i]{data}[0]->dim(2) * 0.5; </td> </tr> <tr> <td class="h" > <a name="2944">2944</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 51 </td> <td class="s"> $z = [$ymin - $dy, $ymax + $dy]; </td> </tr> <tr> <td class="h" > <a name="2945">2945</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2946">2946</a> </td> <td class="c3" > 17 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2946-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 160 </td> <td class="s"> $im_ranges->{$yax} //= [undef, undef]; </td> </tr> <tr> <td class="h" > <a name="2947">2947</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2947-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2947-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 77 </td> <td class="s"> $im_ranges->{$yax}[0] = $z->[0] if( !defined( $im_ranges->{$yax}[0] ) or $z->[0] < $im_ranges->{$yax}[0] ); </td> </tr> <tr> <td class="h" > <a name="2948">2948</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2948-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2948-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 100 </td> <td class="s"> $im_ranges->{$yax}[1] = $z->[1] if( !defined( $im_ranges->{$yax}[1] ) or $z->[1] > $im_ranges->{$yax}[1] ); </td> </tr> <tr> <td class="h" > <a name="2949">2949</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2950">2950</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="2951">2951</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If image xrange/yrange has been set, check it against the maximum extent of other types of </td> </tr> <tr> <td class="h" > <a name="2952">2952</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # data. If other types of data exceed the image xrange/yrange, then delete the corresponding </td> </tr> <tr> <td class="h" > <a name="2953">2953</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # element of image xrange/yrange, to allow gnuplot to autoscale. </td> </tr> <tr> <td class="h" > <a name="2954">2954</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is complicated (of course) by the fact that the user can omit the ordinate - so we have </td> </tr> <tr> <td class="h" > <a name="2955">2955</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # to detect the missing-ordinate case and use the dimension instead. </td> </tr> <tr> <td class="h" > <a name="2956">2956</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="2957">2957</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We don't actually keep the non-image range limits, since we want to fall back to gnuplot's </td> </tr> <tr> <td class="h" > <a name="2958">2958</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # axis estimator in the case where a non-image curve is setting the size of the axis. </td> </tr> <tr> <td class="h" > <a name="2959">2959</a> </td> <td class="c3" > 85 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2959-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 416 </td> <td class="s"> if ( 0 + (keys %$im_ranges) ) { </td> </tr> <tr> <td class="h" > <a name="2960">2960</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 35 </td> <td class="s"> my $ranges = {}; </td> </tr> <tr> <td class="h" > <a name="2961">2961</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 84 </td> <td class="s"> for my $i (grep !$chunks->[$_]{imgFlag}, 0..$#$chunks) { </td> </tr> <tr> <td class="h" > <a name="2962">2962</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12 </td> <td class="s"> my ($cxr, $cyr); </td> </tr> <tr> <td class="h" > <a name="2963">2963</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2963-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 13 </td> <td class="s"> if($chunks->[$i]{ArrayRec} eq 'array') { </td> </tr> <tr> <td class="h" > <a name="2964">2964</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s"> my $data = $chunks->[$i]{data}; </td> </tr> <tr> <td class="h" > <a name="2965">2965</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2965-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 13 </td> <td class="s"> if ( $chunks->[$i]{cdims}==2 ) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2966">2966</a> </td> <td class="c0" > <a href="#2967"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $cxr = [0, $data->[0]->dim(1)]; </td> </tr> <tr> <td class="h" > <a name="2967">2967</a> </td> <td class="c0" > <a href="#2972"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $cyr = [0, $data->[1]->dim(2)]; </td> </tr> <tr> <td class="h" > <a name="2968">2968</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ( $chunks->[$i]->{cdims}==1 ) { </td> </tr> <tr> <td class="h" > <a name="2969">2969</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> $cxr = [0, $data->[0]->dim(0)]; </td> </tr> <tr> <td class="h" > <a name="2970">2970</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s"> $cyr = [$data->[0]->minmax]; </td> </tr> <tr> <td class="h" > <a name="2971">2971</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2972">2972</a> </td> <td class="c0" > <a href="#2973"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: Found an 'impossible' case in autoranging. Your plot is probably OK.\n\tplease file a bug report for PDL::Graphics::Gnuplot version $VERSION\n"; </td> </tr> <tr> <td class="h" > <a name="2973">2973</a> </td> <td class="c0" > <a href="#2976"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> next; </td> </tr> <tr> <td class="h" > <a name="2974">2974</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2975">2975</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="2976">2976</a> </td> <td class="c0" > <a href="#2977"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $cxr = [ PDL->topdl($chunks->[$i]{data}[0])->minmax ]; </td> </tr> <tr> <td class="h" > <a name="2977">2977</a> </td> <td class="c0" > <a href="#3005"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $cyr = [ PDL->topdl($chunks->[$i]{data}[1])->minmax ]; </td> </tr> <tr> <td class="h" > <a name="2978">2978</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2979">2979</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 22 </td> <td class="s"> my ($xax,$yax) = @{$axes_by_chunkno[$i]}[0,1]; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2980">2980</a> </td> <td class="c3" > 1 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2980-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 15 </td> <td class="s"> $ranges->{$xax} //= [undef,undef]; </td> </tr> <tr> <td class="h" > <a name="2981">2981</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2981-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2981-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s"> $ranges->{$xax}[0] = $cxr->[0] if( !defined( $ranges->{$xax}[0] ) or $cxr->[0] < $ranges->{$xax}[0]); </td> </tr> <tr> <td class="h" > <a name="2982">2982</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2982-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2982-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s"> $ranges->{$xax}[1] = $cxr->[1] if( !defined( $ranges->{$xax}[1] ) or $cxr->[1] > $ranges->{$xax}[1]); </td> </tr> <tr> <td class="h" > <a name="2983">2983</a> </td> <td class="c3" > 1 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2983-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 13 </td> <td class="s"> $ranges->{$yax} //= [undef,undef]; </td> </tr> <tr> <td class="h" > <a name="2984">2984</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2984-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2984-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 5 </td> <td class="s"> $ranges->{$yax}[0] = $cyr->[0] if( !defined( $ranges->{$yax}[0] ) or $cyr->[0] < $ranges->{$yax}[0]); </td> </tr> <tr> <td class="h" > <a name="2985">2985</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2985-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2985-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s"> $ranges->{$yax}[1] = $cyr->[1] if( !defined( $ranges->{$yax}[1] ) or $cyr->[1] > $ranges->{$yax}[1]); </td> </tr> <tr> <td class="h" > <a name="2986">2986</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2987">2987</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Having accumulated the max/min values for non-image plots on this axis, </td> </tr> <tr> <td class="h" > <a name="2988">2988</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if one of them goes past the image, then void the im_range for that axis </td> </tr> <tr> <td class="h" > <a name="2989">2989</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # in that direction (to allow gnuplot to autoscale that axis in that direction). </td> </tr> <tr> <td class="h" > <a name="2990">2990</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 105 </td> <td class="s"> for my $ax (grep defined($ranges->{$_}), keys %$im_ranges) { </td> </tr> <tr> <td class="h" > <a name="2991">2991</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $im_ranges->{$ax}[0] = undef if defined($im_ranges->{$ax}[0]) and </td> </tr> <tr> <td class="h" > <a name="2992">2992</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> defined($ranges->{$ax}[0]) and </td> </tr> <tr> <td class="h" > <a name="2993">2993</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2993-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2993-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 21 </td> <td class="s"> $ranges->{$ax}[0] < $im_ranges->{$ax}[0]; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2994">2994</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $im_ranges->{$ax}[1] = undef if defined($im_ranges->{$ax}[1]) and </td> </tr> <tr> <td class="h" > <a name="2995">2995</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> defined($ranges->{$ax}[1]) and </td> </tr> <tr> <td class="h" > <a name="2996">2996</a> </td> <td class="c3" > 2 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#2996-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#2996-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 19 </td> <td class="s"> $ranges->{$ax}[1] > $im_ranges->{$ax}[1]; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="2997">2997</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2998">2998</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="2999">2999</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3000">3000</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Fix up cbrange if necessary. </td> </tr> <tr> <td class="h" > <a name="3001">3001</a> </td> <td class="c3" > 85 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3001-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3001-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 607 </td> <td class="s"> if( defined($cbmin) or defined($cbmax) ) { </td> </tr> <tr> <td class="h" > <a name="3002">3002</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3002-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3002-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 177 </td> <td class="s"> $cbmin = undef if(defined($cbmin) and "$cbmin" =~ m/nan/i); </td> </tr> <tr> <td class="h" > <a name="3003">3003</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3003-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3003-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 146 </td> <td class="s"> $cbmax = undef if(defined($cbmax) and "$cbmax" =~ m/nan/i); </td> </tr> <tr> <td class="h" > <a name="3004">3004</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3004-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 47 </td> <td class="s"> if($cbmin==$cbmax) { </td> </tr> <tr> <td class="h" > <a name="3005">3005</a> </td> <td class="c0" > <a href="#3006"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $cbmin -= 0.1; </td> </tr> <tr> <td class="h" > <a name="3006">3006</a> </td> <td class="c0" > <a href="#3023"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $cbmax += 0.1; </td> </tr> <tr> <td class="h" > <a name="3007">3007</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3008">3008</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 111 </td> <td class="s"> $this->{tmp_options}{cbrange} = [$cbmin, $cbmax]; </td> </tr> <tr> <td class="h" > <a name="3009">3009</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3010">3010</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3011">3011</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now reconcile all of the <axis>range stuff for the plot itself, </td> </tr> <tr> <td class="h" > <a name="3012">3012</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # and set it as a temporary plot option. </td> </tr> <tr> <td class="h" > <a name="3013">3013</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3014">3014</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Remember, the purpose of this whole shenanigan is to fix up image ranging. </td> </tr> <tr> <td class="h" > <a name="3015">3015</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Axes whose values are set by option only or by non-image curves only are just fine. </td> </tr> <tr> <td class="h" > <a name="3016">3016</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (Maybe it would have been better to just submit a gnuplot patch...) </td> </tr> <tr> <td class="h" > <a name="3017">3017</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 261 </td> <td class="s"> for my $k (keys %$im_ranges) { </td> </tr> <tr> <td class="h" > <a name="3018">3018</a> </td> <td class="c3" > 34 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 79 </td> <td class="s"> my $rkey = $k."range"; </td> </tr> <tr> <td class="h" > <a name="3019">3019</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Calculate the widest-range merge of any supplied plot options and curve options </td> </tr> <tr> <td class="h" > <a name="3020">3020</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # for this axis. </td> </tr> <tr> <td class="h" > <a name="3021">3021</a> </td> <td class="c3" > 34 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3021-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 194 </td> <td class="s"> my $po_range = $this->{options}{$rkey} // [undef,undef]; </td> </tr> <tr> <td class="h" > <a name="3022">3022</a> </td> <td class="c3" > 34 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3022-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 107 </td> <td class="s"> if( defined( $chunks->[0]->{options}{$rkey} ) ) { </td> </tr> <tr> <td class="h" > <a name="3023">3023</a> </td> <td class="c0" > <a href="#3024"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $z = $chunks->[0]->{options}{$rkey}; </td> </tr> <tr> <td class="h" > <a name="3024">3024</a> </td> <td class="c0" > <a href="#3025"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3024-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3024-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $po_range->[0] = $z->[0] if( !defined($po_range->[0]) or (defined($z->[0]) and $z->[0] < $po_range->[0]) ); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3025">3025</a> </td> <td class="c0" > <a href="#3050"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3025-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3025-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $po_range->[1] = $z->[1] if( !defined($po_range->[1]) or (defined($z->[1]) and $z->[1] > $po_range->[1]) ); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3026">3026</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3027">3027</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If an image range exists for this axis, use it for any default (undef) values. </td> </tr> <tr> <td class="h" > <a name="3028">3028</a> </td> <td class="c3" > 34 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3028-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 150 </td> <td class="s"> $po_range->[0] //= $im_ranges->{$k}[0]; </td> </tr> <tr> <td class="h" > <a name="3029">3029</a> </td> <td class="c3" > 34 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3029-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 146 </td> <td class="s"> $po_range->[1] //= $im_ranges->{$k}[1]; </td> </tr> <tr> <td class="h" > <a name="3030">3030</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now we have a merged range value whose limits come from supplied options or existing image "curve"s. </td> </tr> <tr> <td class="h" > <a name="3031">3031</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Normal curves are not represented and appear as undef, allowing gnuplot to pix the axis range. </td> </tr> <tr> <td class="h" > <a name="3032">3032</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Create a temporary option representing this. </td> </tr> <tr> <td class="h" > <a name="3033">3033</a> </td> <td class="c3" > 34 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 118 </td> <td class="s"> $this->{tmp_options}{$rkey} = $po_range; </td> </tr> <tr> <td class="h" > <a name="3034">3034</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3035">3035</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3036">3036</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If we're working with time data, and timefmt isn't set, then default it to '%s'. </td> </tr> <tr> <td class="h" > <a name="3037">3037</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $this->{options}{timefmt} = '%s' </td> </tr> <tr> <td class="h" > <a name="3038">3038</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if !defined($this->{options}{timefmt}) and </td> </tr> <tr> <td class="h" > <a name="3039">3039</a> </td> <td class="c3" > 85 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3039-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3039-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 1860 </td> <td class="s"> grep +($this->{options}{$_."data"} // "") =~ m/^time/i, qw/x x2 y y2 z cb/; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3040">3040</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3041">3041</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now deal with x2/y2 ticks. By default they don't get turned on (blech). So if they are </td> </tr> <tr> <td class="h" > <a name="3042">3042</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # active, we turn them on with default values -- and also turn off mirroring for the x/y ticks. </td> </tr> <tr> <td class="h" > <a name="3043">3043</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (all by default -- if the user sets those options then keep those) </td> </tr> <tr> <td class="h" > <a name="3044">3044</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 247 </td> <td class="s"> for my $ax(qw/x y/) { </td> </tr> <tr> <td class="h" > <a name="3045">3045</a> </td> <td class="c3" > 170 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 286 </td> <td class="s"> my $ax2 = $ax.'2'; </td> </tr> <tr> <td class="h" > <a name="3046">3046</a> </td> <td class="c3" > 170 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 281 </td> <td class="s"> my $axtics = $ax.'tics'; </td> </tr> <tr> <td class="h" > <a name="3047">3047</a> </td> <td class="c3" > 170 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 262 </td> <td class="s"> my $ax2tics = $ax2.'tics'; </td> </tr> <tr> <td class="h" > <a name="3048">3048</a> </td> <td class="c3" > 170 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3048-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 563 </td> <td class="s"> if($active_axes->{$ax2}) { </td> </tr> <tr> <td class="h" > <a name="3049">3049</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Turn on the axis2 tick marks </td> </tr> <tr> <td class="h" > <a name="3050">3050</a> </td> <td class="c0" > <a href="#3051"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3050-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless ( exists($this->{options}{$ax2tics} ) ) { </td> </tr> <tr> <td class="h" > <a name="3051">3051</a> </td> <td class="c0" > <a href="#3057"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{tmp_options}{$ax2tics} = ' '; </td> </tr> <tr> <td class="h" > <a name="3052">3052</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3053">3053</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Turn off the axis1 mirror marks by default. </td> </tr> <tr> <td class="h" > <a name="3054">3054</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Do this with a 'topcmds' command since it will be overridden </td> </tr> <tr> <td class="h" > <a name="3055">3055</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # by whatever comes below (and axis1 ticks are on by default anyway, </td> </tr> <tr> <td class="h" > <a name="3056">3056</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # so if the user doesn't want them he will have turned them off). </td> </tr> <tr> <td class="h" > <a name="3057">3057</a> </td> <td class="c0" > <a href="#3058"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3057-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $tc = $this->{options}->{topcmds} // ""; </td> </tr> <tr> <td class="h" > <a name="3058">3058</a> </td> <td class="c0" > <a href="#3059"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $tc .= "\nset $axtics nomirror\n"; </td> </tr> <tr> <td class="h" > <a name="3059">3059</a> </td> <td class="c0" > <a href="#3169"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{options}->{topcmds} = $tc; </td> </tr> <tr> <td class="h" > <a name="3060">3060</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3061">3061</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3062">3062</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="3063">3063</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Merge in any temporary options that have been set by the argument parsing. </td> </tr> <tr> <td class="h" > <a name="3064">3064</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (e.g. prefrobnicators can set plot options via $this->{tmp_options}). This is OK since </td> </tr> <tr> <td class="h" > <a name="3065">3065</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we've already localized $this->{options}. </td> </tr> <tr> <td class="h" > <a name="3066">3066</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3066-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 314 </td> <td class="s"> if (my $t_o = $this->{tmp_options}) { </td> </tr> <tr> <td class="h" > <a name="3067">3067</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 273 </td> <td class="s"> @{$this->{options}}{keys %$t_o} = values %$t_o; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 339 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3068">3068</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3069">3069</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="3070">3070</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Emit the plot options lines that go above the plot command. We do this </td> </tr> <tr> <td class="h" > <a name="3071">3071</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # twice -- once for the main plot command and once for the syntax test. </td> </tr> <tr> <td class="h" > <a name="3072">3072</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 321 </td> <td class="s"> my $plotOptionsString = ""; </td> </tr> <tr> <td class="h" > <a name="3073">3073</a> </td> <td class="c3" > 85 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3073-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 279 </td> <td class="s"> if($this->{options}->{multiplot}) { </td> </tr> <tr> <td class="h" > <a name="3074">3074</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # In multiplot we can't issue a "reset", because that would end the multiplot. </td> </tr> <tr> <td class="h" > <a name="3075">3075</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This should take care of the major view stuff, but state might leak in here! </td> </tr> <tr> <td class="h" > <a name="3076">3076</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> $plotOptionsString .= <<'POS'; </td> </tr> <tr> <td class="h" > <a name="3077">3077</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> set size noratio </td> </tr> <tr> <td class="h" > <a name="3078">3078</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> set view noequal </td> </tr> <tr> <td class="h" > <a name="3079">3079</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> set view 60,30,1.0,1.0 </td> </tr> <tr> <td class="h" > <a name="3080">3080</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset label </td> </tr> <tr> <td class="h" > <a name="3081">3081</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset xlabel </td> </tr> <tr> <td class="h" > <a name="3082">3082</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset ylabel </td> </tr> <tr> <td class="h" > <a name="3083">3083</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset cblabel </td> </tr> <tr> <td class="h" > <a name="3084">3084</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset xrange </td> </tr> <tr> <td class="h" > <a name="3085">3085</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset yrange </td> </tr> <tr> <td class="h" > <a name="3086">3086</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset link x2 </td> </tr> <tr> <td class="h" > <a name="3087">3087</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset link y2 </td> </tr> <tr> <td class="h" > <a name="3088">3088</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> POS </td> </tr> <tr> <td class="h" > <a name="3089">3089</a> </td> <td class="c3" > 4 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3089-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 23 </td> <td class="s"> $plotOptionsString .= <<'POS' if $gp_numversion >= 5.002; </td> </tr> <tr> <td class="h" > <a name="3090">3090</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset nonlinear x </td> </tr> <tr> <td class="h" > <a name="3091">3091</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset nonlinear y </td> </tr> <tr> <td class="h" > <a name="3092">3092</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset nonlinear x2 </td> </tr> <tr> <td class="h" > <a name="3093">3093</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unset nonlinear y2 </td> </tr> <tr> <td class="h" > <a name="3094">3094</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> POS </td> </tr> <tr> <td class="h" > <a name="3095">3095</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3096">3096</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # In single-plot mode, just issue a reset. Multiple newlines to work around a gnuplot problem. </td> </tr> <tr> <td class="h" > <a name="3097">3097</a> </td> <td class="c3" > 81 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 210 </td> <td class="s"> $plotOptionsString .= "reset\n\n\n"; </td> </tr> <tr> <td class="h" > <a name="3098">3098</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3099">3099</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 484 </td> <td class="s"> $plotOptionsString .= _emitOpts($this->{options}, $pOpt); </td> </tr> <tr> <td class="h" > <a name="3100">3100</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="3101">3101</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Generate the plot command with the fences in it instead of data specifiers. </td> </tr> <tr> <td class="h" > <a name="3102">3102</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (The fences are emitted in _emitOpts and contained in the global $cmdFence) </td> </tr> <tr> <td class="h" > <a name="3103">3103</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $plotcmd = ($this->{options}{'3d'} ? "splot " : "plot ") . </td> </tr> <tr> <td class="h" > <a name="3104">3104</a> </td> <td class="c3" > 85 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3104-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 586 </td> <td class="s"> join ", ", map _emitOpts($chunks->[$_]{options}, $cOpt, $this), </td> </tr> <tr> <td class="h" > <a name="3105">3105</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 0..$#$chunks; </td> </tr> <tr> <td class="h" > <a name="3106">3106</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="3107">3107</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Break up the plot command so we can insert data specifiers in each location </td> </tr> <tr> <td class="h" > <a name="3108">3108</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 696 </td> <td class="s"> my @plotcmds = split /$cmdFence/, $plotcmd; </td> </tr> <tr> <td class="h" > <a name="3109">3109</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3109-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 296 </td> <td class="s"> barf "This should never happen, but it did. That's odd. I give up." </td> </tr> <tr> <td class="h" > <a name="3110">3110</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if @plotcmds != @$chunks+1; </td> </tr> <tr> <td class="h" > <a name="3111">3111</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="3112">3112</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Rebuild the plot command by inserting the format string and data spec for each piece, </td> </tr> <tr> <td class="h" > <a name="3113">3113</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # instead of the placeholder fence strings. </td> </tr> <tr> <td class="h" > <a name="3114">3114</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3115">3115</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Image-style formats use binary matrix format rather than ordinary binary format and must </td> </tr> <tr> <td class="h" > <a name="3116">3116</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # be handled slightly differently. </td> </tr> <tr> <td class="h" > <a name="3117">3117</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3118">3118</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 289 </td> <td class="s"> $plotcmd = my $fl = shift @plotcmds; </td> </tr> <tr> <td class="h" > <a name="3119">3119</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3119-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 308 </td> <td class="s"> my $testcmd = $check_syntax ? $fl : undef; </td> </tr> <tr> <td class="h" > <a name="3120">3120</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 464 </td> <td class="s"> for my $i (0..$#plotcmds) { </td> </tr> <tr> <td class="h" > <a name="3121">3121</a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 169 </td> <td class="s"> my ($pchunk, $tchunk); </td> </tr> <tr> <td class="h" > <a name="3122">3122</a> </td> <td class="c3" > 92 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3122-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 306 </td> <td class="s"> if ( $chunks->[$i]{cdims} == 2 ) { </td> </tr> <tr> <td class="h" > <a name="3123">3123</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # It's an image -- always use binary to push the image out. </td> </tr> <tr> <td class="h" > <a name="3124">3124</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The map statement ensures the main and test cmd get identical sprintf templates. </td> </tr> <tr> <td class="h" > <a name="3125">3125</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 106 </td> <td class="s"> my $fstr = "%double" x $chunks->[$i]{tuplesize}; </td> </tr> <tr> <td class="h" > <a name="3126">3126</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ($pchunk, $tchunk) = map </td> </tr> <tr> <td class="h" > <a name="3127">3127</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sprintf(' "-" binary %s=(%s) format="%s" %s', </td> </tr> <tr> <td class="h" > <a name="3128">3128</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $chunks->[$i]{ArrayRec}, </td> </tr> <tr> <td class="h" > <a name="3129">3129</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $_, </td> </tr> <tr> <td class="h" > <a name="3130">3130</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $fstr, </td> </tr> <tr> <td class="h" > <a name="3131">3131</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $plotcmds[$i]), </td> </tr> <tr> <td class="h" > <a name="3132">3132</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> join(",", ($chunks->[$i]{data}[0]->slice("(0)")->dims)), </td> </tr> <tr> <td class="h" > <a name="3133">3133</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3133-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 110 </td> <td class="s"> $check_syntax ? join(",", (("1") x ($chunks->[$i]{data}[0]->ndims - 1))) : (); </td> </tr> <tr> <td class="h" > <a name="3134">3134</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Mock up test data - just a single data point for each (8 is the size of an IEEE double) </td> </tr> <tr> <td class="h" > <a name="3135">3135</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3135-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 764 </td> <td class="s"> $chunks->[$i]{testdata} = "." x ($chunks->[$i]->{tuplesize} * 8) if $check_syntax; </td> </tr> <tr> <td class="h" > <a name="3136">3136</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3137">3137</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # It's a non-image plot. Calculate whether binary or ASCII output. </td> </tr> <tr> <td class="h" > <a name="3138">3138</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # First, check the per-chunk flag (if set). If it's not, then </td> </tr> <tr> <td class="h" > <a name="3139">3139</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # use the global flag. </td> </tr> <tr> <td class="h" > <a name="3140">3140</a> </td> <td class="c3" > 75 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3140-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 225 </td> <td class="s"> if( $chunks->[$i]{binaryCurveFlag} ) { </td> </tr> <tr> <td class="h" > <a name="3141">3141</a> </td> <td class="c3" > 53 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 242 </td> <td class="s"> my $fstr = "%double" x $chunks->[$i]{tuplesize}; </td> </tr> <tr> <td class="h" > <a name="3142">3142</a> </td> <td class="c3" > 53 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 114 </td> <td class="s"> my $first = $chunks->[$i]{data}[0]; </td> </tr> <tr> <td class="h" > <a name="3143">3143</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The specifiers are identical, except that one gets a length of 1 and the other gets </td> </tr> <tr> <td class="h" > <a name="3144">3144</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the correct length. The map statement ensures the main and test cmd get identical </td> </tr> <tr> <td class="h" > <a name="3145">3145</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # sprintf templates. </td> </tr> <tr> <td class="h" > <a name="3146">3146</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ($pchunk, $tchunk) = map </td> </tr> <tr> <td class="h" > <a name="3147">3147</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sprintf(" '-' binary %s=(%d) format=\"%s\" %s", </td> </tr> <tr> <td class="h" > <a name="3148">3148</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $chunks->[$i]{ArrayRec}, </td> </tr> <tr> <td class="h" > <a name="3149">3149</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $_, </td> </tr> <tr> <td class="h" > <a name="3150">3150</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $fstr, </td> </tr> <tr> <td class="h" > <a name="3151">3151</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $plotcmds[$i]), </td> </tr> <tr> <td class="h" > <a name="3152">3152</a> </td> <td class="c3" > 53 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3152-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 770 </td> <td class="s"> (ref($first) eq 'ARRAY') ? 0+@{$first} : $first->dim(0), $check_syntax ? 1 : (); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 5 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 79 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3153">3153</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # test data is a string containing the data to send -- just garbage. Use '.' to aid </td> </tr> <tr> <td class="h" > <a name="3154">3154</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # byte counting in the test string. </td> </tr> <tr> <td class="h" > <a name="3155">3155</a> </td> <td class="c3" > 53 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3155-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 186 </td> <td class="s"> $chunks->[$i]{testdata} = $testdataunit_binary x ($chunks->[$i]{tuplesize}) if $check_syntax; </td> </tr> <tr> <td class="h" > <a name="3156">3156</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3157">3157</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ASCII transfer has been specified - plot command is easier, but the data are in ASCII. </td> </tr> <tr> <td class="h" > <a name="3158">3158</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 151 </td> <td class="s"> $pchunk = " \$PGG_data_$i ".$plotcmds[$i]; </td> </tr> <tr> <td class="h" > <a name="3159">3159</a> </td> <td class="c3" > 22 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3159-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 72 </td> <td class="s"> $tchunk = $pchunk if $check_syntax; </td> </tr> <tr> <td class="h" > <a name="3160">3160</a> </td> <td class="c3" > 22 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3160-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 104 </td> <td class="s"> $chunks->[$i]{testdata} = " 1 " x ($chunks->[$i]{tuplesize}) . "\ne\n" if $check_syntax; </td> </tr> <tr> <td class="h" > <a name="3161">3161</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3162">3162</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3163">3163</a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 246 </td> <td class="s"> $plotcmd .= $pchunk; </td> </tr> <tr> <td class="h" > <a name="3164">3164</a> </td> <td class="c3" > 92 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3164-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 350 </td> <td class="s"> $testcmd .= $tchunk if $check_syntax; </td> </tr> <tr> <td class="h" > <a name="3165">3165</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3166">3166</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 166 </td> <td class="s"> $plotcmd .= "\n"; </td> </tr> <tr> <td class="h" > <a name="3167">3167</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 174 </td> <td class="s"> our $last_testcmd; </td> </tr> <tr> <td class="h" > <a name="3168">3168</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3168-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 243 </td> <td class="s"> if ($check_syntax) { </td> </tr> <tr> <td class="h" > <a name="3169">3169</a> </td> <td class="c0" > <a href="#3170"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $postTestplotCheckpoint = 'xxxxxxx Plot succeeded xxxxxxx'; </td> </tr> <tr> <td class="h" > <a name="3170">3170</a> </td> <td class="c0" > <a href="#3171"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $print_checkpoint = "; print \"$postTestplotCheckpoint\""; </td> </tr> <tr> <td class="h" > <a name="3171">3171</a> </td> <td class="c0" > <a href="#3174"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $testcmd .= "$print_checkpoint\n"; </td> </tr> <tr> <td class="h" > <a name="3172">3172</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="3173">3173</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Put data and final checkpointing on the test command </td> </tr> <tr> <td class="h" > <a name="3174">3174</a> </td> <td class="c0" > <a href="#3176"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $testcmd .= join("", map $_->{testdata}, @$chunks); </td> </tr> <tr> <td class="h" > <a name="3175">3175</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Stash this plot command in the debugging variable </td> </tr> <tr> <td class="h" > <a name="3176">3176</a> </td> <td class="c0" > <a href="#3179"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{last_testcmd} = $last_testcmd = $plotOptionsString.$testcmd; </td> </tr> <tr> <td class="h" > <a name="3177">3177</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ####### </td> </tr> <tr> <td class="h" > <a name="3178">3178</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The commands are assembled. Now test 'em by sending the test command down the pipe. </td> </tr> <tr> <td class="h" > <a name="3179">3179</a> </td> <td class="c0" > <a href="#3180"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe( $this, "syntax", $plotOptionsString.$testcmd ); </td> </tr> <tr> <td class="h" > <a name="3180">3180</a> </td> <td class="c0" > <a href="#3181"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $checkpointMessage = _checkpoint($this,"syntax"); </td> </tr> <tr> <td class="h" > <a name="3181">3181</a> </td> <td class="c0" > <a href="#3183"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3181-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3181-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(defined $checkpointMessage && $checkpointMessage !~ /^$postTestplotCheckpoint/m) </td> </tr> <tr> <td class="h" > <a name="3182">3182</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="3183">3183</a> </td> <td class="c0" > <a href="#3184"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $checkpointMessage =~ s/$print_checkpoint//; </td> </tr> <tr> <td class="h" > <a name="3184">3184</a> </td> <td class="c0" > <a href="#3206"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Gnuplot error: \"$checkpointMessage\" while syntax-checking the plot cmd \"$testcmd\""; </td> </tr> <tr> <td class="h" > <a name="3185">3185</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3186">3186</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3187">3187</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3188">3188</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Send the PlotOptionsString </td> </tr> <tr> <td class="h" > <a name="3189">3189</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 380 </td> <td class="s"> my @plot_chunks = [$plotOptionsString]; </td> </tr> <tr> <td class="h" > <a name="3190">3190</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 208 </td> <td class="s"> my @plotshow_chunks = $plotOptionsString; </td> </tr> <tr> <td class="h" > <a name="3191">3191</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3192">3192</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Finally..... send the actual plot command to the gnuplot device. </td> </tr> <tr> <td class="h" > <a name="3193">3193</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3193-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 210 </td> <td class="s"> print "plot command is:\n$plotcmd\n" if $PDL::Graphics::Gnuplot::DEBUG; </td> </tr> <tr> <td class="h" > <a name="3194">3194</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 212 </td> <td class="s"> push @plot_chunks, [$plotcmd]; </td> </tr> <tr> <td class="h" > <a name="3195">3195</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 177 </td> <td class="s"> push @plotshow_chunks, $plotcmd; </td> </tr> <tr> <td class="h" > <a name="3196">3196</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 182 </td> <td class="s"> my $chunk_i = 0; </td> </tr> <tr> <td class="h" > <a name="3197">3197</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 210 </td> <td class="s"> for my $chunk (@$chunks) { </td> </tr> <tr> <td class="h" > <a name="3198">3198</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Gnuplot doesn't handle bad values, but it *does* know to </td> </tr> <tr> <td class="h" > <a name="3199">3199</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # omit nans. If we're running under a PDL that uses the </td> </tr> <tr> <td class="h" > <a name="3200">3200</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # bad value handling stuff, replace bad values with nan in the current chunk. </td> </tr> <tr> <td class="h" > <a name="3201">3201</a> </td> <td class="c3" > 92 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3201-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 304 </td> <td class="s"> if ($PDL::Bad::Status) { </td> </tr> <tr> <td class="h" > <a name="3202">3202</a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 287 </td> <td class="s"> for my $n (0..$#{$chunk->{data}}) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 331 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3203">3203</a> </td> <td class="c3" > 141 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 290 </td> <td class="s"> my $dp = $chunk->{data}[$n]; </td> </tr> <tr> <td class="h" > <a name="3204">3204</a> </td> <td class="c3" > 141 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3204-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 447 </td> <td class="s"> next if(ref($dp) eq 'ARRAY'); </td> </tr> <tr> <td class="h" > <a name="3205">3205</a> </td> <td class="c3" > 125 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3205-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 545 </td> <td class="s"> if ($dp->badflag) { </td> </tr> <tr> <td class="h" > <a name="3206">3206</a> </td> <td class="c0" > <a href="#3207"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $dp = $chunk->{data}[$n] = $dp + pdl(0.0); # force copy and convert to floating point </td> </tr> <tr> <td class="h" > <a name="3207">3207</a> </td> <td class="c0" > <a href="#3240"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $dp->where($dp->isbad) .= asin(pdl(1.1)); # NaN </td> </tr> <tr> <td class="h" > <a name="3208">3208</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3209">3209</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3210">3210</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3211">3211</a> </td> <td class="c3" > 92 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3211-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 359 </td> <td class="s"> if ($chunk->{cdims}==2) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3212">3212</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Currently all images are sent binary </td> </tr> <tr> <td class="h" > <a name="3213">3213</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 97 </td> <td class="s"> my $p = $chunk->{data}[0]->double->sever; </td> </tr> <tr> <td class="h" > <a name="3214">3214</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4040 </td> <td class="s"> push @plot_chunks, [${$p->get_dataref}, {binary => 1, data => 1 }]; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 138 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3215">3215</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 31 </td> <td class="s"> push @plotshow_chunks, " [ ".length(${$p->get_dataref})." bytes of binary image data ]\n"; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 108 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3216">3216</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ($chunk->{binaryCurveFlag}) { </td> </tr> <tr> <td class="h" > <a name="3217">3217</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Send in binary if the binary flag is set. </td> </tr> <tr> <td class="h" > <a name="3218">3218</a> </td> <td class="c3" > 53 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 113 </td> <td class="s"> my $p = pdl(@{$chunk->{data}})->mv(-1,0)->double->sever; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 53 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 423 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3219">3219</a> </td> <td class="c3" > 53 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12535 </td> <td class="s"> push @plot_chunks, [${$p->get_dataref}, {binary => 1, data => 1 }]; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 53 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 451 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3220">3220</a> </td> <td class="c3" > 53 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 119 </td> <td class="s"> push @plotshow_chunks, " [ ".length(${$p->get_dataref})." bytes of binary data ]\n"; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 53 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 324 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3221">3221</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3222">3222</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Assemble and dump the ASCII </td> </tr> <tr> <td class="h" > <a name="3223">3223</a> </td> <td class="c3" > 22 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3223-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 146 </td> <td class="s"> if ($chunk->{data}[0]->$_isa('PDL')) { </td> </tr> <tr> <td class="h" > <a name="3224">3224</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # It's a collection of PDL data only. </td> </tr> <tr> <td class="h" > <a name="3225">3225</a> </td> <td class="c3" > 20 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 308 </td> <td class="s"> my $p = pdl(@{$chunk->{data}})->slice(":,:"); # ensure at least 2 dims </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 20 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 162 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3226">3226</a> </td> <td class="c3" > 20 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4106 </td> <td class="s"> $p = $p->mv(-1,0); # tuple dim first, rows second </td> </tr> <tr> <td class="h" > <a name="3227">3227</a> </td> <td class="c3" > 20 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 254 </td> <td class="s"> splice @plotshow_chunks, 1, 0, "\$PGG_data_$chunk_i << [ ".$p->dim(1)." lines of ASCII data ]\n"; </td> </tr> <tr> <td class="h" > <a name="3228">3228</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Create a set of ASCII lines. If any of the elements of a given row are NaN or BAD, blank that line. </td> </tr> <tr> <td class="h" > <a name="3229">3229</a> </td> <td class="c3" > 20 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3229-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 15683 </td> <td class="s"> my $outbuf = join("\n", map $_->isfinite->all ? join(" ", $_->list) : "", $p->dog) . "\n"; </td> </tr> <tr> <td class="h" > <a name="3230">3230</a> </td> <td class="c3" > 20 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 912059 </td> <td class="s"> splice @plot_chunks, 1, 0, _emit_ascii($this, $chunk_i, $outbuf); </td> </tr> <tr> <td class="h" > <a name="3231">3231</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3232">3232</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # It's a collection of array ref data only. Assemble strings. </td> </tr> <tr> <td class="h" > <a name="3233">3233</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 24 </td> <td class="s"> my $data = $chunk->{data}; </td> </tr> <tr> <td class="h" > <a name="3234">3234</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4 </td> <td class="s"> my $last = $#{$data->[0]}; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3235">3235</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 13 </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="3236">3236</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 9 </td> <td class="s"> for my $i (0..$last) { </td> </tr> <tr> <td class="h" > <a name="3237">3237</a> </td> <td class="c3" > 6 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s"> for my $j (0..$#$data) { </td> </tr> <tr> <td class="h" > <a name="3238">3238</a> </td> <td class="c3" > 13 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 25 </td> <td class="s"> my $elem = $data->[$j][$i]; </td> </tr> <tr> <td class="h" > <a name="3239">3239</a> </td> <td class="c3" > 13 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3239-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 43 </td> <td class="s"> if ($elem =~ m/[\s\"]/) { # element contains whitespace or quotes </td> </tr> <tr> <td class="h" > <a name="3240">3240</a> </td> <td class="c0" > <a href="#3241"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $elem =~ s/\"/\\\"/g; # Escape quotes </td> </tr> <tr> <td class="h" > <a name="3241">3241</a> </td> <td class="c0" > <a href="#3242"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $elem =~ s/[\n\r]/ /g; # Remove any newlines or returns </td> </tr> <tr> <td class="h" > <a name="3242">3242</a> </td> <td class="c0" > <a href="#3264"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $elem = "\"$elem\""; # quote the element </td> </tr> <tr> <td class="h" > <a name="3243">3243</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3244">3244</a> </td> <td class="c3" > 13 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 55 </td> <td class="s"> $s .= "$elem "; # append the element to the output string. </td> </tr> <tr> <td class="h" > <a name="3245">3245</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3246">3246</a> </td> <td class="c3" > 6 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> $s .= "\n"; # add newline </td> </tr> <tr> <td class="h" > <a name="3247">3247</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3248">3248</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s"> splice @plotshow_chunks, 1, 0, "\$PGG_data_$chunk_i << e\n${s}e\n"; </td> </tr> <tr> <td class="h" > <a name="3249">3249</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 15 </td> <td class="s"> splice @plot_chunks, 1, 0, _emit_ascii($this, $chunk_i, $s); </td> </tr> <tr> <td class="h" > <a name="3250">3250</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3251">3251</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3252">3252</a> </td> <td class="c3" > 92 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 295 </td> <td class="s"> $chunk_i++; </td> </tr> <tr> <td class="h" > <a name="3253">3253</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3254">3254</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3255">3255</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Finally, finally ... send any required cleanup commands. This </td> </tr> <tr> <td class="h" > <a name="3256">3256</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # starts with {bottomcmds} and includes several things we don't want to persist, </td> </tr> <tr> <td class="h" > <a name="3257">3257</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # but that do by default. </td> </tr> <tr> <td class="h" > <a name="3258">3258</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 265 </td> <td class="s"> my $bc = $this->{options}{bottomcmds}; </td> </tr> <tr> <td class="h" > <a name="3259">3259</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3259-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 327 </td> <td class="s"> my $cleanup_cmd = !defined $bc ? "" : </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3260">3260</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref($bc) ne 'ARRAY' ? "$bc\n" : join("\n", @$bc, ""); </td> </tr> <tr> <td class="h" > <a name="3261">3261</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Mark the gnuplot as replottable - we now have a full set of plot parameters stashed away. </td> </tr> <tr> <td class="h" > <a name="3262">3262</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 216 </td> <td class="s"> $this->{replottable} = 1; </td> </tr> <tr> <td class="h" > <a name="3263">3263</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3263-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 237 </td> <td class="s"> if ($check_syntax) { </td> </tr> <tr> <td class="h" > <a name="3264">3264</a> </td> <td class="c0" > <a href="#3265"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this, "syntax", $cleanup_cmd); </td> </tr> <tr> <td class="h" > <a name="3265">3265</a> </td> <td class="c0" > <a href="#3266"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $_ .= $cleanup_cmd for $this->{last_testcmd}, $last_testcmd; </td> </tr> <tr> <td class="h" > <a name="3266">3266</a> </td> <td class="c0" > <a href="#3267"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $checkpointMessage = _checkpoint($this, "syntax", {printwarnings=>1}); </td> </tr> <tr> <td class="h" > <a name="3267">3267</a> </td> <td class="c0" > <a href="#3290"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3267-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Gnuplot error: \"$checkpointMessage\" after syntax-checking cleanup cmd \"$cleanup_cmd\"\n" </td> </tr> <tr> <td class="h" > <a name="3268">3268</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $checkpointMessage; </td> </tr> <tr> <td class="h" > <a name="3269">3269</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3270">3270</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 253 </td> <td class="s"> push @plot_chunks, [$cleanup_cmd]; </td> </tr> <tr> <td class="h" > <a name="3271">3271</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 187 </td> <td class="s"> push @plotshow_chunks, $cleanup_cmd; </td> </tr> <tr> <td class="h" > <a name="3272">3272</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Flag the output as rescalable if anti-aliasing is in effect </td> </tr> <tr> <td class="h" > <a name="3273">3273</a> </td> <td class="c3" > 85 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3273-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3273-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 475 </td> <td class="s"> $this->{aa_ready} = 1 if $this->{aa} && $this->{aa} != 1; </td> </tr> <tr> <td class="h" > <a name="3274">3274</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1969 </td> <td class="s"> (\@plot_chunks, join('', @plotshow_chunks)); </td> </tr> <tr> <td class="h" > <a name="3275">3275</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3276">3276</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3277">3277</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *gplot = \&plot; </td> </tr> <tr> <td class="h" > <a name="3278">3278</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub plot </td> </tr> <tr> <td class="h" > <a name="3279">3279</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="3280">3280</a> </td> <td class="c3" > 101 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3280-1"> 50 </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3280-1"> 101 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3280-1"> 1 </a> </td> <td > 135736 </td> <td class="s"> barf "Plot called with no arguments" unless @_; </td> </tr> <tr> <td class="h" > <a name="3281">3281</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 477 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="3282">3282</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 740 </td> <td class="s"> my ($plotchunks, $plotshow) = $this->_plot_generate(@_); </td> </tr> <tr> <td class="h" > <a name="3283">3283</a> </td> <td class="c3" > 84 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 219 </td> <td class="s"> _printGnuplotPipe($this, "main", @{shift @$plotchunks}); # options </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 84 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 375 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3284">3284</a> </td> <td class="c3" > 84 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 558 </td> <td class="s"> my $optionsWarnings = _checkpoint($this, "main", {printwarnings=>1}); </td> </tr> <tr> <td class="h" > <a name="3285">3285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Mask out some common useless chatter </td> </tr> <tr> <td class="h" > <a name="3286">3286</a> </td> <td class="c3" > 82 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 345 </td> <td class="s"> $optionsWarnings =~ s/^Terminal type set to .*$//m; </td> </tr> <tr> <td class="h" > <a name="3287">3287</a> </td> <td class="c3" > 82 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 228 </td> <td class="s"> $optionsWarnings =~ s/^Options are \'.*$//m; </td> </tr> <tr> <td class="h" > <a name="3288">3288</a> </td> <td class="c3" > 82 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3288-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 338 </td> <td class="s"> $optionsWarnings = '' if($optionsWarnings =~ m/^\s+$/s); </td> </tr> <tr> <td class="h" > <a name="3289">3289</a> </td> <td class="c3" > 82 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3289-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 259 </td> <td class="s"> if ($optionsWarnings) { </td> </tr> <tr> <td class="h" > <a name="3290">3290</a> </td> <td class="c0" > <a href="#3293"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3290-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if ($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="3291">3291</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # MS Windows can yield some chatter on the line, and it's not necessarily an </td> </tr> <tr> <td class="h" > <a name="3292">3292</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # error. So we don't barf, we only warn. Blech. </td> </tr> <tr> <td class="h" > <a name="3293">3293</a> </td> <td class="c0" > <a href="#3297"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: the gnuplot process gave some unexpected chatter during plot setup:\n$optionsWarnings\n\n"; </td> </tr> <tr> <td class="h" > <a name="3294">3294</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3295">3295</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Used to barf here, but now we just issue an announcement, since </td> </tr> <tr> <td class="h" > <a name="3296">3296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # some messages are warnings (rather than errors). </td> </tr> <tr> <td class="h" > <a name="3297">3297</a> </td> <td class="c0" > <a href="#3305"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: the gnuplot process gave some unexpected chatter:\n$optionsWarnings\n\n"; </td> </tr> <tr> <td class="h" > <a name="3298">3298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3299">3299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3300">3300</a> </td> <td class="c3" > 82 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 236 </td> <td class="s"> my $cleanup_chunk = pop @$plotchunks; </td> </tr> <tr> <td class="h" > <a name="3301">3301</a> </td> <td class="c3" > 82 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 451 </td> <td class="s"> for my $data_chunk (@$plotchunks) { </td> </tr> <tr> <td class="h" > <a name="3302">3302</a> </td> <td class="c3" > 171 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3302-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 649 </td> <td class="s"> if (ref $data_chunk eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="3303">3303</a> </td> <td class="c3" > 171 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 563 </td> <td class="s"> _printGnuplotPipe($this, "main", @$data_chunk); </td> </tr> <tr> <td class="h" > <a name="3304">3304</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3305">3305</a> </td> <td class="c0" > <a href="#3306"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this, "main", @$$data_chunk); </td> </tr> <tr> <td class="h" > <a name="3306">3306</a> </td> <td class="c0" > <a href="#3307"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $pipe = $this->{"err-main"}; </td> </tr> <tr> <td class="h" > <a name="3307">3307</a> </td> <td class="c0" > <a href="#3308"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $byte; </td> </tr> <tr> <td class="h" > <a name="3308">3308</a> </td> <td class="c0" > <a href="#3309"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> while (1) { </td> </tr> <tr> <td class="h" > <a name="3309">3309</a> </td> <td class="c0" > <a href="#3310"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> sysread $pipe, $byte, 1; </td> </tr> <tr> <td class="h" > <a name="3310">3310</a> </td> <td class="c0" > <a href="#3316"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3310-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3310-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> last if $byte eq \004 or $byte eq \000 or $byte eq '>'; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3311">3311</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="3312">3312</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3313">3313</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3314">3314</a> </td> <td class="c3" > 82 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 482 </td> <td class="s"> my $plotWarnings = _checkpoint($this, "main", {printwarnings=>1}); </td> </tr> <tr> <td class="h" > <a name="3315">3315</a> </td> <td class="c3" > 82 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3315-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 408 </td> <td class="s"> if ($plotWarnings) { </td> </tr> <tr> <td class="h" > <a name="3316">3316</a> </td> <td class="c0" > <a href="#3320"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3316-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf("the gnuplot process returned an error during plotting: $plotWarnings\n\n") </td> </tr> <tr> <td class="h" > <a name="3317">3317</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if !$MS_io_braindamage; </td> </tr> <tr> <td class="h" > <a name="3318">3318</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # MS Windows can yield some chatter on the line, and it's not necessarily an </td> </tr> <tr> <td class="h" > <a name="3319">3319</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # error. So we don't barf, we only warn. Blech. </td> </tr> <tr> <td class="h" > <a name="3320">3320</a> </td> <td class="c0" > <a href="#3324"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: the gnuplot process gave some unexpected chatter:\n$plotWarnings\n\n"; </td> </tr> <tr> <td class="h" > <a name="3321">3321</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3322">3322</a> </td> <td class="c3" > 82 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 380 </td> <td class="s"> _printGnuplotPipe($this, "main", @$cleanup_chunk); </td> </tr> <tr> <td class="h" > <a name="3323">3323</a> </td> <td class="c3" > 82 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3323-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 556 </td> <td class="s"> if (my $checkpointMessage = _checkpoint($this, "main", {printwarnings=>1})) { </td> </tr> <tr> <td class="h" > <a name="3324">3324</a> </td> <td class="c0" > <a href="#3328"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3324-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Gnuplot error: \"$checkpointMessage\" after sending cleanup cmd \"$cleanup_chunk->[0]\"\n" </td> </tr> <tr> <td class="h" > <a name="3325">3325</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if !$MS_io_braindamage; </td> </tr> <tr> <td class="h" > <a name="3326">3326</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # MS Windows can yield some chatter on the line, and it's not necessarily an </td> </tr> <tr> <td class="h" > <a name="3327">3327</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # error. So we don't barf, we only warn. Blech. </td> </tr> <tr> <td class="h" > <a name="3328">3328</a> </td> <td class="c0" > <a href="#3342"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: the gnuplot process gave some unexpected chatter after plot cleanup:\n$checkpointMessage\n"; </td> </tr> <tr> <td class="h" > <a name="3329">3329</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3330">3330</a> </td> <td class="c3" > 82 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 594 </td> <td class="s"> $this->{last_plotcmd} = our $last_plotcmd = $plotshow; </td> </tr> <tr> <td class="h" > <a name="3331">3331</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # read and report any warnings that happened during the plot </td> </tr> <tr> <td class="h" > <a name="3332">3332</a> </td> <td class="c3" > 82 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3944 </td> <td class="s"> return $plotWarnings; </td> </tr> <tr> <td class="h" > <a name="3333">3333</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3334">3334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3335">3335</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Not in binary mode - send this chunk in ASCII. Each line gets one </td> </tr> <tr> <td class="h" > <a name="3336">3336</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # tuple, followed a line with just "e". </td> </tr> <tr> <td class="h" > <a name="3337">3337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _emit_ascii { </td> </tr> <tr> <td class="h" > <a name="3338">3338</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3338-1"> 22 </a> </td> <td >   </td> <td > 129 </td> <td class="s"> my ($this, $chunk_i, $chunk) = @_; </td> </tr> <tr> <td class="h" > <a name="3339">3339</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Under real OSes, we can just send a schwack of stuff - there is no echo. </td> </tr> <tr> <td class="h" > <a name="3340">3340</a> </td> <td class="c3" > 22 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3340-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 5088 </td> <td class="s"> return ["\$PGG_data_$chunk_i << e\n${chunk}e\n", {data => 1}] </td> </tr> <tr> <td class="h" > <a name="3341">3341</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if !$MS_io_braindamage; </td> </tr> <tr> <td class="h" > <a name="3342">3342</a> </td> <td class="c0" > <a href="#3343"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3342-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $pipe_stuff = !$this->{dumping} && $echo_eating; </td> </tr> <tr> <td class="h" > <a name="3343">3343</a> </td> <td class="c0" > <a href="#3428"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3343-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> ((map $pipe_stuff ? \$_ : $_, map ["$_\n", {data => 1}], "\$PGG_data_$chunk_i <<e", split /\n/, $chunk), ["e\n", {data => 1 }]); </td> </tr> <tr> <td class="h" > <a name="3344">3344</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3345">3345</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3346">3346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##################### </td> </tr> <tr> <td class="h" > <a name="3347">3347</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3348">3348</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # parseArgs - helper sub nested inside plot </td> </tr> <tr> <td class="h" > <a name="3349">3349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3350">3350</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This breaks out the parsing of the curve arguments. </td> </tr> <tr> <td class="h" > <a name="3351">3351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3352">3352</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Each chunk of data to plot appears in the argument list as </td> </tr> <tr> <td class="h" > <a name="3353">3353</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # plot(options, options, ..., data, data, ....). </td> </tr> <tr> <td class="h" > <a name="3354">3354</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The options are a hashref or an inline hash and also serve as delimiters between </td> </tr> <tr> <td class="h" > <a name="3355">3355</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # chunks of data. </td> </tr> <tr> <td class="h" > <a name="3356">3356</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3357">3357</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Curve options, with the exception of "legend", are accumulated - each set </td> </tr> <tr> <td class="h" > <a name="3358">3358</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # is used as the default value of the same option for the next one. </td> </tr> <tr> <td class="h" > <a name="3359">3359</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3360">3360</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The data arguments are one-argument-per-tuple-element, but higher </td> </tr> <tr> <td class="h" > <a name="3361">3361</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # dims can be used for threading. Plot elements that are to be treated </td> </tr> <tr> <td class="h" > <a name="3362">3362</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # as 1-D (non-image) data can be threaded over -- so, e.g., you can pass in </td> </tr> <tr> <td class="h" > <a name="3363">3363</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # a 50 PDL (as X) and a 50x3 PDL (as Y) and you'll get three separate plots with </td> </tr> <tr> <td class="h" > <a name="3364">3364</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the same options. As a special case, you can pass an array ref into the </td> </tr> <tr> <td class="h" > <a name="3365">3365</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # "legend" or "color" options in that case, and thereby specify a different legend/color </td> </tr> <tr> <td class="h" > <a name="3366">3366</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # for each of those threaded plots. </td> </tr> <tr> <td class="h" > <a name="3367">3367</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3368">3368</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub parseArgs </td> </tr> <tr> <td class="h" > <a name="3369">3369</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="3370">3370</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3370-1"> 102 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3370-1"> 0 </a> </td> <td > 274 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="3371">3371</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3372">3372</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Parse curve option / data chunks. </td> </tr> <tr> <td class="h" > <a name="3373">3373</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 337 </td> <td class="s"> my @args = @_; </td> </tr> <tr> <td class="h" > <a name="3374">3374</a> </td> <td class="c3" > 102 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3374-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 638 </td> <td class="s"> my $is3d = $this->{options}{'3d'} // 0; </td> </tr> <tr> <td class="h" > <a name="3375">3375</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 349 </td> <td class="s"> my $ND = (('2D','3D')[!!$is3d]); # mainly for error messages </td> </tr> <tr> <td class="h" > <a name="3376">3376</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 190 </td> <td class="s"> my $spec_legends = 0; </td> </tr> <tr> <td class="h" > <a name="3377">3377</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # options were once cumulative. The 'with' specifier is still kept, but most </td> </tr> <tr> <td class="h" > <a name="3378">3378</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # of that functionality is not present as of 2.003. </td> </tr> <tr> <td class="h" > <a name="3379">3379</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We keep the lastOptions accumulator around just in case it comes in handy for </td> </tr> <tr> <td class="h" > <a name="3380">3380</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # a little more context. </td> </tr> <tr> <td class="h" > <a name="3381">3381</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 197 </td> <td class="s"> my $lastOptions = {}; </td> </tr> <tr> <td class="h" > <a name="3382">3382</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 166 </td> <td class="s"> my @chunks; </td> </tr> <tr> <td class="h" > <a name="3383">3383</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 196 </td> <td class="s"> my $Ncurves = 0; </td> </tr> <tr> <td class="h" > <a name="3384">3384</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 175 </td> <td class="s"> my $argIndex = 0; </td> </tr> <tr> <td class="h" > <a name="3385">3385</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 302 </td> <td class="s"> while($argIndex <= $#args) </td> </tr> <tr> <td class="h" > <a name="3386">3386</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="3387">3387</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # First, I find and parse the options in this chunk </td> </tr> <tr> <td class="h" > <a name="3388">3388</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Array refs are allowed in some curve options, but only as values of key/value </td> </tr> <tr> <td class="h" > <a name="3389">3389</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # pairs -- so any array refs glommed in with a bunch of other refs are data. </td> </tr> <tr> <td class="h" > <a name="3390">3390</a> </td> <td class="c3" > 105 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 207 </td> <td class="s"> my $nextDataIdx = $argIndex; </td> </tr> <tr> <td class="h" > <a name="3391">3391</a> </td> <td class="c3" > 105 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 186 </td> <td class="s"> while (1) { </td> </tr> <tr> <td class="h" > <a name="3392">3392</a> </td> <td class="c3" > 179 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3392-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 436 </td> <td class="s"> $nextDataIdx = undef, last if $nextDataIdx > $#args; </td> </tr> <tr> <td class="h" > <a name="3393">3393</a> </td> <td class="c3" > 179 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3393-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 624 </td> <td class="s"> $nextDataIdx += 2, next if !ref $args[$nextDataIdx]; # a key </td> </tr> <tr> <td class="h" > <a name="3394">3394</a> </td> <td class="c3" > 120 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3394-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 604 </td> <td class="s"> last if ref $args[$nextDataIdx] ne 'HASH'; </td> </tr> <tr> <td class="h" > <a name="3395">3395</a> </td> <td class="c3" > 15 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 41 </td> <td class="s"> $nextDataIdx++; </td> </tr> <tr> <td class="h" > <a name="3396">3396</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3397">3397</a> </td> <td class="c3" > 105 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3397-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 276 </td> <td class="s"> last if !defined $nextDataIdx; # no more data. done. </td> </tr> <tr> <td class="h" > <a name="3398">3398</a> </td> <td class="c3" > 105 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 185 </td> <td class="s"> my $lastWith = {}; </td> </tr> <tr> <td class="h" > <a name="3399">3399</a> </td> <td class="c3" > 105 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3399-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 302 </td> <td class="s"> $lastWith->{with} = $lastOptions->{with} if($lastOptions->{with}); </td> </tr> <tr> <td class="h" > <a name="3400">3400</a> </td> <td class="c3" > 105 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 177 </td> <td class="s"> my %chunk; </td> </tr> <tr> <td class="h" > <a name="3401">3401</a> </td> <td class="c3" > 105 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 225 </td> <td class="s"> eval { </td> </tr> <tr> <td class="h" > <a name="3402">3402</a> </td> <td class="c3" > 105 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 627 </td> <td class="s"> $chunk{options} = dclone( </td> </tr> <tr> <td class="h" > <a name="3403">3403</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> _parseOptHash( $lastWith, $cOpt, @args[$argIndex..$nextDataIdx-1] ) </td> </tr> <tr> <td class="h" > <a name="3404">3404</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="3405">3405</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### As of Gnuplot 5.0, some curve options (dashtype) require a default value to maintain legacy </td> </tr> <tr> <td class="h" > <a name="3406">3406</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### behavior in the default case. This is the place where curve options are parsed, so we </td> </tr> <tr> <td class="h" > <a name="3407">3407</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### hand-tweak a couple of default values here. </td> </tr> <tr> <td class="h" > <a name="3408">3408</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # dashtype doesn't have to have a defined value it only has to exist in the curve options hash, </td> </tr> <tr> <td class="h" > <a name="3409">3409</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # to trigger emission of a dashtype. </td> </tr> <tr> <td class="h" > <a name="3410">3410</a> </td> <td class="c3" > 103 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3410-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 620 </td> <td class="s"> $chunk{options}{dashtype} = undef unless(defined($chunk{options}{dashtype})); </td> </tr> <tr> <td class="h" > <a name="3411">3411</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Even worse -- some plot types (notably "with labels") barf in newer gnuplots </td> </tr> <tr> <td class="h" > <a name="3412">3412</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## if you feed them a "dt". So don't send a dashtype to those. </td> </tr> <tr> <td class="h" > <a name="3413">3413</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $with = ( </td> </tr> <tr> <td class="h" > <a name="3414">3414</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ( ref($chunk{options}{with}) =~ m/ARRAY/ ) ? </td> </tr> <tr> <td class="h" > <a name="3415">3415</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $chunk{options}{with}[0] : </td> </tr> <tr> <td class="h" > <a name="3416">3416</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $chunk{options}{with} </td> </tr> <tr> <td class="h" > <a name="3417">3417</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) // </td> </tr> <tr> <td class="h" > <a name="3418">3418</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $this->{options}{globalwith} // </td> </tr> <tr> <td class="h" > <a name="3419">3419</a> </td> <td class="c3" > 103 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3419-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3419-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 1155 </td> <td class="s"> ""; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3420">3420</a> </td> <td class="c3" > 103 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3420-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 504 </td> <td class="s"> if($with =~ m/^label/) { </td> </tr> <tr> <td class="h" > <a name="3421">3421</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 9 </td> <td class="s"> $chunk{options}{dashtype} = "INVALID"; </td> </tr> <tr> <td class="h" > <a name="3422">3422</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3423">3423</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="3424">3424</a> </td> <td class="c3" > 105 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3424-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 262 </td> <td class="s"> if($@){ </td> </tr> <tr> <td class="h" > <a name="3425">3425</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3425-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 21 </td> <td class="s"> unless(@chunks){ </td> </tr> <tr> <td class="h" > <a name="3426">3426</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 41 </td> <td class="s"> barf "$@\n(Did you mix plot options and curve options at the beginning of the arg list?)\n\n"; </td> </tr> <tr> <td class="h" > <a name="3427">3427</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3428">3428</a> </td> <td class="c0" > <a href="#3452"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "$@\n"; </td> </tr> <tr> <td class="h" > <a name="3429">3429</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3430">3430</a> </td> <td class="c3" > 103 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 460 </td> <td class="s"> $chunk{options}{data}="dummy"; # force emission of the data field </td> </tr> <tr> <td class="h" > <a name="3431">3431</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Find the data for this chunk... </td> </tr> <tr> <td class="h" > <a name="3432">3432</a> </td> <td class="c3" > 103 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 210 </td> <td class="s"> $argIndex = $nextDataIdx; </td> </tr> <tr> <td class="h" > <a name="3433">3433</a> </td> <td class="c3" > 191 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3433-1"> 66 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3433-1"> 191 </a> </td> <td >   </td> <td > 2318 </td> <td class="s"> my $nextOptionIdx = first { !(ref $args[$_]) or </td> </tr> <tr> <td class="h" > <a name="3434">3434</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !( (ref $args[$_]) eq 'ARRAY' or </td> </tr> <tr> <td class="h" > <a name="3435">3435</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $args[$_]->$_isa('PDL') </td> </tr> <tr> <td class="h" > <a name="3436">3436</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) </td> </tr> <tr> <td class="h" > <a name="3437">3437</a> </td> <td class="c3" > 103 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1185 </td> <td class="s"> } $argIndex..$#args; </td> </tr> <tr> <td class="h" > <a name="3438">3438</a> </td> <td class="c3" > 103 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3438-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1856 </td> <td class="s"> $nextOptionIdx = @args unless defined $nextOptionIdx; </td> </tr> <tr> <td class="h" > <a name="3439">3439</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Make sure we know our "with" style... </td> </tr> <tr> <td class="h" > <a name="3440">3440</a> </td> <td class="c3" > 103 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3440-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 727 </td> <td class="s"> $chunk{options}{with} ||= $this->{options}{globalwith} // ["lines"]; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3441">3441</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # validate "with" and get imgFlag and tupleSizes. </td> </tr> <tr> <td class="h" > <a name="3442">3442</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # First, unpack the "with" -- we accept a list of with parameters, but also </td> </tr> <tr> <td class="h" > <a name="3443">3443</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # unpack them if they are supplied as a single smushed-together string. </td> </tr> <tr> <td class="h" > <a name="3444">3444</a> </td> <td class="c3" > 103 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 187 </td> <td class="s"> our $plotStyleProps; # declared below </td> </tr> <tr> <td class="h" > <a name="3445">3445</a> </td> <td class="c3" > 103 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 212 </td> <td class="s"> my $with = $chunk{options}{with}; </td> </tr> <tr> <td class="h" > <a name="3446">3446</a> </td> <td class="c3" > 103 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3446-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 546 </td> <td class="s"> @$with = split /\s+/, $with->[0] if @$with == 1; </td> </tr> <tr> <td class="h" > <a name="3447">3447</a> </td> <td class="c3" > 103 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3447-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 282 </td> <td class="s"> if (@$with > 1) { </td> </tr> <tr> <td class="h" > <a name="3448">3448</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp q{ </td> </tr> <tr> <td class="h" > <a name="3449">3449</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> WARNING: deprecated usage of complex 'with' detected. Use a simple 'with' </td> </tr> <tr> <td class="h" > <a name="3450">3450</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> specifier and curve options instead. This will fail in future releases of </td> </tr> <tr> <td class="h" > <a name="3451">3451</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Graphics::Gnuplot. (Set $ENV{'PGG_DEP'}=1 to silence this warning. </td> </tr> <tr> <td class="h" > <a name="3452">3452</a> </td> <td class="c0" > <a href="#3489"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3452-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> } unless($ENV{'PGG_DEP'}); </td> </tr> <tr> <td class="h" > <a name="3453">3453</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3454">3454</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Look for the plotStyleProps entry. If not there, try cleaning up the with style </td> </tr> <tr> <td class="h" > <a name="3455">3455</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # before giving up entirely. </td> </tr> <tr> <td class="h" > <a name="3456">3456</a> </td> <td class="c3" > 103 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3456-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 454 </td> <td class="s"> unless ( exists $plotStyleProps->{$with->[0]} ) { </td> </tr> <tr> <td class="h" > <a name="3457">3457</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Try pluralizing and lc'ing if that works... </td> </tr> <tr> <td class="h" > <a name="3458">3458</a> </td> <td class="c3" > 3 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3458-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3458-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 58 </td> <td class="s"> if ($with->[0] !~ m/s$/i and exists( $plotStyleProps->{lc $with->[0].'s'} ) ) { </td> </tr> <tr> <td class="h" > <a name="3459">3459</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> $with->[0] = lc $with->[0].'s'; </td> </tr> <tr> <td class="h" > <a name="3460">3460</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3461">3461</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # nope. throw a fit. </td> </tr> <tr> <td class="h" > <a name="3462">3462</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 48 </td> <td class="s"> barf "invalid plotstyle 'with $with->[0]' in plot\n"; </td> </tr> <tr> <td class="h" > <a name="3463">3463</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3464">3464</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3465">3465</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 357 </td> <td class="s"> my $psProps = $plotStyleProps->{$with->[0]}; </td> </tr> <tr> <td class="h" > <a name="3466">3466</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Extract the data objects from the argument list. </td> </tr> <tr> <td class="h" > <a name="3467">3467</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # They should all be either PDLs or array refs. </td> </tr> <tr> <td class="h" > <a name="3468">3468</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 433 </td> <td class="s"> my @dataPiddles = @args[$argIndex..$nextOptionIdx-1]; </td> </tr> <tr> <td class="h" > <a name="3469">3469</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Some plot styles (currently just "fits") are implemented via a </td> </tr> <tr> <td class="h" > <a name="3470">3470</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # prefrobnicator that processes the data. </td> </tr> <tr> <td class="h" > <a name="3471">3471</a> </td> <td class="c3" > 102 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3471-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 299 </td> <td class="s"> if( $psProps->[ 4 ] ) { </td> </tr> <tr> <td class="h" > <a name="3472">3472</a> </td> <td class="c3" > 6 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 28 </td> <td class="s"> @dataPiddles = &{ $psProps->[4] }( $with, $this, \%chunk, @dataPiddles ); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 6 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 27 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3473">3473</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 332201 </td> <td class="s"> $psProps = $plotStyleProps->{$with->[0]}; </td> </tr> <tr> <td class="h" > <a name="3474">3474</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3475">3475</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Image flag and base tuplesizes allowed for this plot style... </td> </tr> <tr> <td class="h" > <a name="3476">3476</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 307 </td> <td class="s"> my $tupleSizes = $psProps->[ !!$is3d ]; # index is 0 or 1 depending on truth of 3D flag </td> </tr> <tr> <td class="h" > <a name="3477">3477</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 243 </td> <td class="s"> my $imgFlag = $psProps->[ 2 ]; </td> </tr> <tr> <td class="h" > <a name="3478">3478</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 328 </td> <td class="s"> $chunk{binaryWith} = $psProps->[ 3 ]; </td> </tr> <tr> <td class="h" > <a name="3479">3479</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If the user wanted binary but this style requires ASCII (or vice </td> </tr> <tr> <td class="h" > <a name="3480">3480</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # versa) I throw a warning </td> </tr> <tr> <td class="h" > <a name="3481">3481</a> </td> <td class="c3" > 101 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3481-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3481-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 757 </td> <td class="s"> if ( !$ENV{PGG_SUPPRESS_BINARY_MISMATCH_WARNING} && </td> </tr> <tr> <td class="h" > <a name="3482">3482</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> defined $chunk{binaryWith} ) </td> </tr> <tr> <td class="h" > <a name="3483">3483</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="3484">3484</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # style requires some specific ascii/binary transfer </td> </tr> <tr> <td class="h" > <a name="3485">3485</a> </td> <td class="c3" > 13 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3485-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 64 </td> <td class="s"> my $got = $chunk{binaryWith} ? "binary" : "ascii"; </td> </tr> <tr> <td class="h" > <a name="3486">3486</a> </td> <td class="c3" > 13 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3486-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 54 </td> <td class="s"> my $asked = $this->{options}{binary} ? "binary" : "ascii"; </td> </tr> <tr> <td class="h" > <a name="3487">3487</a> </td> <td class="c3" > 13 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3487-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3487-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 72 </td> <td class="s"> if( $got ne $asked and !($this->{binary_flag_defaulted})) </td> </tr> <tr> <td class="h" > <a name="3488">3488</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="3489">3489</a> </td> <td class="c0" > <a href="#3495"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp <<EOF; </td> </tr> <tr> <td class="h" > <a name="3490">3490</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Graphics::Gnuplot warning: user asked for $asked data transfer, but </td> </tr> <tr> <td class="h" > <a name="3491">3491</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '$with->[0]' plots are ALWAYS sent in $got. Ignoring '$asked' request. </td> </tr> <tr> <td class="h" > <a name="3492">3492</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Set environment variable PGG_SUPPRESS_BINARY_MISMATCH_WARNING to suppress </td> </tr> <tr> <td class="h" > <a name="3493">3493</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> this warning. </td> </tr> <tr> <td class="h" > <a name="3494">3494</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOF </td> </tr> <tr> <td class="h" > <a name="3495">3495</a> </td> <td class="c0" > <a href="#3500"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $ENV{PGG_SUPPRESS_BINARY_MISMATCH_WARNING} = 1; </td> </tr> <tr> <td class="h" > <a name="3496">3496</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3497">3497</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3498">3498</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Reject disallowed plot styles </td> </tr> <tr> <td class="h" > <a name="3499">3499</a> </td> <td class="c3" > 101 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3499-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 390 </td> <td class="s"> unless (ref $tupleSizes) { </td> </tr> <tr> <td class="h" > <a name="3500">3500</a> </td> <td class="c0" > <a href="#3519"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "plotstyle 'with $with->[0]' isn't valid in $ND plots\n"; </td> </tr> <tr> <td class="h" > <a name="3501">3501</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3502">3502</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Additional columns are needed for certain 'with' modifiers. Figure 'em, cheesily: each </td> </tr> <tr> <td class="h" > <a name="3503">3503</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # palette or variable option to 'with' needs an additional column. </td> </tr> <tr> <td class="h" > <a name="3504">3504</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The search over @$with will disappear with the deprecated compound-with form; </td> </tr> <tr> <td class="h" > <a name="3505">3505</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the real one is the second line that scans through curve options. </td> </tr> <tr> <td class="h" > <a name="3506">3506</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 499 </td> <td class="s"> my $ExtraColumns = grep /(palette|variable)/, @$with; </td> </tr> <tr> <td class="h" > <a name="3507">3507</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 420 </td> <td class="s"> for my $k (qw/linecolor textcolor fillstyle pointsize linewidth fillcolor/ ) { </td> </tr> <tr> <td class="h" > <a name="3508">3508</a> </td> <td class="c3" > 606 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1184 </td> <td class="s"> my $v = $chunk{options}{$k}; </td> </tr> <tr> <td class="h" > <a name="3509">3509</a> </td> <td class="c3" > 606 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3509-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1345 </td> <td class="s"> next unless defined($v); </td> </tr> <tr> <td class="h" > <a name="3510">3510</a> </td> <td class="c3" > 6 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3510-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 33 </td> <td class="s"> my $s = ref $v eq 'ARRAY' ? join(" ",@$v) : $v; </td> </tr> <tr> <td class="h" > <a name="3511">3511</a> </td> <td class="c3" > 6 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3511-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 65 </td> <td class="s"> $ExtraColumns++ if($s =~ m/palette|variable/); </td> </tr> <tr> <td class="h" > <a name="3512">3512</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3513">3513</a> </td> <td class="c3" > 101 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3513-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 284 </td> <td class="s"> $ExtraColumns++ if $chunk{options}{palette}; </td> </tr> <tr> <td class="h" > <a name="3514">3514</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3515">3515</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Figure out what size of tuple we have, and check it against the tuple sizes we can take... </td> </tr> <tr> <td class="h" > <a name="3516">3516</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 214 </td> <td class="s"> my $NdataPiddles = @dataPiddles; </td> </tr> <tr> <td class="h" > <a name="3517">3517</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Check in case it was explicitly set [not normally needed, but still...] </td> </tr> <tr> <td class="h" > <a name="3518">3518</a> </td> <td class="c3" > 101 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3518-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3518-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 408 </td> <td class="s"> if ($chunk{options}{tuplesize} and $NdataPiddles != $chunk{options}{tuplesize}) { </td> </tr> <tr> <td class="h" > <a name="3519">3519</a> </td> <td class="c0" > <a href="#3535"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "You specified a tuple size of ".($chunk{options}->{tuplesize})." but only $NdataPiddles columns of data\n"; </td> </tr> <tr> <td class="h" > <a name="3520">3520</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3521">3521</a> </td> <td class="c3" > 101 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 538 </td> <td class="s"> my @tuplematch = grep abs($_)+$ExtraColumns == $NdataPiddles, @$tupleSizes; </td> </tr> <tr> <td class="h" > <a name="3522">3522</a> </td> <td class="c3" > 101 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3522-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 244 </td> <td class="s"> if ( @tuplematch ) { </td> </tr> <tr> <td class="h" > <a name="3523">3523</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Tuple sizes that require autogenerated dimensions require 'array' in binary mode; </td> </tr> <tr> <td class="h" > <a name="3524">3524</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # all others require 'record' in binary mode. Note that in ascii mode it's slightly </td> </tr> <tr> <td class="h" > <a name="3525">3525</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # different -- an additional "using" column (or two) is needed (see below). </td> </tr> <tr> <td class="h" > <a name="3526">3526</a> </td> <td class="c3" > 93 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3526-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 522 </td> <td class="s"> $chunk{ArrayRec} = ($tuplematch[0] < 0) ? 'array' : 'record'; </td> </tr> <tr> <td class="h" > <a name="3527">3527</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3528">3528</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # No match -- barf unless you really meant it </td> </tr> <tr> <td class="h" > <a name="3529">3529</a> </td> <td class="c3" > 8 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3529-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 40 </td> <td class="s"> if (!$chunk{options}{tuplesize}) { </td> </tr> <tr> <td class="h" > <a name="3530">3530</a> </td> <td class="c3" > 8 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3530-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 37 </td> <td class="s"> my $pl = ($NdataPiddles==1)?"":"s"; </td> </tr> <tr> <td class="h" > <a name="3531">3531</a> </td> <td class="c3" > 8 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 39 </td> <td class="s"> my $s = "Found $NdataPiddles PDL$pl for $ND plot type 'with $with->[0]', which needs "; </td> </tr> <tr> <td class="h" > <a name="3532">3532</a> </td> <td class="c3" > 8 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3532-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 31 </td> <td class="s"> barf "Ouch! I'm never supposed to take this path. Please report a bug." </td> </tr> <tr> <td class="h" > <a name="3533">3533</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if !@$tupleSizes; </td> </tr> <tr> <td class="h" > <a name="3534">3534</a> </td> <td class="c3" > 8 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3534-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 29 </td> <td class="s"> if (@$tupleSizes==1) { </td> </tr> <tr> <td class="h" > <a name="3535">3535</a> </td> <td class="c0" > <a href="#3547"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= abs($tupleSizes->[0]) + $ExtraColumns; </td> </tr> <tr> <td class="h" > <a name="3536">3536</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3537">3537</a> </td> <td class="c3" > 8 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 60 </td> <td class="s"> $s .= "one of [".join(",",map abs($_)+$ExtraColumns, @$tupleSizes)."]"; </td> </tr> <tr> <td class="h" > <a name="3538">3538</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3539">3539</a> </td> <td class="c3" > 8 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3539-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 31 </td> <td class="s"> if ($ExtraColumns) { </td> </tr> <tr> <td class="h" > <a name="3540">3540</a> </td> <td class="c3" > 3 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3540-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> my $pl = ($ExtraColumns==1)?"":"s"; </td> </tr> <tr> <td class="h" > <a name="3541">3541</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> $s .= " (including the $ExtraColumns extra$pl from your 'with' options).\n"; </td> </tr> <tr> <td class="h" > <a name="3542">3542</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3543">3543</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 19 </td> <td class="s"> $s .= ".\n"; </td> </tr> <tr> <td class="h" > <a name="3544">3544</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3545">3545</a> </td> <td class="c3" > 8 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 71 </td> <td class="s"> barf $s; </td> </tr> <tr> <td class="h" > <a name="3546">3546</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3547">3547</a> </td> <td class="c0" > <a href="#3548"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $chunk{ArrayRec} = 'record'; </td> </tr> <tr> <td class="h" > <a name="3548">3548</a> </td> <td class="c0" > <a href="#3622"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: forced disallowed tuplesize with a curve option...\n"; </td> </tr> <tr> <td class="h" > <a name="3549">3549</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3550">3550</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3551">3551</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Implicit dimensions in 3-D plots require imgFlag to be set... </td> </tr> <tr> <td class="h" > <a name="3552">3552</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $cdims = $chunk{options}{cdims} || </td> </tr> <tr> <td class="h" > <a name="3553">3553</a> </td> <td class="c3" > 93 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3553-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3553-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 913 </td> <td class="s"> ($imgFlag or ( $is3d && $dataPiddles[0]->$_isa('PDL') && $dataPiddles[0]->ndims >= 2 )) ? 2 : 1; </td> </tr> <tr> <td class="h" > <a name="3554">3554</a> </td> <td class="c3" > 93 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3554-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3554-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 659 </td> <td class="s"> barf("You specified column dimension of 1 for an image plot type! Not allowed.") </td> </tr> <tr> <td class="h" > <a name="3555">3555</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $cdims==1 and $imgFlag; </td> </tr> <tr> <td class="h" > <a name="3556">3556</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3557">3557</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # A little aside: streamline the common optimization cases -- </td> </tr> <tr> <td class="h" > <a name="3558">3558</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if the user specified "image" but handed in an RGB or RGBA image, </td> </tr> <tr> <td class="h" > <a name="3559">3559</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # bust it up into components and update the 'with' accordingly. </td> </tr> <tr> <td class="h" > <a name="3560">3560</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This happens if RGB or RGBA is in dim 0 or in dim 2. </td> </tr> <tr> <td class="h" > <a name="3561">3561</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The other dimensions have to have at least five elements. </td> </tr> <tr> <td class="h" > <a name="3562">3562</a> </td> <td class="c3" > 93 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3562-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 218 </td> <td class="s"> if ( $cdims==2 ) { </td> </tr> <tr> <td class="h" > <a name="3563">3563</a> </td> <td class="c3" > 17 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3563-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 65 </td> <td class="s"> if ($with->[0] eq 'image') { </td> </tr> <tr> <td class="h" > <a name="3564">3564</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 27 </td> <td class="s"> my $dp = $dataPiddles[-1]; </td> </tr> <tr> <td class="h" > <a name="3565">3565</a> </td> <td class="c3" > 12 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3565-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3565-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 116 </td> <td class="s"> if ($dp->ndims==3 and $dp->dim(1) >= 5) { </td> </tr> <tr> <td class="h" > <a name="3566">3566</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 19 </td> <td class="s"> my ($new_with, @ndarrays) = _regularise_image($dp); </td> </tr> <tr> <td class="h" > <a name="3567">3567</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 26 </td> <td class="s"> $with->[0] = $new_with; </td> </tr> <tr> <td class="h" > <a name="3568">3568</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 20 </td> <td class="s"> splice @dataPiddles, -1, 1, @ndarrays; </td> </tr> <tr> <td class="h" > <a name="3569">3569</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3570">3570</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3571">3571</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3572">3572</a> </td> <td class="c3" > 93 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 323 </td> <td class="s"> $chunk{cdims} = $cdims; </td> </tr> <tr> <td class="h" > <a name="3573">3573</a> </td> <td class="c3" > 93 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 306 </td> <td class="s"> $chunk{tuplesize} = @dataPiddles; </td> </tr> <tr> <td class="h" > <a name="3574">3574</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Get the threading dims right </td> </tr> <tr> <td class="h" > <a name="3575">3575</a> </td> <td class="c3" > 93 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 447 </td> <td class="s"> @dataPiddles = matchDims( @dataPiddles ); </td> </tr> <tr> <td class="h" > <a name="3576">3576</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3577">3577</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Make sure there is a using spec, in case one wasn't given. </td> </tr> <tr> <td class="h" > <a name="3578">3578</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If we have one implicit dim in ASCII, we need a different using spec </td> </tr> <tr> <td class="h" > <a name="3579">3579</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (blech). If we have implicit dims in 3-D, imgFlag is set (see just above), </td> </tr> <tr> <td class="h" > <a name="3580">3580</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # and we will be sending the data in binary anyway (see the emission code in plot itself). </td> </tr> <tr> <td class="h" > <a name="3581">3581</a> </td> <td class="c3" > 90 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3581-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 413 </td> <td class="s"> unless (exists($chunk{options}{using})) { </td> </tr> <tr> <td class="h" > <a name="3582">3582</a> </td> <td class="c3" > 90 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3582-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3582-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 910 </td> <td class="s"> if ( </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-3"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3583">3583</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> defined($this->{options}{binary}) and !$this->{options}{binary} and </td> </tr> <tr> <td class="h" > <a name="3584">3584</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !$imgFlag and </td> </tr> <tr> <td class="h" > <a name="3585">3585</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $chunk{ArrayRec} eq 'array' </td> </tr> <tr> <td class="h" > <a name="3586">3586</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) { </td> </tr> <tr> <td class="h" > <a name="3587">3587</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ASCII mode, not an image. Add the requisite implicit columns. </td> </tr> <tr> <td class="h" > <a name="3588">3588</a> </td> <td class="c3" > 9 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3588-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 99 </td> <td class="s"> if ($is3d) { </td> </tr> <tr> <td class="h" > <a name="3589">3589</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Two implicit columns. The first is column 0, the second is all zeroes since </td> </tr> <tr> <td class="h" > <a name="3590">3590</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we'd have to be sending an image to make it otherwise. We sleaze up the </td> </tr> <tr> <td class="h" > <a name="3591">3591</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # y=0 column by multipling column 0 by 0. </td> </tr> <tr> <td class="h" > <a name="3592">3592</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 25 </td> <td class="s"> $chunk{options}{using} = join(":",0,'($0*0)',1..$chunk{tuplesize}); </td> </tr> <tr> <td class="h" > <a name="3593">3593</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3594">3594</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # one implicit column. It is column 0. </td> </tr> <tr> <td class="h" > <a name="3595">3595</a> </td> <td class="c3" > 7 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 93 </td> <td class="s"> $chunk{options}{using} = join(":",0..$chunk{tuplesize}); </td> </tr> <tr> <td class="h" > <a name="3596">3596</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3597">3597</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3598">3598</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Binary mode and/or is an image. Omit the implicit columns since they'll be </td> </tr> <tr> <td class="h" > <a name="3599">3599</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # added by gnuplot. </td> </tr> <tr> <td class="h" > <a name="3600">3600</a> </td> <td class="c3" > 81 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 681 </td> <td class="s"> $chunk{options}{using} = join(":",1..$chunk{tuplesize}); </td> </tr> <tr> <td class="h" > <a name="3601">3601</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3602">3602</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3603">3603</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Check number of lines threaded into this tupleset; make sure everything </td> </tr> <tr> <td class="h" > <a name="3604">3604</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # is consistent... </td> </tr> <tr> <td class="h" > <a name="3605">3605</a> </td> <td class="c3" > 90 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3605-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3605-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 544 </td> <td class="s"> barf "Image plot types require at least a 2-D input PDL\n" </td> </tr> <tr> <td class="h" > <a name="3606">3606</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $imgFlag and $dataPiddles[0]->dims < 2; </td> </tr> <tr> <td class="h" > <a name="3607">3607</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # For the image case glom everything together into one 3-dimensional PDL, </td> </tr> <tr> <td class="h" > <a name="3608">3608</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # pre-inverted so that the 0 dim runs across column. </td> </tr> <tr> <td class="h" > <a name="3609">3609</a> </td> <td class="c3" > 90 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 181 </td> <td class="s"> my $ncurves; </td> </tr> <tr> <td class="h" > <a name="3610">3610</a> </td> <td class="c3" > 90 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3610-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 408 </td> <td class="s"> if($cdims==2) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3611">3611</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Surfaces never get a label unless one is explicitly set </td> </tr> <tr> <td class="h" > <a name="3612">3612</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3612-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 79 </td> <td class="s"> $chunk{options}{legend} = undef unless exists $chunk{options}{legend}; </td> </tr> <tr> <td class="h" > <a name="3613">3613</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 39 </td> <td class="s"> $spec_legends = 1; </td> </tr> <tr> <td class="h" > <a name="3614">3614</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 90 </td> <td class="s"> my $p = pdl(@dataPiddles); </td> </tr> <tr> <td class="h" > <a name="3615">3615</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Coerce up to 3 dimensions, with (col, ix, iy). </td> </tr> <tr> <td class="h" > <a name="3616">3616</a> </td> <td class="c3" > 17 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3616-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 108104 </td> <td class="s"> if ($p->dims == 2) { </td> </tr> <tr> <td class="h" > <a name="3617">3617</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 96 </td> <td class="s"> $p = $p->dummy(0,1); </td> </tr> <tr> <td class="h" > <a name="3618">3618</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3619">3619</a> </td> <td class="c3" > 12 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 177 </td> <td class="s"> $p = $p->mv(-1,0); </td> </tr> <tr> <td class="h" > <a name="3620">3620</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3621">3621</a> </td> <td class="c3" > 17 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3621-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 406 </td> <td class="s"> if ( ($p->dims > 3) ) { </td> </tr> <tr> <td class="h" > <a name="3622">3622</a> </td> <td class="c0" > <a href="#3639"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf("PDL::Graphics::Gnuplot::plot: I can't make sense of this dimensional mix -- \n I ended up with (".join("x",$p->dims).") data after combining everything. \n (Did you mix list and PDL-stack formulations, or try to thread 2-D columns?)\n"); </td> </tr> <tr> <td class="h" > <a name="3623">3623</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3624">3624</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Place the PDL onto the argument stack. </td> </tr> <tr> <td class="h" > <a name="3625">3625</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6995 </td> <td class="s"> @dataPiddles = ($p); </td> </tr> <tr> <td class="h" > <a name="3626">3626</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 80 </td> <td class="s"> $chunk{tuplesize} = $p->dim(0); </td> </tr> <tr> <td class="h" > <a name="3627">3627</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 39 </td> <td class="s"> $ncurves = 1; </td> </tr> <tr> <td class="h" > <a name="3628">3628</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 49 </td> <td class="s"> $chunk{data} = \@dataPiddles; </td> </tr> <tr> <td class="h" > <a name="3629">3629</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 69 </td> <td class="s"> $chunk{imgFlag} = 1; </td> </tr> <tr> <td class="h" > <a name="3630">3630</a> </td> <td class="c3" > 17 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 55 </td> <td class="s"> push @chunks, \%chunk; </td> </tr> <tr> <td class="h" > <a name="3631">3631</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ( $dataPiddles[0]->$_isa('PDL') ) { </td> </tr> <tr> <td class="h" > <a name="3632">3632</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Non-image case: check that the legend count agrees with the </td> </tr> <tr> <td class="h" > <a name="3633">3633</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # number of curves we found, and break up compound chunks (with multiple </td> </tr> <tr> <td class="h" > <a name="3634">3634</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # curves) into separate chunks of one curve each. </td> </tr> <tr> <td class="h" > <a name="3635">3635</a> </td> <td class="c3" > 66 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1460 </td> <td class="s"> $ncurves = $dataPiddles[0]->slice("(0)")->nelem; </td> </tr> <tr> <td class="h" > <a name="3636">3636</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Speed bump for weird case </td> </tr> <tr> <td class="h" > <a name="3637">3637</a> </td> <td class="c3" > 66 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3547 </td> <td class="s"> our $bigthreads; </td> </tr> <tr> <td class="h" > <a name="3638">3638</a> </td> <td class="c3" > 66 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3638-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3638-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 369 </td> <td class="s"> if ($ncurves >= 100 and !$bigthreads) { </td> </tr> <tr> <td class="h" > <a name="3639">3639</a> </td> <td class="c0" > <a href="#3734"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp <<"FOO" </td> </tr> <tr> <td class="h" > <a name="3640">3640</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Graphics::Gnuplot: WARNING - you seem to be plotting $ncurves </td> </tr> <tr> <td class="h" > <a name="3641">3641</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> curves in a single threaded collection. This could be because you fed </td> </tr> <tr> <td class="h" > <a name="3642">3642</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in a 2-D (or higher) data set when you meant to plot a single curve. </td> </tr> <tr> <td class="h" > <a name="3643">3643</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If so, you may want to flatten your data and try again. (To disable </td> </tr> <tr> <td class="h" > <a name="3644">3644</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> this message, set \$PDL::Graphics::Gnuplot::bigthreads to be true). </td> </tr> <tr> <td class="h" > <a name="3645">3645</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you are trying to plot a surface, you might try setting 'trid=>1' </td> </tr> <tr> <td class="h" > <a name="3646">3646</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in the plot options. </td> </tr> <tr> <td class="h" > <a name="3647">3647</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> FOO </td> </tr> <tr> <td class="h" > <a name="3648">3648</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3649">3649</a> </td> <td class="c3" > 66 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3649-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3649-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 290 </td> <td class="s"> if ($chunk{options}{legend} and </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3650">3650</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 29 </td> <td class="s"> @{$chunk{options}{legend}} and </td> </tr> <tr> <td class="h" > <a name="3651">3651</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 20 </td> <td class="s"> @{$chunk{options}{legend}} != $ncurves </td> </tr> <tr> <td class="h" > <a name="3652">3652</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) { </td> </tr> <tr> <td class="h" > <a name="3653">3653</a> </td> <td class="c3" > 2 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3653-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 3 </td> <td class="s"> my $ent = (0+@{$chunk{options}{legend}} == 1) ? "y" : "ies"; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 19 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3654">3654</a> </td> <td class="c3" > 2 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3654-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s"> my $pl = ($ncurves==1)?"":"s"; </td> </tr> <tr> <td class="h" > <a name="3655">3655</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4 </td> <td class="s"> barf "Legend has ".(0+@{$chunk{options}{legend}})." entr$ent; but ".($ncurves)." curve$pl supplied!"; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 18 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3656">3656</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3657">3657</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Ensure legend appears in the options parsing (to emit "notitle" if necessary) </td> </tr> <tr> <td class="h" > <a name="3658">3658</a> </td> <td class="c3" > 64 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3658-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 383 </td> <td class="s"> $chunk{options}{legend} = undef unless(exists($chunk{options}{legend})); </td> </tr> <tr> <td class="h" > <a name="3659">3659</a> </td> <td class="c3" > 64 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3659-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 190 </td> <td class="s"> $spec_legends = 1 if($chunk{options}{legend}); </td> </tr> <tr> <td class="h" > <a name="3660">3660</a> </td> <td class="c3" > 64 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 232 </td> <td class="s"> $chunk{tuplesize} = $NdataPiddles; </td> </tr> <tr> <td class="h" > <a name="3661">3661</a> </td> <td class="c3" > 64 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3661-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 193 </td> <td class="s"> if ($ncurves==1) { </td> </tr> <tr> <td class="h" > <a name="3662">3662</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The chunk is OK. </td> </tr> <tr> <td class="h" > <a name="3663">3663</a> </td> <td class="c3" > 63 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 168 </td> <td class="s"> $chunk{data} = \@dataPiddles; </td> </tr> <tr> <td class="h" > <a name="3664">3664</a> </td> <td class="c3" > 63 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 219 </td> <td class="s"> push @chunks, \%chunk; </td> </tr> <tr> <td class="h" > <a name="3665">3665</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3666">3666</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The chunk needs splitting, options and all. </td> </tr> <tr> <td class="h" > <a name="3667">3667</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 22 </td> <td class="s"> for my $i (0..$ncurves - 1) { </td> </tr> <tr> <td class="h" > <a name="3668">3668</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 137 </td> <td class="s"> my $chk = dclone(\%chunk); </td> </tr> <tr> <td class="h" > <a name="3669">3669</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 43 </td> <td class="s"> $chk->{data} = [ map $_->slice(":,($i)"), @dataPiddles ]; </td> </tr> <tr> <td class="h" > <a name="3670">3670</a> </td> <td class="c3" > 5 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3670-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 168 </td> <td class="s"> if (exists($chk->{options}{legend})) { </td> </tr> <tr> <td class="h" > <a name="3671">3671</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 22 </td> <td class="s"> $chk->{options}{legend} = [$chk->{options}{legend}[$i]]; </td> </tr> <tr> <td class="h" > <a name="3672">3672</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3673">3673</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 18 </td> <td class="s"> push @chunks, $chk; </td> </tr> <tr> <td class="h" > <a name="3674">3674</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3675">3675</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3676">3676</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3677">3677</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Non-image case, with array refs instead of PDLs -- we required the chunk to be </td> </tr> <tr> <td class="h" > <a name="3678">3678</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # simple in matchDims, so just push it. </td> </tr> <tr> <td class="h" > <a name="3679">3679</a> </td> <td class="c3" > 7 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 93 </td> <td class="s"> $ncurves = 1; </td> </tr> <tr> <td class="h" > <a name="3680">3680</a> </td> <td class="c3" > 7 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 21 </td> <td class="s"> $chunk{data} = \@dataPiddles; </td> </tr> <tr> <td class="h" > <a name="3681">3681</a> </td> <td class="c3" > 7 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 22 </td> <td class="s"> $chunk{imgFlag} = 0; </td> </tr> <tr> <td class="h" > <a name="3682">3682</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Ensure legend appears in the options parsing (to emit "notitle" if necessary) </td> </tr> <tr> <td class="h" > <a name="3683">3683</a> </td> <td class="c3" > 7 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3683-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 54 </td> <td class="s"> $chunk{options}{legend} = undef unless(exists($chunk{options}{legend})); </td> </tr> <tr> <td class="h" > <a name="3684">3684</a> </td> <td class="c3" > 7 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 21 </td> <td class="s"> push @chunks, \%chunk; </td> </tr> <tr> <td class="h" > <a name="3685">3685</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3686">3686</a> </td> <td class="c3" > 88 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 193 </td> <td class="s"> $Ncurves += $ncurves; </td> </tr> <tr> <td class="h" > <a name="3687">3687</a> </td> <td class="c3" > 88 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 571 </td> <td class="s"> $argIndex = $nextOptionIdx; </td> </tr> <tr> <td class="h" > <a name="3688">3688</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3689">3689</a> </td> <td class="c3" > 85 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 450 </td> <td class="s"> return (\@chunks, $Ncurves); </td> </tr> <tr> <td class="h" > <a name="3690">3690</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3691">3691</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3692">3692</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _regularise_image { </td> </tr> <tr> <td class="h" > <a name="3693">3693</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3693-1"> 5 </a> </td> <td >   </td> <td > 17 </td> <td class="s"> my ($dp) = @_; </td> </tr> <tr> <td class="h" > <a name="3694">3694</a> </td> <td class="c3" > 5 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3694-1"> 50 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3694-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 72 </td> <td class="s"> my $with = $dp->dim(0) == 3 || $dp->dim(2) == 3 ? 'rgbimage' : </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3695">3695</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $dp->dim(0) == 4 || $dp->dim(2) == 4 ? 'rgbalpha' : undef; </td> </tr> <tr> <td class="h" > <a name="3696">3696</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 13 </td> <td class="s"> my @ndarrays; </td> </tr> <tr> <td class="h" > <a name="3697">3697</a> </td> <td class="c3" > 5 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3697-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3697-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 146 </td> <td class="s"> if ($dp->dim(0) == 3 && $dp->dim(2) >= 5) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-3"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-3"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-4"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-4"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3698">3698</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 16 </td> <td class="s"> @ndarrays = $dp->using(0..2); </td> </tr> <tr> <td class="h" > <a name="3699">3699</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ($dp->dim(2) == 3 && $dp->dim(0) >= 5) { </td> </tr> <tr> <td class="h" > <a name="3700">3700</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 21 </td> <td class="s"> @ndarrays = $dp->mv(2,0)->using(0..2); </td> </tr> <tr> <td class="h" > <a name="3701">3701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ($dp->dim(0) == 4 && $dp->dim(2) >= 5) { </td> </tr> <tr> <td class="h" > <a name="3702">3702</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> @ndarrays = $dp->using(0..3); </td> </tr> <tr> <td class="h" > <a name="3703">3703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ($dp->dim(2) == 4 && $dp->dim(0) >= 5) { </td> </tr> <tr> <td class="h" > <a name="3704">3704</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> @ndarrays = $dp->mv(2,0)->using(0..3); </td> </tr> <tr> <td class="h" > <a name="3705">3705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3706">3706</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 361 </td> <td class="s"> ($with, @ndarrays); </td> </tr> <tr> <td class="h" > <a name="3707">3707</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3708">3708</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3709">3709</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="3710">3710</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # matchDims: nested sub inside plot - kludge up thread style matching across </td> </tr> <tr> <td class="h" > <a name="3711">3711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the data arguments to a given chunk. </td> </tr> <tr> <td class="h" > <a name="3712">3712</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub matchDims </td> </tr> <tr> <td class="h" > <a name="3713">3713</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="3714">3714</a> </td> <td class="c3" > 93 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3714-1"> 93 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3714-1"> 0 </a> </td> <td > 314 </td> <td class="s"> my @data = @_; </td> </tr> <tr> <td class="h" > <a name="3715">3715</a> </td> <td class="c3" > 93 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 191 </td> <td class="s"> my $nonPDLCount = 0; </td> </tr> <tr> <td class="h" > <a name="3716">3716</a> </td> <td class="c3" > 93 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3716-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 206 </td> <td class="s"> map { $nonPDLCount++ unless( $_->$_isa('PDL') ) } @data; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 181 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1534 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3717">3717</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # In the case where all data are PDLs, we match dimensions. </td> </tr> <tr> <td class="h" > <a name="3718">3718</a> </td> <td class="c3" > 93 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3718-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1382 </td> <td class="s"> unless($nonPDLCount) { </td> </tr> <tr> <td class="h" > <a name="3719">3719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Make sure the domain and ranges describe the same number of data points, </td> </tr> <tr> <td class="h" > <a name="3720">3720</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # and that all PDLs have at least one dim. </td> </tr> <tr> <td class="h" > <a name="3721">3721</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3722">3722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ( This is complicated by the need/desire to preserve threading rules. Here, </td> </tr> <tr> <td class="h" > <a name="3723">3723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we accumulate thread dimensions manually and then match 'em using dummy </td> </tr> <tr> <td class="h" > <a name="3724">3724</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # dimensions... --CED ) </td> </tr> <tr> <td class="h" > <a name="3725">3725</a> </td> <td class="c3" > 83 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 347 </td> <td class="s"> my @data_dims = (1); # ensure at least 1 dim with at least 1 element </td> </tr> <tr> <td class="h" > <a name="3726">3726</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Assemble the thread-rules dim list </td> </tr> <tr> <td class="h" > <a name="3727">3727</a> </td> <td class="c3" > 83 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 395 </td> <td class="s"> for my $i(0..$#data) { </td> </tr> <tr> <td class="h" > <a name="3728">3728</a> </td> <td class="c3" > 159 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 842 </td> <td class="s"> my @ddims = $data[$i]->dims; </td> </tr> <tr> <td class="h" > <a name="3729">3729</a> </td> <td class="c3" > 159 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 359 </td> <td class="s"> for my $i(0..$#ddims) { </td> </tr> <tr> <td class="h" > <a name="3730">3730</a> </td> <td class="c3" > 213 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3730-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3730-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 1254 </td> <td class="s"> if( (!defined($data_dims[$i])) || ($data_dims[$i] <= 1) ) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3731">3731</a> </td> <td class="c3" > 102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 568 </td> <td class="s"> $data_dims[$i] = $ddims[$i]; </td> </tr> <tr> <td class="h" > <a name="3732">3732</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3733">3733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif( ( $ddims[$i]>1) && ($ddims[$i] != $data_dims[$i] )) { </td> </tr> <tr> <td class="h" > <a name="3734">3734</a> </td> <td class="c0" > <a href="#3754"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "plot(): mismatched arguments in tuple; dims of data item $i=(@ddims), but data_dims=(@data_dims)"; </td> </tr> <tr> <td class="h" > <a name="3735">3735</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3736">3736</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3737">3737</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3738">3738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now pad each data element out, by slicing, to match the full dim list. If the </td> </tr> <tr> <td class="h" > <a name="3739">3739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # dim matches, mark a ':'; if not, put in the correct dummy dim to make it match. </td> </tr> <tr> <td class="h" > <a name="3740">3740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Don't bother slicing unless at least one dummy dim is needed. </td> </tr> <tr> <td class="h" > <a name="3741">3741</a> </td> <td class="c3" > 83 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 217 </td> <td class="s"> for my $i(0..$#data) { </td> </tr> <tr> <td class="h" > <a name="3742">3742</a> </td> <td class="c3" > 159 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 585 </td> <td class="s"> my @ddims = $data[$i]->dims; </td> </tr> <tr> <td class="h" > <a name="3743">3743</a> </td> <td class="c3" > 159 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 386 </td> <td class="s"> my @s = (); </td> </tr> <tr> <td class="h" > <a name="3744">3744</a> </td> <td class="c3" > 159 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 257 </td> <td class="s"> my $slice_needed = 0; </td> </tr> <tr> <td class="h" > <a name="3745">3745</a> </td> <td class="c3" > 159 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 402 </td> <td class="s"> for my $id(0..$#data_dims) { </td> </tr> <tr> <td class="h" > <a name="3746">3746</a> </td> <td class="c3" > 214 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3746-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3746-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 1062 </td> <td class="s"> if((!defined($ddims[$id])) || !$ddims[$id]) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-3"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3747">3747</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 5 </td> <td class="s"> push(@s,"*$data_dims[$id]"); </td> </tr> <tr> <td class="h" > <a name="3748">3748</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12 </td> <td class="s"> $slice_needed = 1; </td> </tr> <tr> <td class="h" > <a name="3749">3749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3750">3750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif($data_dims[$id] == $ddims[$id]) { </td> </tr> <tr> <td class="h" > <a name="3751">3751</a> </td> <td class="c3" > 213 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 597 </td> <td class="s"> push(@s,":"); </td> </tr> <tr> <td class="h" > <a name="3752">3752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3753">3753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif( $ddims[$id]==1 ) { </td> </tr> <tr> <td class="h" > <a name="3754">3754</a> </td> <td class="c0" > <a href="#3755"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> push(@s,"(0), *$data_dims[$id]"); </td> </tr> <tr> <td class="h" > <a name="3755">3755</a> </td> <td class="c0" > <a href="#3758"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $slice_needed = 1; </td> </tr> <tr> <td class="h" > <a name="3756">3756</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3757">3757</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # should never happen </td> </tr> <tr> <td class="h" > <a name="3758">3758</a> </td> <td class="c0" > <a href="#3792"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "plot(): problem with dim assignments. This is a bug."; # no newline </td> </tr> <tr> <td class="h" > <a name="3759">3759</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3760">3760</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3761">3761</a> </td> <td class="c3" > 159 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3761-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 429 </td> <td class="s"> if($slice_needed) { </td> </tr> <tr> <td class="h" > <a name="3762">3762</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> my $s = join(",",@s); </td> </tr> <tr> <td class="h" > <a name="3763">3763</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s"> $data[$i] = $data[$i]->slice( join(",",@s) ); </td> </tr> <tr> <td class="h" > <a name="3764">3764</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3765">3765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3766">3766</a> </td> <td class="c3" > 83 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 393 </td> <td class="s"> return @data; </td> </tr> <tr> <td class="h" > <a name="3767">3767</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3768">3768</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # At least one of the data columns is a non-PDL. Force them to be simple columns, and </td> </tr> <tr> <td class="h" > <a name="3769">3769</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # require exact dimensional match. </td> </tr> <tr> <td class="h" > <a name="3770">3770</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3771">3771</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Also, convert any contained PDLs to array refs. </td> </tr> <tr> <td class="h" > <a name="3772">3772</a> </td> <td class="c3" > 10 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 25 </td> <td class="s"> my $nelem; </td> </tr> <tr> <td class="h" > <a name="3773">3773</a> </td> <td class="c3" > 10 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 28 </td> <td class="s"> my @out = (); </td> </tr> <tr> <td class="h" > <a name="3774">3774</a> </td> <td class="c3" > 10 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 25 </td> <td class="s"> for(@data) { </td> </tr> <tr> <td class="h" > <a name="3775">3775</a> </td> <td class="c3" > 20 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3775-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3775-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 103 </td> <td class="s"> barf "plot(): only 1-D PDLs are allowed to be mixed with array ref data\n" </td> </tr> <tr> <td class="h" > <a name="3776">3776</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( $_->$_isa('PDL') and $_->ndims > 1 ); </td> </tr> <tr> <td class="h" > <a name="3777">3777</a> </td> <td class="c3" > 18 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3777-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 232 </td> <td class="s"> if((ref $_) eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3778">3778</a> </td> <td class="c3" > 15 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3778-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3778-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 81 </td> <td class="s"> barf "plot(): row count mismatch: ".(0+@$_)." != $nelem\n" </td> </tr> <tr> <td class="h" > <a name="3779">3779</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( (defined $nelem) and (@$_ != $nelem) ); </td> </tr> <tr> <td class="h" > <a name="3780">3780</a> </td> <td class="c3" > 14 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 54 </td> <td class="s"> $nelem = @$_; </td> </tr> <tr> <td class="h" > <a name="3781">3781</a> </td> <td class="c3" > 14 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 40 </td> <td class="s"> for (@$_) { </td> </tr> <tr> <td class="h" > <a name="3782">3782</a> </td> <td class="c3" > 64 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3782-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 151 </td> <td class="s"> barf "plot(): nested references not allowed in list data\n" </td> </tr> <tr> <td class="h" > <a name="3783">3783</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( ref($_) ); </td> </tr> <tr> <td class="h" > <a name="3784">3784</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3785">3785</a> </td> <td class="c3" > 14 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 40 </td> <td class="s"> push(@out, $_); </td> </tr> <tr> <td class="h" > <a name="3786">3786</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif( $_->$_isa('PDL') ) { </td> </tr> <tr> <td class="h" > <a name="3787">3787</a> </td> <td class="c3" > 3 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3787-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#3787-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 102 </td> <td class="s"> barf "plot(): nelem disagrees with row count: ".$_->nelem." != $nelem\n" </td> </tr> <tr> <td class="h" > <a name="3788">3788</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( (defined $nelem) and ($_->nelem != $nelem) ); </td> </tr> <tr> <td class="h" > <a name="3789">3789</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 17 </td> <td class="s"> $nelem = $_->nelem; </td> </tr> <tr> <td class="h" > <a name="3790">3790</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 27 </td> <td class="s"> push(@out, [ $_->list ]); </td> </tr> <tr> <td class="h" > <a name="3791">3791</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3792">3792</a> </td> <td class="c0" > <a href="#3834"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "plot(): problem with dim checking. This should never happen."; </td> </tr> <tr> <td class="h" > <a name="3793">3793</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3794">3794</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3795">3795</a> </td> <td class="c3" > 7 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 47 </td> <td class="s"> return @out; </td> </tr> <tr> <td class="h" > <a name="3796">3796</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } # end of matchDims (nested in plot) </td> </tr> <tr> <td class="h" > <a name="3797">3797</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3798">3798</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="3799">3799</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="3800">3800</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3801">3801</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # convenience wrappers for plot </td> </tr> <tr> <td class="h" > <a name="3802">3802</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="3803">3803</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3804">3804</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3805">3805</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3806">3806</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3807">3807</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 replot </td> </tr> <tr> <td class="h" > <a name="3808">3808</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3809">3809</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3810">3810</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3811">3811</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Replot the last plot (possibly with new arguments). </td> </tr> <tr> <td class="h" > <a name="3812">3812</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3813">3813</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<replot> is similar to gnuplot's "replot" command - it allows you to </td> </tr> <tr> <td class="h" > <a name="3814">3814</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> regenerate the last plot made with this object. You can change the </td> </tr> <tr> <td class="h" > <a name="3815">3815</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plot by adding new elements to it, modifying options, or even (with the </td> </tr> <tr> <td class="h" > <a name="3816">3816</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "device" method) changing the output device. C<replot> takes the same </td> </tr> <tr> <td class="h" > <a name="3817">3817</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> arguments as C<plot>. </td> </tr> <tr> <td class="h" > <a name="3818">3818</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3819">3819</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If you give no arguments at all (or only a plot object) then the plot </td> </tr> <tr> <td class="h" > <a name="3820">3820</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> is simply redrawn. If you give plot arguments, they are added to the </td> </tr> <tr> <td class="h" > <a name="3821">3821</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> new plot exactly as if you'd included them in the original plot </td> </tr> <tr> <td class="h" > <a name="3822">3822</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> element list, and maintained for subsequent replots. </td> </tr> <tr> <td class="h" > <a name="3823">3823</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3824">3824</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> (Compare to 'markup'). </td> </tr> <tr> <td class="h" > <a name="3825">3825</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3826">3826</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3827">3827</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3828">3828</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub replot { </td> </tr> <tr> <td class="h" > <a name="3829">3829</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3829-1"> 3 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3829-1"> 1 </a> </td> <td > 5693 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="3830">3830</a> </td> <td class="c3" > 3 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3830-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 31 </td> <td class="s"> if($this->{replottable}) { </td> </tr> <tr> <td class="h" > <a name="3831">3831</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 19 </td> <td class="s"> local($this->{replotting}) = 1; </td> </tr> <tr> <td class="h" > <a name="3832">3832</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 43 </td> <td class="s"> $this->plot(@_); </td> </tr> <tr> <td class="h" > <a name="3833">3833</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3834">3834</a> </td> <td class="c0" > <a href="#3854"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "PDL::Graphics::Gnuplot::replot: you must have already plotted something!\n"; </td> </tr> <tr> <td class="h" > <a name="3835">3835</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3836">3836</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3837">3837</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3838">3838</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3839">3839</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3840">3840</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 markup </td> </tr> <tr> <td class="h" > <a name="3841">3841</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3842">3842</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3843">3843</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3844">3844</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Add ephemeral markup to the last plot. </td> </tr> <tr> <td class="h" > <a name="3845">3845</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3846">3846</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<markup> works exactly the same as C<replot>, except that any </td> </tr> <tr> <td class="h" > <a name="3847">3847</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> new arguments are not added to the replot list - so you can </td> </tr> <tr> <td class="h" > <a name="3848">3848</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> add temporary markup to a plot and regenerate the plot later </td> </tr> <tr> <td class="h" > <a name="3849">3849</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> without it. </td> </tr> <tr> <td class="h" > <a name="3850">3850</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3851">3851</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3852">3852</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3853">3853</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub markup { </td> </tr> <tr> <td class="h" > <a name="3854">3854</a> </td> <td class="c0" > <a href="#3855"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3854-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3854-1"> 1 </a> </td> <td > 0 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="3855">3855</a> </td> <td class="c0" > <a href="#3856"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#3855-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($this->{replottable}) { </td> </tr> <tr> <td class="h" > <a name="3856">3856</a> </td> <td class="c0" > <a href="#3857"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> local($this->{replotting}) = 1; </td> </tr> <tr> <td class="h" > <a name="3857">3857</a> </td> <td class="c0" > <a href="#3858"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> local($this->{ephemeral}) = 1; </td> </tr> <tr> <td class="h" > <a name="3858">3858</a> </td> <td class="c0" > <a href="#3860"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->plot(@_); </td> </tr> <tr> <td class="h" > <a name="3859">3859</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="3860">3860</a> </td> <td class="c0" > <a href="#3919"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "PDL::Graphics::Gnuplot::markup: you must have already plotted something!\n"; </td> </tr> <tr> <td class="h" > <a name="3861">3861</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3862">3862</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3863">3863</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3864">3864</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3865">3865</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3866">3866</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 plot3d </td> </tr> <tr> <td class="h" > <a name="3867">3867</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3868">3868</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3869">3869</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3870">3870</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Generate 3D plots. Synonym for C<plot(trid =E<gt> 1, ...)> </td> </tr> <tr> <td class="h" > <a name="3871">3871</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3872">3872</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3873">3873</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3874">3874</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3875">3875</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3876">3876</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 splot </td> </tr> <tr> <td class="h" > <a name="3877">3877</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3878">3878</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3879">3879</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3880">3880</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Generate 3D plots. Synonym for C<plot(trid =E<gt> 1, ...)> </td> </tr> <tr> <td class="h" > <a name="3881">3881</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3882">3882</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3883">3883</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3884">3884</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *splot = \&plot3d; </td> </tr> <tr> <td class="h" > <a name="3885">3885</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub plot3d { </td> </tr> <tr> <td class="h" > <a name="3886">3886</a> </td> <td class="c3" > 9 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3886-1"> 9 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3886-1"> 1 </a> </td> <td > 16082 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="3887">3887</a> </td> <td class="c3" > 9 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 47 </td> <td class="s"> local($this->{options}{'3d'}) = 1; </td> </tr> <tr> <td class="h" > <a name="3888">3888</a> </td> <td class="c3" > 9 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 42 </td> <td class="s"> plot($this,@_); </td> </tr> <tr> <td class="h" > <a name="3889">3889</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3890">3890</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3891">3891</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3892">3892</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3893">3893</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 lines </td> </tr> <tr> <td class="h" > <a name="3894">3894</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3895">3895</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3896">3896</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3897">3897</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Generates plots with lines, by default. Shorthand for C<plot(globalwith =E<gt> 'lines', ...)> </td> </tr> <tr> <td class="h" > <a name="3898">3898</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3899">3899</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3900">3900</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3901">3901</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *line = \&lines; </td> </tr> <tr> <td class="h" > <a name="3902">3902</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub lines { </td> </tr> <tr> <td class="h" > <a name="3903">3903</a> </td> <td class="c3" > 8 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3903-1"> 8 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3903-1"> 1 </a> </td> <td > 5616 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="3904">3904</a> </td> <td class="c3" > 8 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 76 </td> <td class="s"> local($this->{options}{globalwith}) = ['lines']; </td> </tr> <tr> <td class="h" > <a name="3905">3905</a> </td> <td class="c3" > 8 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 66 </td> <td class="s"> plot($this,@_); </td> </tr> <tr> <td class="h" > <a name="3906">3906</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3907">3907</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3908">3908</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3909">3909</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3910">3910</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 points </td> </tr> <tr> <td class="h" > <a name="3911">3911</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3912">3912</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3913">3913</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3914">3914</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Generates plots with points, by default. Shorthand for C<plot(globalwith =E<gt> 'points', ...)> </td> </tr> <tr> <td class="h" > <a name="3915">3915</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3916">3916</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3917">3917</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3918">3918</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub points { </td> </tr> <tr> <td class="h" > <a name="3919">3919</a> </td> <td class="c0" > <a href="#3920"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3919-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3919-1"> 1 </a> </td> <td > 0 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="3920">3920</a> </td> <td class="c0" > <a href="#3921"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> local($this->{options}{globalwith}) = ['points']; </td> </tr> <tr> <td class="h" > <a name="3921">3921</a> </td> <td class="c0" > <a href="#3936"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> plot($this,@_); </td> </tr> <tr> <td class="h" > <a name="3922">3922</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3923">3923</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3924">3924</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3925">3925</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3926">3926</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 image </td> </tr> <tr> <td class="h" > <a name="3927">3927</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3928">3928</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3929">3929</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3930">3930</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Displays an image (either greyscale or RGB). Shorthand for C<plot(globalwith =E<gt> 'image', ...)> </td> </tr> <tr> <td class="h" > <a name="3931">3931</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3932">3932</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3933">3933</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3934">3934</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3935">3935</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub image { </td> </tr> <tr> <td class="h" > <a name="3936">3936</a> </td> <td class="c0" > <a href="#3937"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3936-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3936-1"> 1 </a> </td> <td > 0 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="3937">3937</a> </td> <td class="c0" > <a href="#3938"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> local($this->{options}{globalwith}) = ["image"]; </td> </tr> <tr> <td class="h" > <a name="3938">3938</a> </td> <td class="c0" > <a href="#3964"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> plot($this, @_); </td> </tr> <tr> <td class="h" > <a name="3939">3939</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3940">3940</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3941">3941</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3942">3942</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3943">3943</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 imag </td> </tr> <tr> <td class="h" > <a name="3944">3944</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3945">3945</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3946">3946</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3947">3947</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Synonym for "image", for people who grew up with PDL::Graphics::PGPLOT and can't remember the closing 'e' </td> </tr> <tr> <td class="h" > <a name="3948">3948</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3949">3949</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3950">3950</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3951">3951</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *imag = \ℑ </td> </tr> <tr> <td class="h" > <a name="3952">3952</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3953">3953</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3954">3954</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3955">3955</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 fits </td> </tr> <tr> <td class="h" > <a name="3956">3956</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3957">3957</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3958">3958</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3959">3959</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Displays a FITS image. Synonym for C<plot(globalwith =E<gt> 'fits', ...)>. </td> </tr> <tr> <td class="h" > <a name="3960">3960</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3961">3961</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="3962">3962</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3963">3963</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub fits { </td> </tr> <tr> <td class="h" > <a name="3964">3964</a> </td> <td class="c0" > <a href="#3965"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3964-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#3964-1"> 1 </a> </td> <td > 0 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="3965">3965</a> </td> <td class="c0" > <a href="#3966"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> local($this->{options}{globalwith}) = ["fits"]; </td> </tr> <tr> <td class="h" > <a name="3966">3966</a> </td> <td class="c0" > <a href="#4115"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> plot($this,@_); </td> </tr> <tr> <td class="h" > <a name="3967">3967</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="3968">3968</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3969">3969</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="3970">3970</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Multiplot support </td> </tr> <tr> <td class="h" > <a name="3971">3971</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3972">3972</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="3973">3973</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3974">3974</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 multiplot_generate </td> </tr> <tr> <td class="h" > <a name="3975">3975</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3976">3976</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3977">3977</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3978">3978</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Called with the same arguments as L</multiplot>, it returns the text that </td> </tr> <tr> <td class="h" > <a name="3979">3979</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> would be sent to Gnuplot. </td> </tr> <tr> <td class="h" > <a name="3980">3980</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Added in 2.025. </td> </tr> <tr> <td class="h" > <a name="3981">3981</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3982">3982</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 multiplot </td> </tr> <tr> <td class="h" > <a name="3983">3983</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3984">3984</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for example </td> </tr> <tr> <td class="h" > <a name="3985">3985</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3986">3986</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $a = (xvals(101)/100) * 6 * 3.14159/180; </td> </tr> <tr> <td class="h" > <a name="3987">3987</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $b = sin($a); </td> </tr> <tr> <td class="h" > <a name="3988">3988</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3989">3989</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->multiplot(layout=>[2,2,"columnsfirst"]); </td> </tr> <tr> <td class="h" > <a name="3990">3990</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot({title=>"points"},with=>"points",$a,$b); </td> </tr> <tr> <td class="h" > <a name="3991">3991</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot({title=>"lines"}, with=>"lines", $a,$b); </td> </tr> <tr> <td class="h" > <a name="3992">3992</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->multiplot_next; # with Gnuplot 4.7+ </td> </tr> <tr> <td class="h" > <a name="3993">3993</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot({title=>"image"}, with=>"image", $a->(*1) * $b ); </td> </tr> <tr> <td class="h" > <a name="3994">3994</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->end_multi(); </td> </tr> <tr> <td class="h" > <a name="3995">3995</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3996">3996</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="3997">3997</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="3998">3998</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Plot multiple plots into a single page of output. </td> </tr> <tr> <td class="h" > <a name="3999">3999</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4000">4000</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The C<multiplot> method enables multiplot mode in gnuplot, which permits </td> </tr> <tr> <td class="h" > <a name="4001">4001</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> multiple plots on a single pane. Plots can be lain out in a grid, </td> </tr> <tr> <td class="h" > <a name="4002">4002</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or can be lain out freeform using the C<size> and C<origin> plot </td> </tr> <tr> <td class="h" > <a name="4003">4003</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options for each of the individual plots. </td> </tr> <tr> <td class="h" > <a name="4004">4004</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4005">4005</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> It is not possible to change the terminal or output device when in </td> </tr> <tr> <td class="h" > <a name="4006">4006</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> multiplot mode; if you try to do that, by setting one of those plot </td> </tr> <tr> <td class="h" > <a name="4007">4007</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> options, PDL::Graphics::Gnuplot will throw an error. </td> </tr> <tr> <td class="h" > <a name="4008">4008</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4009">4009</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The options hash will accept: </td> </tr> <tr> <td class="h" > <a name="4010">4010</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4011">4011</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="4012">4012</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4013">4013</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item layout - define a regular grid of plots to multiplot </td> </tr> <tr> <td class="h" > <a name="4014">4014</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4015">4015</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<layout> should be followed by an ARRAY ref that contains at least </td> </tr> <tr> <td class="h" > <a name="4016">4016</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> number of columns ("NX") followed by number of rows ("NY). After </td> </tr> <tr> <td class="h" > <a name="4017">4017</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> that, you may include any of the "rowsfirst", "columnsfirst", </td> </tr> <tr> <td class="h" > <a name="4018">4018</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "downwards", or "upwards" keywords to specify traversal order through </td> </tr> <tr> <td class="h" > <a name="4019">4019</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the grid. Only the first letter is examined, so (e.g.) "down" or even </td> </tr> <tr> <td class="h" > <a name="4020">4020</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "dog" works the same as "downwards". </td> </tr> <tr> <td class="h" > <a name="4021">4021</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4022">4022</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item title - define a title for the entire page </td> </tr> <tr> <td class="h" > <a name="4023">4023</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4024">4024</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<title> should be followed by a single scalar containing the title string. </td> </tr> <tr> <td class="h" > <a name="4025">4025</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4026">4026</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item scale - make gridded plots larger or smaller than their allocated space </td> </tr> <tr> <td class="h" > <a name="4027">4027</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4028">4028</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<scale> takes either a scalar or an array ref containing one or two </td> </tr> <tr> <td class="h" > <a name="4029">4029</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> values. If only one value is supplied, it is a general scale factor </td> </tr> <tr> <td class="h" > <a name="4030">4030</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of each plot in the grid. If two values are supplied, the first is an </td> </tr> <tr> <td class="h" > <a name="4031">4031</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> X stretch factor for each plot in the grid, and the second is a Y </td> </tr> <tr> <td class="h" > <a name="4032">4032</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> stretch factor for each plot in the grid. </td> </tr> <tr> <td class="h" > <a name="4033">4033</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4034">4034</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item offset - offset each plot from its grid origin </td> </tr> <tr> <td class="h" > <a name="4035">4035</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4036">4036</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<offset> takes an array ref containing two values, that control placement </td> </tr> <tr> <td class="h" > <a name="4037">4037</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of each plot within the grid. </td> </tr> <tr> <td class="h" > <a name="4038">4038</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4039">4039</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="4040">4040</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4041">4041</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 multiplot_next_generate </td> </tr> <tr> <td class="h" > <a name="4042">4042</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4043">4043</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="4044">4044</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4045">4045</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Called with the same arguments as L</multiplot_next>, it returns the text that </td> </tr> <tr> <td class="h" > <a name="4046">4046</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> would be sent to Gnuplot. Exportable. </td> </tr> <tr> <td class="h" > <a name="4047">4047</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Added in 2.025. </td> </tr> <tr> <td class="h" > <a name="4048">4048</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4049">4049</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 multiplot_next </td> </tr> <tr> <td class="h" > <a name="4050">4050</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4051">4051</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="4052">4052</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4053">4053</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Skip one plot. Added in 2.025. Requires Gnuplot 4.7+. </td> </tr> <tr> <td class="h" > <a name="4054">4054</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4055">4055</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 end_multi_generate </td> </tr> <tr> <td class="h" > <a name="4056">4056</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4057">4057</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="4058">4058</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4059">4059</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Called with the same arguments as L</end_multi>, it returns the text that </td> </tr> <tr> <td class="h" > <a name="4060">4060</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> would be sent to Gnuplot. Exportable. </td> </tr> <tr> <td class="h" > <a name="4061">4061</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Added in 2.025. </td> </tr> <tr> <td class="h" > <a name="4062">4062</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4063">4063</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 end_multi </td> </tr> <tr> <td class="h" > <a name="4064">4064</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4065">4065</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="4066">4066</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4067">4067</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w=gpwin(); </td> </tr> <tr> <td class="h" > <a name="4068">4068</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->multiplot(layout=>[2,1]); </td> </tr> <tr> <td class="h" > <a name="4069">4069</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot({title=>"points"},with=>'points',$a,$b); </td> </tr> <tr> <td class="h" > <a name="4070">4070</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->plot({title=>"lines"},with=>"lines",$a,$b); </td> </tr> <tr> <td class="h" > <a name="4071">4071</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->end_multi(); </td> </tr> <tr> <td class="h" > <a name="4072">4072</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4073">4073</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="4074">4074</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4075">4075</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Ends a multiplot block (i.e. a block of plots that are meant to render to a single page). </td> </tr> <tr> <td class="h" > <a name="4076">4076</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4077">4077</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="4078">4078</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4079">4079</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4080">4080</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This table describes gnuplot option parsing for the multiplot command. </td> </tr> <tr> <td class="h" > <a name="4081">4081</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Its format is the same as the $plotOptionsTable, below. </td> </tr> <tr> <td class="h" > <a name="4082">4082</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4083">4083</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $mpOptionsTable = { </td> </tr> <tr> <td class="h" > <a name="4084">4084</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'layout' => [sub { my($old, $new, $h) = @_; </td> </tr> <tr> <td class="h" > <a name="4085">4085</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my ($nx,$ny); </td> </tr> <tr> <td class="h" > <a name="4086">4086</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @dirs=("",""); </td> </tr> <tr> <td class="h" > <a name="4087">4087</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(!ref($new)) { </td> </tr> <tr> <td class="h" > <a name="4088">4088</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $nx = $ny = $new; </td> </tr> <tr> <td class="h" > <a name="4089">4089</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(ref($new) eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="4090">4090</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $new = [1] if(@$new == 0); </td> </tr> <tr> <td class="h" > <a name="4091">4091</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $nx = shift @$new; </td> </tr> <tr> <td class="h" > <a name="4092">4092</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $ny = (@$new) ? shift @$new : $nx; </td> </tr> <tr> <td class="h" > <a name="4093">4093</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> while($_ = shift @$new) { # assignment </td> </tr> <tr> <td class="h" > <a name="4094">4094</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $dirs[0]="rowsfirst" if(m/^r/i); </td> </tr> <tr> <td class="h" > <a name="4095">4095</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $dirs[0]="columnsfirst" if(m/^c/i); </td> </tr> <tr> <td class="h" > <a name="4096">4096</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $dirs[1]="downwards" if(m/^d/i); </td> </tr> <tr> <td class="h" > <a name="4097">4097</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $dirs[1]="upwards" if(m/^u/i); </td> </tr> <tr> <td class="h" > <a name="4098">4098</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4099">4099</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4100">4100</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "multiplot: layout option needs a scalar or array ref value\n"; </td> </tr> <tr> <td class="h" > <a name="4101">4101</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4102">4102</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join(" ",("$ny,$nx",$dirs[0],$dirs[1])); </td> </tr> <tr> <td class="h" > <a name="4103">4103</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4104">4104</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cl',undef,1,''], </td> </tr> <tr> <td class="h" > <a name="4105">4105</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'title' => ['s','cq',undef,2,''], </td> </tr> <tr> <td class="h" > <a name="4106">4106</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'scale' => ['l','c,',undef,3,''], </td> </tr> <tr> <td class="h" > <a name="4107">4107</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'offset'=> ['l','c,',undef,4,''] </td> </tr> <tr> <td class="h" > <a name="4108">4108</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="4109">4109</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $mpOptionsAbbrevs = _gen_abbrev_list(keys %$mpOptionsTable); </td> </tr> <tr> <td class="h" > <a name="4110">4110</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $mpOpt = [$mpOptionsTable, $mpOptionsAbbrevs, "multiplot option"]; </td> </tr> <tr> <td class="h" > <a name="4111">4111</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4112">4112</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub multiplot_generate { </td> </tr> <tr> <td class="h" > <a name="4113">4113</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4113-1"> 4 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4113-1"> 1 </a> </td> <td > 25 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="4114">4114</a> </td> <td class="c3" > 4 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4114-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 26 </td> <td class="s"> if ($this->{options}{multiplot}) { </td> </tr> <tr> <td class="h" > <a name="4115">4115</a> </td> <td class="c0" > <a href="#4116"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "Warning: multiplot: object is already in multiplot mode!\n Exiting multiplot mode first...\n"; </td> </tr> <tr> <td class="h" > <a name="4116">4116</a> </td> <td class="c0" > <a href="#4127"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> end_multi($this); </td> </tr> <tr> <td class="h" > <a name="4117">4117</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4118">4118</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 35 </td> <td class="s"> my $mp_opts = _parseOptHash( undef, $mpOpt, @_ ); </td> </tr> <tr> <td class="h" > <a name="4119">4119</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Assemble the command. </td> </tr> <tr> <td class="h" > <a name="4120">4120</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $preamble = _emitOpts({ 'terminal' => $this->{options}{terminal}, </td> </tr> <tr> <td class="h" > <a name="4121">4121</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'output' => $this->{options}{output}, </td> </tr> <tr> <td class="h" > <a name="4122">4122</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'termoption' => $this->{options}{termoption} </td> </tr> <tr> <td class="h" > <a name="4123">4123</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4124">4124</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 37 </td> <td class="s"> $pOpt); </td> </tr> <tr> <td class="h" > <a name="4125">4125</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 18 </td> <td class="s"> my $command = "set multiplot " . _emitOpts($mp_opts, $mpOpt) . "\n"; </td> </tr> <tr> <td class="h" > <a name="4126">4126</a> </td> <td class="c3" > 4 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4126-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 13 </td> <td class="s"> if ($check_syntax) { </td> </tr> <tr> <td class="h" > <a name="4127">4127</a> </td> <td class="c0" > <a href="#4128"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $test_preamble = "set terminal dumb\nset output \" \"\n"; </td> </tr> <tr> <td class="h" > <a name="4128">4128</a> </td> <td class="c0" > <a href="#4129"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $PDL::Graphics::Gnuplot::last_testcmd = $test_preamble . $command; </td> </tr> <tr> <td class="h" > <a name="4129">4129</a> </td> <td class="c0" > <a href="#4130"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{last_testcmd} = $test_preamble . $command; </td> </tr> <tr> <td class="h" > <a name="4130">4130</a> </td> <td class="c0" > <a href="#4131"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this, "syntax", $test_preamble . $command); </td> </tr> <tr> <td class="h" > <a name="4131">4131</a> </td> <td class="c0" > <a href="#4132"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $checkpointMessage = _checkpoint($this, "syntax"); </td> </tr> <tr> <td class="h" > <a name="4132">4132</a> </td> <td class="c0" > <a href="#4133"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4132-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if ($checkpointMessage) { </td> </tr> <tr> <td class="h" > <a name="4133">4133</a> </td> <td class="c0" > <a href="#4134"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4133-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="4134">4134</a> </td> <td class="c0" > <a href="#4136"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: unexpected chatter while sending multiplot command:\n$checkpointMessage\n\n"; </td> </tr> <tr> <td class="h" > <a name="4135">4135</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4136">4136</a> </td> <td class="c0" > <a href="#4151"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf("Gnuplot error: \"$checkpointMessage\" while sending multiplot command."); </td> </tr> <tr> <td class="h" > <a name="4137">4137</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4138">4138</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4139">4139</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4140">4140</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s"> $this->{options}{multiplot} = 1; </td> </tr> <tr> <td class="h" > <a name="4141">4141</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 31 </td> <td class="s"> $preamble . $command; </td> </tr> <tr> <td class="h" > <a name="4142">4142</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4143">4143</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4144">4144</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub multiplot { </td> </tr> <tr> <td class="h" > <a name="4145">4145</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4145-1"> 3 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4145-1"> 1 </a> </td> <td > 88 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="4146">4146</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 24 </td> <td class="s"> my $plotshow = $this->multiplot_generate(@_); </td> </tr> <tr> <td class="h" > <a name="4147">4147</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 25 </td> <td class="s"> $this->{last_plotcmd} = our $last_plotcmd = $plotshow; </td> </tr> <tr> <td class="h" > <a name="4148">4148</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12 </td> <td class="s"> _printGnuplotPipe($this, "main", $plotshow); </td> </tr> <tr> <td class="h" > <a name="4149">4149</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12 </td> <td class="s"> my $checkpointMessage = _checkpoint($this,"main"); </td> </tr> <tr> <td class="h" > <a name="4150">4150</a> </td> <td class="c3" > 3 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4150-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 18 </td> <td class="s"> if ($checkpointMessage) { </td> </tr> <tr> <td class="h" > <a name="4151">4151</a> </td> <td class="c0" > <a href="#4152"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4151-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if ($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="4152">4152</a> </td> <td class="c0" > <a href="#4154"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: unexpected chatter while sending final multiplot command:\n$checkpointMessage\n\n"; </td> </tr> <tr> <td class="h" > <a name="4153">4153</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4154">4154</a> </td> <td class="c0" > <a href="#4168"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf("Gnuplot error: \"$checkpointMessage\" while sending final multiplot command."); </td> </tr> <tr> <td class="h" > <a name="4155">4155</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4156">4156</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4157">4157</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 22 </td> <td class="s"> return; </td> </tr> <tr> <td class="h" > <a name="4158">4158</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4159">4159</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4160">4160</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub multiplot_next_generate { </td> </tr> <tr> <td class="h" > <a name="4161">4161</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4161-1"> 50 </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4161-1"> 2 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4161-1"> 1 </a> </td> <td > 2414 </td> <td class="s"> barf "multiplot_next: need Gnuplot 4.7+\n" </td> </tr> <tr> <td class="h" > <a name="4162">4162</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $PDL::Graphics::Gnuplot::gp_version < 4.7; </td> </tr> <tr> <td class="h" > <a name="4163">4163</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 15 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="4164">4164</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "multiplot_next: you can't, you're not in multiplot mode\n" </td> </tr> <tr> <td class="h" > <a name="4165">4165</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4165-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> unless $this->{options}{multiplot}; </td> </tr> <tr> <td class="h" > <a name="4166">4166</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 9 </td> <td class="s"> my $checkpointMessage; </td> </tr> <tr> <td class="h" > <a name="4167">4167</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4167-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 9 </td> <td class="s"> if ($check_syntax) { </td> </tr> <tr> <td class="h" > <a name="4168">4168</a> </td> <td class="c0" > <a href="#4169"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this, "syntax", "set multiplot next\n"); </td> </tr> <tr> <td class="h" > <a name="4169">4169</a> </td> <td class="c0" > <a href="#4170"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $checkpointMessage = _checkpoint($this, "syntax"); </td> </tr> <tr> <td class="h" > <a name="4170">4170</a> </td> <td class="c0" > <a href="#4186"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4170-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Gnuplot error: set multiplot next failed on syntax check!\n$checkpointMessage" </td> </tr> <tr> <td class="h" > <a name="4171">4171</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $checkpointMessage; </td> </tr> <tr> <td class="h" > <a name="4172">4172</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4173">4173</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 18 </td> <td class="s"> "set multiplot next\n"; </td> </tr> <tr> <td class="h" > <a name="4174">4174</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4175">4175</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4176">4176</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub multiplot_next { </td> </tr> <tr> <td class="h" > <a name="4177">4177</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4177-1"> 50 </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4177-1"> 1 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4177-1"> 1 </a> </td> <td > 30 </td> <td class="s"> barf "multiplot_next: need Gnuplot 4.7+\n" </td> </tr> <tr> <td class="h" > <a name="4178">4178</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $PDL::Graphics::Gnuplot::gp_version < 4.7; </td> </tr> <tr> <td class="h" > <a name="4179">4179</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="4180">4180</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "multiplot_next: you can't, you're not in multiplot mode\n" </td> </tr> <tr> <td class="h" > <a name="4181">4181</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4181-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 12 </td> <td class="s"> unless $this->{options}{multiplot}; </td> </tr> <tr> <td class="h" > <a name="4182">4182</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 9 </td> <td class="s"> my $plotcmd = $this->multiplot_next_generate; </td> </tr> <tr> <td class="h" > <a name="4183">4183</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> _printGnuplotPipe($this, "main", $plotcmd); </td> </tr> <tr> <td class="h" > <a name="4184">4184</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s"> my $checkpointMessage = _checkpoint($this, "main"); </td> </tr> <tr> <td class="h" > <a name="4185">4185</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4185-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 16 </td> <td class="s"> if ($checkpointMessage) { </td> </tr> <tr> <td class="h" > <a name="4186">4186</a> </td> <td class="c0" > <a href="#4187"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4186-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if ($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="4187">4187</a> </td> <td class="c0" > <a href="#4189"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: unexpected chatter after set multiplot next:\n$checkpointMessage\n"; </td> </tr> <tr> <td class="h" > <a name="4188">4188</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4189">4189</a> </td> <td class="c0" > <a href="#4199"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf("Gnuplot error: set multiplot next failed!\n$checkpointMessage"); </td> </tr> <tr> <td class="h" > <a name="4190">4190</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4191">4191</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4192">4192</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4193">4193</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4194">4194</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub end_multi_generate { </td> </tr> <tr> <td class="h" > <a name="4195">4195</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4195-1"> 3 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4195-1"> 1 </a> </td> <td > 1166 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="4196">4196</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "end_multi: you can't, you're not in multiplot mode\n" </td> </tr> <tr> <td class="h" > <a name="4197">4197</a> </td> <td class="c3" > 3 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4197-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> unless $this->{options}{multiplot}; </td> </tr> <tr> <td class="h" > <a name="4198">4198</a> </td> <td class="c3" > 3 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4198-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s"> if ($check_syntax) { </td> </tr> <tr> <td class="h" > <a name="4199">4199</a> </td> <td class="c0" > <a href="#4200"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this, "syntax", "unset multiplot\n"); </td> </tr> <tr> <td class="h" > <a name="4200">4200</a> </td> <td class="c0" > <a href="#4201"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $checkpointMessage = _checkpoint($this, "syntax"); </td> </tr> <tr> <td class="h" > <a name="4201">4201</a> </td> <td class="c0" > <a href="#4216"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4201-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Gnuplot error: unset multiplot failed on syntax check!\n$checkpointMessage" </td> </tr> <tr> <td class="h" > <a name="4202">4202</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $checkpointMessage; </td> </tr> <tr> <td class="h" > <a name="4203">4203</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4204">4204</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> $this->{options}{multiplot} = 0; </td> </tr> <tr> <td class="h" > <a name="4205">4205</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 15 </td> <td class="s"> "unset multiplot\n"; </td> </tr> <tr> <td class="h" > <a name="4206">4206</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4207">4207</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4208">4208</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub end_multi { </td> </tr> <tr> <td class="h" > <a name="4209">4209</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4209-1"> 2 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4209-1"> 1 </a> </td> <td > 29 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="4210">4210</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "end_multi: you can't, you're not in multiplot mode\n" </td> </tr> <tr> <td class="h" > <a name="4211">4211</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4211-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s"> unless $this->{options}{multiplot}; </td> </tr> <tr> <td class="h" > <a name="4212">4212</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s"> my $plotcmd = $this->end_multi_generate; </td> </tr> <tr> <td class="h" > <a name="4213">4213</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 9 </td> <td class="s"> _printGnuplotPipe($this, "main", $plotcmd); </td> </tr> <tr> <td class="h" > <a name="4214">4214</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s"> my $checkpointMessage = _checkpoint($this, "main"); </td> </tr> <tr> <td class="h" > <a name="4215">4215</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4215-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 17 </td> <td class="s"> if ($checkpointMessage) { </td> </tr> <tr> <td class="h" > <a name="4216">4216</a> </td> <td class="c0" > <a href="#4217"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4216-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if ($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="4217">4217</a> </td> <td class="c0" > <a href="#4219"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: unexpected chatter after unset multiplot:\n$checkpointMessage\n"; </td> </tr> <tr> <td class="h" > <a name="4218">4218</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4219">4219</a> </td> <td class="c0" > <a href="#4255"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf("Gnuplot error: unset multiplot failed!\n$checkpointMessage"); </td> </tr> <tr> <td class="h" > <a name="4220">4220</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4221">4221</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4222">4222</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4222-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 23 </td> <td class="s"> $this->close if !$termTab->{$this->{terminal}}{disp}; </td> </tr> <tr> <td class="h" > <a name="4223">4223</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4224">4224</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4225">4225</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="4226">4226</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## </td> </tr> <tr> <td class="h" > <a name="4227">4227</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Input support </td> </tr> <tr> <td class="h" > <a name="4228">4228</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## </td> </tr> <tr> <td class="h" > <a name="4229">4229</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4230">4230</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="4231">4231</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4232">4232</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 read_mouse </td> </tr> <tr> <td class="h" > <a name="4233">4233</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4234">4234</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="4235">4235</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4236">4236</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ($x,$y,$char,$modstring) = $w->read_mouse($message); </td> </tr> <tr> <td class="h" > <a name="4237">4237</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $hash = $w->read_mouse($message); </td> </tr> <tr> <td class="h" > <a name="4238">4238</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4239">4239</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="4240">4240</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4241">4241</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Get a mouse click or keystroke from the active interactive plot window. </td> </tr> <tr> <td class="h" > <a name="4242">4242</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4243">4243</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> For interactive devices (e.g. x11, wxt, aqua), read_mouse lets you accept a </td> </tr> <tr> <td class="h" > <a name="4244">4244</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> keystroke or mouse button input from the gnuplot window. In list context, it </td> </tr> <tr> <td class="h" > <a name="4245">4245</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> returns four arguments containing the reported X, Y, keystroke character, and </td> </tr> <tr> <td class="h" > <a name="4246">4246</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> modifiers packed in a string. In scalar context, it returns a hash ref containing </td> </tr> <tr> <td class="h" > <a name="4247">4247</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> those things. </td> </tr> <tr> <td class="h" > <a name="4248">4248</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4249">4249</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> read_mouse blocks execution for input, but responds gracefully to interrupts. </td> </tr> <tr> <td class="h" > <a name="4250">4250</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4251">4251</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="4252">4252</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4253">4253</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $mouse_serial = 0; </td> </tr> <tr> <td class="h" > <a name="4254">4254</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub read_mouse { </td> </tr> <tr> <td class="h" > <a name="4255">4255</a> </td> <td class="c0" > <a href="#4256"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4255-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4255-1"> 1 </a> </td> <td > 0 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="4256">4256</a> </td> <td class="c0" > <a href="#4258"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#4256-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $message = shift() // "Click mouse or press key in plot to continue..."; </td> </tr> <tr> <td class="h" > <a name="4257">4257</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4258">4258</a> </td> <td class="c0" > <a href="#4259"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4258-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless($this->{mouse}) { </td> </tr> <tr> <td class="h" > <a name="4259">4259</a> </td> <td class="c0" > <a href="#4260"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $s = "read_mouse: This plot uses the '$this->{terminal}' terminal, which doesn't support mousing\n"; </td> </tr> <tr> <td class="h" > <a name="4260">4260</a> </td> <td class="c0" > <a href="#4261"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my @terms = (); </td> </tr> <tr> <td class="h" > <a name="4261">4261</a> </td> <td class="c0" > <a href="#4262"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> for my $k(sort keys %$termTab) { </td> </tr> <tr> <td class="h" > <a name="4262">4262</a> </td> <td class="c0" > <a href="#4264"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4262-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> push(@terms, $k) if($termTab->{$k}->{mouse} ); </td> </tr> <tr> <td class="h" > <a name="4263">4263</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4264">4264</a> </td> <td class="c0" > <a href="#4265"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4264-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(@terms==0) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4265">4265</a> </td> <td class="c0" > <a href="#4267"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "Sorry, your gnuplot engine doesn't have any mousing terminal types.\n"; </td> </tr> <tr> <td class="h" > <a name="4266">4266</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(@terms==1) { </td> </tr> <tr> <td class="h" > <a name="4267">4267</a> </td> <td class="c0" > <a href="#4269"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "Your gnuplot supports mousing only on the $terms[0] device.\n"; </td> </tr> <tr> <td class="h" > <a name="4268">4268</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4269">4269</a> </td> <td class="c0" > <a href="#4272"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "Your gnuplot supports mousing on these devices: ".join(", ", @terms)."\n"; </td> </tr> <tr> <td class="h" > <a name="4270">4270</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4271">4271</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4272">4272</a> </td> <td class="c0" > <a href="#4276"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf $s."\n"; </td> </tr> <tr> <td class="h" > <a name="4273">4273</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4274">4274</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4275">4275</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "read_mouse: no existing plot to mouse on!\n" </td> </tr> <tr> <td class="h" > <a name="4276">4276</a> </td> <td class="c0" > <a href="#4278"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4276-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless($this->{replottable}); </td> </tr> <tr> <td class="h" > <a name="4277">4277</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4278">4278</a> </td> <td class="c0" > <a href="#4279"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $mouse_serial++; </td> </tr> <tr> <td class="h" > <a name="4279">4279</a> </td> <td class="c0" > <a href="#4281"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $string = _checkpoint($this, "main", {notimeout=>1}); </td> </tr> <tr> <td class="h" > <a name="4280">4280</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4281">4281</a> </td> <td class="c0" > <a href="#4283"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print STDERR $message; </td> </tr> <tr> <td class="h" > <a name="4282">4282</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4283">4283</a> </td> <td class="c0" > <a href="#4286"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my($ch,$x,$y,$b,$sft,$alt,$ctl); </td> </tr> <tr> <td class="h" > <a name="4284">4284</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4285">4285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Pre-4.7, Gnuplot reported MOUSE_BUTTON on a mouse button. That changed in 4.7. </td> </tr> <tr> <td class="h" > <a name="4286">4286</a> </td> <td class="c0" > <a href="#4287"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4286-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($gp_version < 4.7) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4287">4287</a> </td> <td class="c0" > <a href="#4292"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this, "main", <<"EOC" ); </td> </tr> <tr> <td class="h" > <a name="4288">4288</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pause mouse any </td> </tr> <tr> <td class="h" > <a name="4289">4289</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( (exists("MOUSE_BUTTON") * exists("MOUSE_X") * exists("MOUSE_Y")) ) print "Key: -1 at xy:",MOUSE_X,",",MOUSE_Y," button:",MOUSE_BUTTON," shift:",MOUSE_SHIFT," alt:",MOUSE_ALT," ctrl:",MOUSE_CTRL; else print "Key: ",MOUSE_KEY; </td> </tr> <tr> <td class="h" > <a name="4290">4290</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOC </td> </tr> <tr> <td class="h" > <a name="4291">4291</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4292">4292</a> </td> <td class="c0" > <a href="#4294"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $string = _checkpoint($this, "main", {notimeout=>1}); </td> </tr> <tr> <td class="h" > <a name="4293">4293</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4294">4294</a> </td> <td class="c0" > <a href="#4297"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4294-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $string =~ m/Key: (\-?\d+)( +at xy:([^\s\,]+)\,([^\s\,]+)? button:(\d+)? shift:(\d+) alt:(\d+) ctrl:(\d+))?\s*$/ </td> </tr> <tr> <td class="h" > <a name="4295">4295</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> || barf "read_mouse: string '$string' doesn't look right - doesn't match parse regexp.\n"; </td> </tr> <tr> <td class="h" > <a name="4296">4296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4297">4297</a> </td> <td class="c0" > <a href="#4303"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#4297-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> ($ch,$x,$y,$b,$sft,$alt,$ctl) = map $_//"", ($1,$3,$4,$5,$6,$7,$8); </td> </tr> <tr> <td class="h" > <a name="4298">4298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4299">4299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4300">4300</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4301">4301</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Gnuplot 4.7 runs button input into the Key indicator. </td> </tr> <tr> <td class="h" > <a name="4302">4302</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif($gp_version >= 4.7) { </td> </tr> <tr> <td class="h" > <a name="4303">4303</a> </td> <td class="c0" > <a href="#4311"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this,"main",<<"EOC"); </td> </tr> <tr> <td class="h" > <a name="4304">4304</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pause mouse any </td> </tr> <tr> <td class="h" > <a name="4305">4305</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( (exists("MOUSE_KEY")) ) print "Key:",MOUSE_KEY; else print "Key:"; </td> </tr> <tr> <td class="h" > <a name="4306">4306</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( (exists("MOUSE_X") * exists("MOUSE_Y")) ) print "at xy:",MOUSE_X,",",MOUSE_Y; else print "at xy:-1,-1"; </td> </tr> <tr> <td class="h" > <a name="4307">4307</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( (exists("MOUSE_SHIFT") ) ) print "shift:",MOUSE_SHIFT; else print "shift:"; </td> </tr> <tr> <td class="h" > <a name="4308">4308</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( (exists("MOUSE_ALT"))) print "alt:",MOUSE_ALT; else print "alt:"; </td> </tr> <tr> <td class="h" > <a name="4309">4309</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( (exists("MOUSE_CTRL")) ) print "ctrl:",MOUSE_CTRL; else print "ctrl:"; </td> </tr> <tr> <td class="h" > <a name="4310">4310</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOC </td> </tr> <tr> <td class="h" > <a name="4311">4311</a> </td> <td class="c0" > <a href="#4312"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $string = _checkpoint($this, "main", {notimeout=>1}); </td> </tr> <tr> <td class="h" > <a name="4312">4312</a> </td> <td class="c0" > <a href="#4314"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $string =~ s/[\r\n]/ /sg; </td> </tr> <tr> <td class="h" > <a name="4313">4313</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4314">4314</a> </td> <td class="c0" > <a href="#4317"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4314-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $string =~ m/Key:\s*(\-?\d+)( +at xy:\s*([^\s\,]+)\s*\,\s*([^\s\,]+) shift:\s*(\d+) alt:\s*(\d+) ctrl:\s*(\d+))?/ </td> </tr> <tr> <td class="h" > <a name="4315">4315</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> || barf "read_mouse: string '$string' doesn't look right - doesn't match parse regexp.\n"; </td> </tr> <tr> <td class="h" > <a name="4316">4316</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4317">4317</a> </td> <td class="c0" > <a href="#4319"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#4317-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> ($ch,$x,$y,$sft,$alt,$ctl) = map $_ // "", ($1,$3,$4,$5,$6,$7); </td> </tr> <tr> <td class="h" > <a name="4318">4318</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4319">4319</a> </td> <td class="c0" > <a href="#4320"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4319-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($ch == 1063) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-3"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4320">4320</a> </td> <td class="c0" > <a href="#4321"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $b = 1; </td> </tr> <tr> <td class="h" > <a name="4321">4321</a> </td> <td class="c0" > <a href="#4323"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $ch = -1; </td> </tr> <tr> <td class="h" > <a name="4322">4322</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif($ch == 2) { </td> </tr> <tr> <td class="h" > <a name="4323">4323</a> </td> <td class="c0" > <a href="#4324"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $b = 2; </td> </tr> <tr> <td class="h" > <a name="4324">4324</a> </td> <td class="c0" > <a href="#4326"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $ch = -1; </td> </tr> <tr> <td class="h" > <a name="4325">4325</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif($ch == 65406) { </td> </tr> <tr> <td class="h" > <a name="4326">4326</a> </td> <td class="c0" > <a href="#4327"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $b = 3; </td> </tr> <tr> <td class="h" > <a name="4327">4327</a> </td> <td class="c0" > <a href="#4331"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $ch = -1; </td> </tr> <tr> <td class="h" > <a name="4328">4328</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4329">4329</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4330">4330</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4331">4331</a> </td> <td class="c0" > <a href="#4332"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4331-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $bm = { b=>$b, m=>($sft?"S":"").($alt?"A":"").($ctl?"C":"") }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-3"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4332">4332</a> </td> <td class="c0" > <a href="#4441"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4332-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#4332-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return wantarray ? ($x,$y, ($ch>=32)?chr($ch):undef, $bm) : </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-3"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-4"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4333">4333</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="4334">4334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x' => $x, </td> </tr> <tr> <td class="h" > <a name="4335">4335</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y' => $y, </td> </tr> <tr> <td class="h" > <a name="4336">4336</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'k' => ($ch<0) ? "" : ($ch > 32 && $ch != 127) ? chr($ch) : sprintf("#%3.3d",$ch), </td> </tr> <tr> <td class="h" > <a name="4337">4337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> %$bm, </td> </tr> <tr> <td class="h" > <a name="4338">4338</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="4339">4339</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4340">4340</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4341">4341</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="4342">4342</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4343">4343</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 read_polygon </td> </tr> <tr> <td class="h" > <a name="4344">4344</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4345">4345</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="4346">4346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4347">4347</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $points = $w->read_polygon(%opt) </td> </tr> <tr> <td class="h" > <a name="4348">4348</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4349">4349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="4350">4350</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4351">4351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Read in a polygon by accepting mouse clicks. The polygon is returned as a 2xN PDL of ($x,$y) values in scientific units. Acceptable options are: </td> </tr> <tr> <td class="h" > <a name="4352">4352</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4353">4353</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="4354">4354</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4355">4355</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item message - what to print before collecting points </td> </tr> <tr> <td class="h" > <a name="4356">4356</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4357">4357</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> There are some printf-style escapes for the prompt: </td> </tr> <tr> <td class="h" > <a name="4358">4358</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4359">4359</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4360">4360</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> * C<%c> - expands to "an open" or "a closed" </td> </tr> <tr> <td class="h" > <a name="4361">4361</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4362">4362</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> * C<%n> - number of points currently in the polygon </td> </tr> <tr> <td class="h" > <a name="4363">4363</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4364">4364</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> * C<%N> - number of points expected for the polygon </td> </tr> <tr> <td class="h" > <a name="4365">4365</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4366">4366</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> * C<%k> - list of all keys accepted </td> </tr> <tr> <td class="h" > <a name="4367">4367</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4368">4368</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> * C<%%> - % </td> </tr> <tr> <td class="h" > <a name="4369">4369</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4370">4370</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item prompt - what to print to prompt the user for the next point </td> </tr> <tr> <td class="h" > <a name="4371">4371</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4372">4372</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<prompt> uses the same escapes as C<message>. </td> </tr> <tr> <td class="h" > <a name="4373">4373</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4374">4374</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item n_points - number of points to accept (or 0 for indefinite) </td> </tr> <tr> <td class="h" > <a name="4375">4375</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4376">4376</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> With 0 value, points are accepted until the user presses 'q' or 'ESC' on the keyboard with focus </td> </tr> <tr> <td class="h" > <a name="4377">4377</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> on the graph. With other value, points are accepted until that happens *or* until the number </td> </tr> <tr> <td class="h" > <a name="4378">4378</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> of points is at least n_points. </td> </tr> <tr> <td class="h" > <a name="4379">4379</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4380">4380</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item actions - hash of callback code refs indexed by character for action </td> </tr> <tr> <td class="h" > <a name="4381">4381</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4382">4382</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can optionally call a callback routine when any particular </td> </tr> <tr> <td class="h" > <a name="4383">4383</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> character is pressed. The actions table is a hash ref whose keys are </td> </tr> <tr> <td class="h" > <a name="4384">4384</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> characters and whose values are either code refs (to be called on the </td> </tr> <tr> <td class="h" > <a name="4385">4385</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> associated keypress) or array refs containing a short description </td> </tr> <tr> <td class="h" > <a name="4386">4386</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> string followed by a code ref. Non-printable characters (e.g. ESC, </td> </tr> <tr> <td class="h" > <a name="4387">4387</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> BS, DEL) are accessed via a hash followed by a three digit decimal </td> </tr> <tr> <td class="h" > <a name="4388">4388</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ASCII code -- e.g. "#127" for DEL. Button events are indexed with the </td> </tr> <tr> <td class="h" > <a name="4389">4389</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> strings "BUTTON1", "BUTTON2", and "BUTTON3", and modifications must be </td> </tr> <tr> <td class="h" > <a name="4390">4390</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> entered as well for shift, control, and </td> </tr> <tr> <td class="h" > <a name="4391">4391</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4392">4392</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The code ref receives the arguments ($obj, $c, $poly,$x,$y,$mods), where: </td> </tr> <tr> <td class="h" > <a name="4393">4393</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4394">4394</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 2 </td> </tr> <tr> <td class="h" > <a name="4395">4395</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4396">4396</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item C<$obj> is the plot object </td> </tr> <tr> <td class="h" > <a name="4397">4397</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4398">4398</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item C<$c> is the character (or "BUTTONC<n>" string), </td> </tr> <tr> <td class="h" > <a name="4399">4399</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4400">4400</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item C<$poly> is a scalar ref; $$poly is the current polygon before the action, </td> </tr> <tr> <td class="h" > <a name="4401">4401</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4402">4402</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item C<$x> and C<$y> are the current scientific coordinates, and </td> </tr> <tr> <td class="h" > <a name="4403">4403</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4404">4404</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item C<$mods> is the modifier string. </td> </tr> <tr> <td class="h" > <a name="4405">4405</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4406">4406</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> You can't override the 'q' or '#027' (ESC) callbacks. You *can* override </td> </tr> <tr> <td class="h" > <a name="4407">4407</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the BUTTON1 and DEL callbacks, potentially preventing the user from entering points </td> </tr> <tr> <td class="h" > <a name="4408">4408</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> at all! You should do that with caution. </td> </tr> <tr> <td class="h" > <a name="4409">4409</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4410">4410</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item closed - (default false): generate a closed polygon </td> </tr> <tr> <td class="h" > <a name="4411">4411</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4412">4412</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This works by duplicating the initial point at the end of the point list. </td> </tr> <tr> <td class="h" > <a name="4413">4413</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4414">4414</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item markup - (default 'linespoints'): style to use to render the polygon on the fly </td> </tr> <tr> <td class="h" > <a name="4415">4415</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4416">4416</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> If this is set to a true value, it should be a valid 'with' specifier (curve option). </td> </tr> <tr> <td class="h" > <a name="4417">4417</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The routine will call markup after each click. </td> </tr> <tr> <td class="h" > <a name="4418">4418</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4419">4419</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="4420">4420</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4421">4421</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="4422">4422</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4423">4423</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="4424">4424</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4425">4425</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This table describes option parsing for read_polygon. Its format is the same as for the large </td> </tr> <tr> <td class="h" > <a name="4426">4426</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $plotOptionsTable, below. Full Gnuplot options parsing is perhaps a bit overblown for this </td> </tr> <tr> <td class="h" > <a name="4427">4427</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # application, but it's present in the module so what the heck... </td> </tr> <tr> <td class="h" > <a name="4428">4428</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4429">4429</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $rpOptionsTable = { </td> </tr> <tr> <td class="h" > <a name="4430">4430</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> map { ( $_->[0] => ['s',undef,undef,undef,$_->[1]] ) } </td> </tr> <tr> <td class="h" > <a name="4431">4431</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ( ['message' => "Message to print before reading in polygon" ], </td> </tr> <tr> <td class="h" > <a name="4432">4432</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['prompt' => "Message to print for each point", ], </td> </tr> <tr> <td class="h" > <a name="4433">4433</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['n_points' => "Number of points (or 0 for indefinite)" ], </td> </tr> <tr> <td class="h" > <a name="4434">4434</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['closed', => "Flag: close polygon by copying first point" ], </td> </tr> <tr> <td class="h" > <a name="4435">4435</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['markup' => "Plot option for rendering, or undefined for none" ] </td> </tr> <tr> <td class="h" > <a name="4436">4436</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) }; </td> </tr> <tr> <td class="h" > <a name="4437">4437</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $rpOptionsTable->{actions} = ['H',undef,undef,undef,"Action table entries"]; </td> </tr> <tr> <td class="h" > <a name="4438">4438</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4439">4439</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $rpOpt = [$rpOptionsTable, _gen_abbrev_list(keys %$rpOptionsTable), "read_polygon option"]; </td> </tr> <tr> <td class="h" > <a name="4440">4440</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4441">4441</a> </td> <td class="c0" > <a href="#4442"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> sub read_polygon { </td> </tr> <tr> <td class="h" > <a name="4442">4442</a> </td> <td class="c0" > <a href="#4445"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4442-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4442-1"> 1 </a> </td> <td > 0 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="4443">4443</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4444">4444</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "read_polygon: $this->{terminal} terminal doesn't support mousing\n" </td> </tr> <tr> <td class="h" > <a name="4445">4445</a> </td> <td class="c0" > <a href="#4447"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4445-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless($this->{mouse}); </td> </tr> <tr> <td class="h" > <a name="4446">4446</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4447">4447</a> </td> <td class="c0" > <a href="#4448"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $poly = zeroes(2,0); # list of zero 2-D points </td> </tr> <tr> <td class="h" > <a name="4448">4448</a> </td> <td class="c0" > <a href="#4450"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> local($this->{quit}) = 0; </td> </tr> <tr> <td class="h" > <a name="4449">4449</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4450">4450</a> </td> <td class="c0" > <a href="#4464"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $opt = { </td> </tr> <tr> <td class="h" > <a name="4451">4451</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> message => <<'EOMSG' </td> </tr> <tr> <td class="h" > <a name="4452">4452</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Click points on the plot to form %c polygon. Use keys in window: </td> </tr> <tr> <td class="h" > <a name="4453">4453</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> %k </td> </tr> <tr> <td class="h" > <a name="4454">4454</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOMSG </td> </tr> <tr> <td class="h" > <a name="4455">4455</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> , </td> </tr> <tr> <td class="h" > <a name="4456">4456</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> prompt => "(%n points in polygon) Waiting for plot input....", </td> </tr> <tr> <td class="h" > <a name="4457">4457</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> n_points => 0, </td> </tr> <tr> <td class="h" > <a name="4458">4458</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> closed => 0, </td> </tr> <tr> <td class="h" > <a name="4459">4459</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> markup => "linespoints", </td> </tr> <tr> <td class="h" > <a name="4460">4460</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="4461">4461</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4462">4462</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $opt->{actions} = { </td> </tr> <tr> <td class="h" > <a name="4463">4463</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # These defaults can be overridden. </td> </tr> <tr> <td class="h" > <a name="4464">4464</a> </td> <td class="c0" > <a href="#4472"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> 'd' => ['Delete last point (or DEL or backspace or shift-button)', \&__del], </td> </tr> <tr> <td class="h" > <a name="4465">4465</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '#010' => \&__quit, # NEWLINE (ENTER) </td> </tr> <tr> <td class="h" > <a name="4466">4466</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '#013' => \&__quit, # RETURN </td> </tr> <tr> <td class="h" > <a name="4467">4467</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "#127" => \&__del, # DEL </td> </tr> <tr> <td class="h" > <a name="4468">4468</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "#008" => \&__del, # BS </td> </tr> <tr> <td class="h" > <a name="4469">4469</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'BUTTON1S' => \&__del, # shift-click </td> </tr> <tr> <td class="h" > <a name="4470">4470</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'BUTTON1' => ['Add a point',\&__add], </td> </tr> <tr> <td class="h" > <a name="4471">4471</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="4472">4472</a> </td> <td class="c0" > <a href="#4473"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print "\@_ is ".join(", ",@_)."\n"; </td> </tr> <tr> <td class="h" > <a name="4473">4473</a> </td> <td class="c0" > <a href="#4475"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _parseOptHash( $opt, $rpOpt, @_ ); </td> </tr> <tr> <td class="h" > <a name="4474">4474</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4475">4475</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print "actions table has keys: ",join(", ",sort keys %{$opt->{actions}}),"\n"; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#4477"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4476">4476</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4477">4477</a> </td> <td class="c0" > <a href="#4478"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $a = $opt->{actions}; </td> </tr> <tr> <td class="h" > <a name="4478">4478</a> </td> <td class="c0" > <a href="#4479"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $a->{"q"} = ['Quit / finish entry (or ESC)', \&__quit ]; </td> </tr> <tr> <td class="h" > <a name="4479">4479</a> </td> <td class="c0" > <a href="#4484"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $a->{"#027"} = \&__quit; </td> </tr> <tr> <td class="h" > <a name="4480">4480</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4481">4481</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### Parsing is complete, actions are in place. </td> </tr> <tr> <td class="h" > <a name="4482">4482</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4483">4483</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $pstring = sub { </td> </tr> <tr> <td class="h" > <a name="4484">4484</a> </td> <td class="c0" > <a href="#4485"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4484-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> my $s = shift; </td> </tr> <tr> <td class="h" > <a name="4485">4485</a> </td> <td class="c0" > <a href="#4486"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4485-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $z = ($opt->{closed}) ? "a closed" : "an open"; </td> </tr> <tr> <td class="h" > <a name="4486">4486</a> </td> <td class="c0" > <a href="#4488"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s =~ s/\%c/$z/g; </td> </tr> <tr> <td class="h" > <a name="4487">4487</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4488">4488</a> </td> <td class="c0" > <a href="#4489"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $z = $poly->dim(1); </td> </tr> <tr> <td class="h" > <a name="4489">4489</a> </td> <td class="c0" > <a href="#4491"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s =~ s/\%n/$z/g; </td> </tr> <tr> <td class="h" > <a name="4490">4490</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4491">4491</a> </td> <td class="c0" > <a href="#4492"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#4491-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $z = $opt->{n_points} || "indefinite"; </td> </tr> <tr> <td class="h" > <a name="4492">4492</a> </td> <td class="c0" > <a href="#4494"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s =~ s/\%N/$z/g; </td> </tr> <tr> <td class="h" > <a name="4493">4493</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4494">4494</a> </td> <td class="c0" > <a href="#4495"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4494-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($s =~ m/\%k/) { </td> </tr> <tr> <td class="h" > <a name="4495">4495</a> </td> <td class="c0" > <a href="#4496"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $z = "INPUT ACTIONS:\n"; </td> </tr> <tr> <td class="h" > <a name="4496">4496</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4496-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> for my $k(sort { (length($a) <=> length($b)) || ($a cmp $b) } keys %$a) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#4497"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4497">4497</a> </td> <td class="c0" > <a href="#4498"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4497-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(ref($a->{$k}) eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="4498">4498</a> </td> <td class="c0" > <a href="#4501"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $z .= sprintf("%10s: %s\n",$k,$a->{$k}->[0]); </td> </tr> <tr> <td class="h" > <a name="4499">4499</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4500">4500</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4501">4501</a> </td> <td class="c0" > <a href="#4504"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s =~ s/\%k/$z/g; </td> </tr> <tr> <td class="h" > <a name="4502">4502</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4503">4503</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4504">4504</a> </td> <td class="c0" > <a href="#4505"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s =~ s/\%\%/\%/g; </td> </tr> <tr> <td class="h" > <a name="4505">4505</a> </td> <td class="c0" > <a href="#4506"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="4506">4506</a> </td> <td class="c0" > <a href="#4508"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="4507">4507</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4508">4508</a> </td> <td class="c0" > <a href="#4510"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print &$pstring($opt->{message}); </td> </tr> <tr> <td class="h" > <a name="4509">4509</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4510">4510</a> </td> <td class="c0" > <a href="#4512"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $h; </td> </tr> <tr> <td class="h" > <a name="4511">4511</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> do { </td> </tr> <tr> <td class="h" > <a name="4512">4512</a> </td> <td class="c0" > <a href="#4513"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $h = $this->read_mouse(&$pstring($opt->{prompt})); </td> </tr> <tr> <td class="h" > <a name="4513">4513</a> </td> <td class="c0" > <a href="#4515"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4513-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $key = $h->{'b'} ? "BUTTON".$h->{'b'}.$h->{'m'} : $h->{'k'}; </td> </tr> <tr> <td class="h" > <a name="4514">4514</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4515">4515</a> </td> <td class="c0" > <a href="#4516"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4515-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(ref $a->{$key}) { </td> </tr> <tr> <td class="h" > <a name="4516">4516</a> </td> <td class="c0" > <a href="#4517"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4516-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $z = (ref($a->{$key}) eq 'CODE') ? $a->{$key} : $a->{$key}->[1]; </td> </tr> <tr> <td class="h" > <a name="4517">4517</a> </td> <td class="c0" > <a href="#4519"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> &$z($this, $key, \$poly, $h->{x}, $h->{y}, $h->{'m'}); </td> </tr> <tr> <td class="h" > <a name="4518">4518</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4519">4519</a> </td> <td class="c0" > <a href="#4521"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print "$key! "; </td> </tr> <tr> <td class="h" > <a name="4520">4520</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4521">4521</a> </td> <td class="c0" > <a href="#4523"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print "\n"; </td> </tr> <tr> <td class="h" > <a name="4522">4522</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4523">4523</a> </td> <td class="c0" > <a href="#4524"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4523-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($opt->{markup}) { </td> </tr> <tr> <td class="h" > <a name="4524">4524</a> </td> <td class="c0" > <a href="#4525"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4524-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($poly->dim(1)>0){ </td> </tr> <tr> <td class="h" > <a name="4525">4525</a> </td> <td class="c0" > <a href="#4529"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->markup( with => $opt->{markup},$poly->mv(-1,0)->dog); </td> </tr> <tr> <td class="h" > <a name="4526">4526</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4527">4527</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4528">4528</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4529">4529</a> </td> <td class="c0" > <a href="#4531"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#4529-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> } while(($h->{'b'} || $h->{'k'}) and !$this->{quit} and ($opt->{n_points}==0 or $poly->dim(1)<$opt->{n_points})); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-3"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-4"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4530">4530</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4531">4531</a> </td> <td class="c0" > <a href="#4533"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print "\n"; </td> </tr> <tr> <td class="h" > <a name="4532">4532</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4533">4533</a> </td> <td class="c0" > <a href="#4534"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4533-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($opt->{'closed'}) { </td> </tr> <tr> <td class="h" > <a name="4534">4534</a> </td> <td class="c0" > <a href="#4535"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $poly = $poly->glue(1,$poly->slice(":,(0)")); </td> </tr> <tr> <td class="h" > <a name="4535">4535</a> </td> <td class="c0" > <a href="#4536"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4535-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($opt->{markup}) { </td> </tr> <tr> <td class="h" > <a name="4536">4536</a> </td> <td class="c0" > <a href="#4537"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4536-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($poly->dim(1)>0) { </td> </tr> <tr> <td class="h" > <a name="4537">4537</a> </td> <td class="c0" > <a href="#4542"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->markup( with => $opt->{markup},$poly->mv(-1,0)->dog); </td> </tr> <tr> <td class="h" > <a name="4538">4538</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4539">4539</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4540">4540</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4541">4541</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4542">4542</a> </td> <td class="c0" > <a href="#4544"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $poly; </td> </tr> <tr> <td class="h" > <a name="4543">4543</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4544">4544</a> </td> <td class="c0" > <a href="#4545"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4544-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> sub __del { my($w, $c, $p) = @_; </td> </tr> <tr> <td class="h" > <a name="4545">4545</a> </td> <td class="c0" > <a href="#4546"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4545-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#4545-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return unless( ($$p)->$_isa('PDL') and (($$p)->dim(1)>0) ); </td> </tr> <tr> <td class="h" > <a name="4546">4546</a> </td> <td class="c0" > <a href="#4547"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $$p = $$p->slice(',0:-2')->sever; </td> </tr> <tr> <td class="h" > <a name="4547">4547</a> </td> <td class="c0" > <a href="#4550"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return; </td> </tr> <tr> <td class="h" > <a name="4548">4548</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4549">4549</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4550">4550</a> </td> <td class="c0" > <a href="#4552"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4550-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> sub __quit { $_[0]->{quit} = 1; } </td> </tr> <tr> <td class="h" > <a name="4551">4551</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4552">4552</a> </td> <td class="c0" > <a href="#4553"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4552-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> sub __add { my($w,$c,$p,$x,$y,$m) = @_; </td> </tr> <tr> <td class="h" > <a name="4553">4553</a> </td> <td class="c0" > <a href="#4575"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $$p = $$p->glue(1,pdl($x,$y)); </td> </tr> <tr> <td class="h" > <a name="4554">4554</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4555">4555</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4556">4556</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4557">4557</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="4558">4558</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4559">4559</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 pause_until_close </td> </tr> <tr> <td class="h" > <a name="4560">4560</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4561">4561</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="4562">4562</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4563">4563</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->pause_until_close; </td> </tr> <tr> <td class="h" > <a name="4564">4564</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4565">4565</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="4566">4566</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4567">4567</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Wait until the active interactive plot window is closed (e.g., by clicking the </td> </tr> <tr> <td class="h" > <a name="4568">4568</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> close button, hitting the close key-binding which defaults to C<q>). </td> </tr> <tr> <td class="h" > <a name="4569">4569</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4570">4570</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<pause_until_close> blocks execution until the close event. </td> </tr> <tr> <td class="h" > <a name="4571">4571</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4572">4572</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="4573">4573</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4574">4574</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub pause_until_close { </td> </tr> <tr> <td class="h" > <a name="4575">4575</a> </td> <td class="c0" > <a href="#4578"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4575-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4575-1"> 1 </a> </td> <td > 0 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="4576">4576</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4577">4577</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "pause_until_close: $this->{terminal} terminal doesn't support mousing\n" </td> </tr> <tr> <td class="h" > <a name="4578">4578</a> </td> <td class="c0" > <a href="#4580"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4578-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless($this->{mouse}); </td> </tr> <tr> <td class="h" > <a name="4579">4579</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4580">4580</a> </td> <td class="c0" > <a href="#4583"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _printGnuplotPipe($this, 'main', <<'EOC'); </td> </tr> <tr> <td class="h" > <a name="4581">4581</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pause mouse close </td> </tr> <tr> <td class="h" > <a name="4582">4582</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOC </td> </tr> <tr> <td class="h" > <a name="4583">4583</a> </td> <td class="c0" > <a href="#4585"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _checkpoint($this, "main", {notimeout=>1}); </td> </tr> <tr> <td class="h" > <a name="4584">4584</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4585">4585</a> </td> <td class="c0" > <a href="#4638"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return; </td> </tr> <tr> <td class="h" > <a name="4586">4586</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4587">4587</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4588">4588</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="4589">4589</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="4590">4590</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="4591">4591</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="4592">4592</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Parsing routines </td> </tr> <tr> <td class="h" > <a name="4593">4593</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="4594">4594</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### The task of parsing input parameters is nontrivial. It is </td> </tr> <tr> <td class="h" > <a name="4595">4595</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### pushed off to several internal routines, which are here. </td> </tr> <tr> <td class="h" > <a name="4596">4596</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="4597">4597</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4598">4598</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="4599">4599</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # parsing helpers... </td> </tr> <tr> <td class="h" > <a name="4600">4600</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4601">4601</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="4602">4602</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _gen_abbrev_list breaks a collection of keywords out into a hash linking </td> </tr> <tr> <td class="h" > <a name="4603">4603</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # unique abbreviations to the expanded keyword, for _expand_abbrev below. </td> </tr> <tr> <td class="h" > <a name="4604">4604</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Cheesy and also awful as an added bonus. </td> </tr> <tr> <td class="h" > <a name="4605">4605</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _gen_abbrev_list { </td> </tr> <tr> <td class="h" > <a name="4606">4606</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4606-1"> 23 </a> </td> <td >   </td> <td > 253 </td> <td class="s"> my @keys = @_; </td> </tr> <tr> <td class="h" > <a name="4607">4607</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 62 </td> <td class="s"> my $hash = {}; </td> </tr> <tr> <td class="h" > <a name="4608">4608</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 79 </td> <td class="s"> for my $k(@keys) { </td> </tr> <tr> <td class="h" > <a name="4609">4609</a> </td> <td class="c3" > 681 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1643 </td> <td class="s"> for my $i(0..length($k)-2) { </td> </tr> <tr> <td class="h" > <a name="4610">4610</a> </td> <td class="c3" > 3928 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7209 </td> <td class="s"> my $s = substr($k,0,$i+1); </td> </tr> <tr> <td class="h" > <a name="4611">4611</a> </td> <td class="c3" > 3928 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4611-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 8606 </td> <td class="s"> if(exists($hash->{$s})) { </td> </tr> <tr> <td class="h" > <a name="4612">4612</a> </td> <td class="c3" > 827 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2411 </td> <td class="s"> push(@{$hash->{$s}},$k) </td> </tr> <tr> <td class="h" > <a name="4613">4613</a> </td> <td class="c3" > 828 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4613-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2554 </td> <td class="s"> unless($hash->{$s}->[0] eq $s); # exact matches override abbrevs </td> </tr> <tr> <td class="h" > <a name="4614">4614</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4615">4615</a> </td> <td class="c3" > 3100 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12468 </td> <td class="s"> $hash->{$s} = [$k]; </td> </tr> <tr> <td class="h" > <a name="4616">4616</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4617">4617</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4618">4618</a> </td> <td class="c3" > 681 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2375 </td> <td class="s"> $hash->{$k}=[$k]; # exact match always matches only the exact match </td> </tr> <tr> <td class="h" > <a name="4619">4619</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4620">4620</a> </td> <td class="c3" > 23 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 180 </td> <td class="s"> return $hash; </td> </tr> <tr> <td class="h" > <a name="4621">4621</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4622">4622</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4623">4623</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _expand_abbrev { </td> </tr> <tr> <td class="h" > <a name="4624">4624</a> </td> <td class="c3" > 280 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#4624-1"> 50 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4624-1"> 280 </a> </td> <td >   </td> <td > 889 </td> <td class="s"> my $s = shift() // ""; </td> </tr> <tr> <td class="h" > <a name="4625">4625</a> </td> <td class="c3" > 280 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 833 </td> <td class="s"> my $sl = lc($s); </td> </tr> <tr> <td class="h" > <a name="4626">4626</a> </td> <td class="c3" > 280 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 552 </td> <td class="s"> my $abbrevs = shift; </td> </tr> <tr> <td class="h" > <a name="4627">4627</a> </td> <td class="c3" > 280 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 651 </td> <td class="s"> my $name = shift; </td> </tr> <tr> <td class="h" > <a name="4628">4628</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4629">4629</a> </td> <td class="c3" > 280 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 558 </td> <td class="s"> my $snum = undef; </td> </tr> <tr> <td class="h" > <a name="4630">4630</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4631">4631</a> </td> <td class="c3" > 280 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4631-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 897 </td> <td class="s"> unless(exists($abbrevs->{$sl})) { </td> </tr> <tr> <td class="h" > <a name="4632">4632</a> </td> <td class="c3" > 33 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4632-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 236 </td> <td class="s"> if($sl =~ s/(\d+)\s*$//) { </td> </tr> <tr> <td class="h" > <a name="4633">4633</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 31 </td> <td class="s"> $snum = $1; </td> </tr> <tr> <td class="h" > <a name="4634">4634</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4635">4635</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4636">4636</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4637">4637</a> </td> <td class="c3" > 280 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4637-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 845 </td> <td class="s"> die "No $name found that matches '$s'\n" if !exists $abbrevs->{$sl}; </td> </tr> <tr> <td class="h" > <a name="4638">4638</a> </td> <td class="c0" > <a href="#5537"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Error: ambiguous $name: '$s' could be one of { ".join(", ",@{$abbrevs->{$sl}})." }\n" </td> </tr> <tr> <td class="h" > <a name="4639">4639</a> </td> <td class="c3" > 248 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4639-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 416 </td> <td class="s"> if @{$abbrevs->{$sl}}>1; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 248 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 994 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4640">4640</a> </td> <td class="c3" > 248 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#4640-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1350 </td> <td class="s"> return wantarray ? ($abbrevs->{$sl}->[0],$snum) : $abbrevs->{$sl}->[0]; </td> </tr> <tr> <td class="h" > <a name="4641">4641</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4642">4642</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4643">4643</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="4644">4644</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # pOptionsTable - describes valid plot options and their allowed value types </td> </tr> <tr> <td class="h" > <a name="4645">4645</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="4646">4646</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The keywords are the option name (from the Gnuplot 4.6 manual); the values are </td> </tr> <tr> <td class="h" > <a name="4647">4647</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # an array ref containing: </td> </tr> <tr> <td class="h" > <a name="4648">4648</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - value type: </td> </tr> <tr> <td class="h" > <a name="4649">4649</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * array ref for a single value with options (first is default) </td> </tr> <tr> <td class="h" > <a name="4650">4650</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "b" for boolean flag (actually ternary: true/false/undef) </td> </tr> <tr> <td class="h" > <a name="4651">4651</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "n" for number </td> </tr> <tr> <td class="h" > <a name="4652">4652</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "s" for a scalar string </td> </tr> <tr> <td class="h" > <a name="4653">4653</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "l" for a list of options; none required; passing in a number yields a boolean, or undef deletes. </td> </tr> <tr> <td class="h" > <a name="4654">4654</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "ln" for a list of options; none required; passing in a number copies to list, or undef deletes. </td> </tr> <tr> <td class="h" > <a name="4655">4655</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "C" for cumulative list of options; scalar values OK </td> </tr> <tr> <td class="h" > <a name="4656">4656</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "H" for a hash list of options </td> </tr> <tr> <td class="h" > <a name="4657">4657</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "N" for multivalue with optional first-parameter index </td> </tr> <tr> <td class="h" > <a name="4658">4658</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (NOTE this is explicitly hardwired into _parseOptHash to accept trailing numbers </td> </tr> <tr> <td class="h" > <a name="4659">4659</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # in the keyword itself, to enable passing multiple multivalue numbers with different labels </td> </tr> <tr> <td class="h" > <a name="4660">4660</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # in a hash ref -- search for "HARDWIRED-N" to find the place) </td> </tr> <tr> <td class="h" > <a name="4661">4661</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * code ref for code checker: gets ($old-val, $new-param, $hash); returns new values </td> </tr> <tr> <td class="h" > <a name="4662">4662</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (with possible side effects on the object, e.g. for "device") </td> </tr> <tr> <td class="h" > <a name="4663">4663</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - output form: </td> </tr> <tr> <td class="h" > <a name="4664">4664</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * nothing: output single value or all list values on a single line </td> </tr> <tr> <td class="h" > <a name="4665">4665</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * ",": output list values as a comma-separated list on a single line (default is with spaces) </td> </tr> <tr> <td class="h" > <a name="4666">4666</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "1": output list values one per line </td> </tr> <tr> <td class="h" > <a name="4667">4667</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "H": output hash-of-lists, one list per line, with leading key </td> </tr> <tr> <td class="h" > <a name="4668">4668</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * "N": output list-of-lists, one list per line, with leading index </td> </tr> <tr> <td class="h" > <a name="4669">4669</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * code ref for code emitter: accepts key, value, source options hash, and object; returns </td> </tr> <tr> <td class="h" > <a name="4670">4670</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (potentially multiline) string of commands. </td> </tr> <tr> <td class="h" > <a name="4671">4671</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * hash ref for value context switch: keys are </td> </tr> <tr> <td class="h" > <a name="4672">4672</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # accepted/understood keywords, values are output form for further keywords. </td> </tr> <tr> <td class="h" > <a name="4673">4673</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is only valid with options lists ('l' input), and is used to keep track of </td> </tr> <tr> <td class="h" > <a name="4674">4674</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (e.g.) which keywords should be auto-quoted. </td> </tr> <tr> <td class="h" > <a name="4675">4675</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * array ref is not allowed in pOptionsTable but *is* allowed in cOptionsTable below. </td> </tr> <tr> <td class="h" > <a name="4676">4676</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="4677">4677</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - sort-after: </td> </tr> <tr> <td class="h" > <a name="4678">4678</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * nothing: can appear in no particular order </td> </tr> <tr> <td class="h" > <a name="4679">4679</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * array ref: options later than which this option should be presented </td> </tr> <tr> <td class="h" > <a name="4680">4680</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="4681">4681</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - sort-order </td> </tr> <tr> <td class="h" > <a name="4682">4682</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * a number: numbered options, if present appear at the beginning of the option dump, in numerical order. </td> </tr> <tr> <td class="h" > <a name="4683">4683</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="4684">4684</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - documentation-string (optional) </td> </tr> <tr> <td class="h" > <a name="4685">4685</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="4686">4686</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # keywords with capital-letter value types are recognized even with a trailing number in the keyword; </td> </tr> <tr> <td class="h" > <a name="4687">4687</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # this is to allow multiple values to be set in a single hash. In the default scalar output, the </td> </tr> <tr> <td class="h" > <a name="4688">4688</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # empty string causes "unset" to be emitted, while undef causes nothing to be emitted. </td> </tr> <tr> <td class="h" > <a name="4689">4689</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $palettesTab; </td> </tr> <tr> <td class="h" > <a name="4690">4690</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4691">4691</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # suffix => terminal type, options </td> </tr> <tr> <td class="h" > <a name="4692">4692</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $hardCopySuffixes = { </td> </tr> <tr> <td class="h" > <a name="4693">4693</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'gif'=>'gif', </td> </tr> <tr> <td class="h" > <a name="4694">4694</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'jpg'=>'jpeg', </td> </tr> <tr> <td class="h" > <a name="4695">4695</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'jpeg'=>'jpeg', </td> </tr> <tr> <td class="h" > <a name="4696">4696</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pdf'=>'pdfcairo solid color font ",10" size 11in,8.5in', </td> </tr> <tr> <td class="h" > <a name="4697">4697</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'png'=>'png', </td> </tr> <tr> <td class="h" > <a name="4698">4698</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ps'=>'postscript solid color landscape 10 size 11in,8.5in', </td> </tr> <tr> <td class="h" > <a name="4699">4699</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'eps'=>'postscript eps', </td> </tr> <tr> <td class="h" > <a name="4700">4700</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'svg'=>'svg' </td> </tr> <tr> <td class="h" > <a name="4701">4701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="4702">4702</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4703">4703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4704">4704</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $pOptionsTable = </td> </tr> <tr> <td class="h" > <a name="4705">4705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="4706">4706</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Start with pseudo-options we use internally. </td> </tr> <tr> <td class="h" > <a name="4707">4707</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '3d' => ['s', sub { "" }, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4708">4708</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Make the current plot 3d (gnuplot "splot" command).' ], </td> </tr> <tr> <td class="h" > <a name="4709">4709</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'trid' => [sub { my($o,$n,$h)=@_; $h->{'3d'}=$n; return undef}, sub { "" }, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4710">4710</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Make the current plot 3d (synonym for "3d").' ], </td> </tr> <tr> <td class="h" > <a name="4711">4711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'binary' => ['b', sub {""}, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4712">4712</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Communicate with gnuplot in binary mode (default on non-Microsoft platforms).' ], </td> </tr> <tr> <td class="h" > <a name="4713">4713</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ascii' => [sub { my($old, $new, $hash) = @_; </td> </tr> <tr> <td class="h" > <a name="4714">4714</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $hash->{binary} = !$new; </td> </tr> <tr> <td class="h" > <a name="4715">4715</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, sub {""}, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4716">4716</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Antonym for "binary" (default is 0 for non-Microsoft platforms).' ], </td> </tr> <tr> <td class="h" > <a name="4717">4717</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'device' => [ sub { my ($old, $new, $hash) = @_; </td> </tr> <tr> <td class="h" > <a name="4718">4718</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Can't set device while in multiplot mode!\n" if($hash->{multiplot}); </td> </tr> <tr> <td class="h" > <a name="4719">4719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Device option format: [<filename>]/<terminal-type>\n" </td> </tr> <tr> <td class="h" > <a name="4720">4720</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $new !~ m/^(.*)\/([^\/]*)$/; </td> </tr> <tr> <td class="h" > <a name="4721">4721</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $hash->{terminal} = $2; </td> </tr> <tr> <td class="h" > <a name="4722">4722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $hash->{output} = $1 || undef; </td> </tr> <tr> <td class="h" > <a name="4723">4723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return undef; </td> </tr> <tr> <td class="h" > <a name="4724">4724</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4725">4725</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { "" }, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4726">4726</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Shorthand for device spec.: "dev=>\'<output/<terminal>\'".' ], </td> </tr> <tr> <td class="h" > <a name="4727">4727</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4728">4728</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hardcopy' => [ sub { my ($old, $new, $hash) = @_; </td> </tr> <tr> <td class="h" > <a name="4729">4729</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Can't set hardcopy while in multiplot mode!\n" if($hash->{multiplot}); </td> </tr> <tr> <td class="h" > <a name="4730">4730</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "hardcopy: need a file suffix to infer file type\n" </td> </tr> <tr> <td class="h" > <a name="4731">4731</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $new !~ m/\.([a-z]+)$/i; </td> </tr> <tr> <td class="h" > <a name="4732">4732</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $suffix = lc $1; </td> </tr> <tr> <td class="h" > <a name="4733">4733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "hardcopy: couldn't identify file type from '$new'\n" </td> </tr> <tr> <td class="h" > <a name="4734">4734</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if !$hardCopySuffixes->{$suffix}; </td> </tr> <tr> <td class="h" > <a name="4735">4735</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $hash->{terminal} = $hardCopySuffixes->{$suffix}; </td> </tr> <tr> <td class="h" > <a name="4736">4736</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $hash->{output} = $new; </td> </tr> <tr> <td class="h" > <a name="4737">4737</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return undef; </td> </tr> <tr> <td class="h" > <a name="4738">4738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, sub {""},undef,undef, </td> </tr> <tr> <td class="h" > <a name="4739">4739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Shorthand for device spec.: standard image formats inferred by suffix' ], </td> </tr> <tr> <td class="h" > <a name="4740">4740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4741">4741</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'dump' => [ </td> </tr> <tr> <td class="h" > <a name="4742">4742</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { my $newval = $_[1]; </td> </tr> <tr> <td class="h" > <a name="4743">4743</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($newval && !$_[2]->{dump}) { </td> </tr> <tr> <td class="h" > <a name="4744">4744</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp "WARNING - dumping ON - gnuplot commands go to the terminal only.\n"; </td> </tr> <tr> <td class="h" > <a name="4745">4745</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif($_[2]->{dump} && !$newval) { </td> </tr> <tr> <td class="h" > <a name="4746">4746</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp "WARNING - dumping OFF - gnuplot commands will be used for plotting.\n"; </td> </tr> <tr> <td class="h" > <a name="4747">4747</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4748">4748</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $newval; </td> </tr> <tr> <td class="h" > <a name="4749">4749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4750">4750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { "" },undef, undef, </td> </tr> <tr> <td class="h" > <a name="4751">4751</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Redirect gnuplot commands to stdout for inspection' </td> </tr> <tr> <td class="h" > <a name="4752">4752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ], </td> </tr> <tr> <td class="h" > <a name="4753">4753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4754">4754</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tee' => [ sub { $_[1]; }, sub { "" }, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4755">4755</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Tee gnuplot commands to stdout (set to "nobinary" for viewing)' ], </td> </tr> <tr> <td class="h" > <a name="4756">4756</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4757">4757</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'silent' => ['b', sub { "" }, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4758">4758</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Be silent about gnuplot errors' ], </td> </tr> <tr> <td class="h" > <a name="4759">4759</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4760">4760</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # topcmds/extracmds/bottomcmds: contain explicit strings for gnuplot. </td> </tr> <tr> <td class="h" > <a name="4761">4761</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # topcmds go just below the "set term", "set termoption", and "set output" commands; </td> </tr> <tr> <td class="h" > <a name="4762">4762</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # extracmds go after all the auto-generated commands and just before the plot lines </td> </tr> <tr> <td class="h" > <a name="4763">4763</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # bottomcmds comes after everything -- useful for cleanup after the plot command </td> </tr> <tr> <td class="h" > <a name="4764">4764</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #is sent. </td> </tr> <tr> <td class="h" > <a name="4765">4765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'topcmds' => ['l', sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="4766">4766</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return (ref $v eq 'ARRAY') ? join("\n",(@$v,"")) : $v."\n"; }, </td> </tr> <tr> <td class="h" > <a name="4767">4767</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> undef, 10, </td> </tr> <tr> <td class="h" > <a name="4768">4768</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] extra gnuplot commands at the top of the command block' ], </td> </tr> <tr> <td class="h" > <a name="4769">4769</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4770">4770</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'extracmds' => ['l', sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="4771">4771</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return (ref $v eq 'ARRAY') ? join("\n",(@$v,"")) : $v."\n"; }, </td> </tr> <tr> <td class="h" > <a name="4772">4772</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ,undef, 1001, </td> </tr> <tr> <td class="h" > <a name="4773">4773</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] extra gnuplot commands between plot options and the plots' ], </td> </tr> <tr> <td class="h" > <a name="4774">4774</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # bottomcmds is implemented by special hook in plot(). </td> </tr> <tr> <td class="h" > <a name="4775">4775</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'bottomcmds' => ['l', sub {""}, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4776">4776</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] extra gnuplot commands after all plot commands' ], </td> </tr> <tr> <td class="h" > <a name="4777">4777</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4778">4778</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'globalwith'=> ['l', sub { "" }, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4779">4779</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] default plot style (overridden by "with" in curve options)' ], </td> </tr> <tr> <td class="h" > <a name="4780">4780</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4781">4781</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4782">4782</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'perceptual'=>[sub { my($old,$new,$this) = @_; </td> </tr> <tr> <td class="h" > <a name="4783">4783</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> eval { require PDL::Transform::Color }; </td> </tr> <tr> <td class="h" > <a name="4784">4784</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf("pseudocolor option requires PDL::Transform::Color, which is not present") </td> </tr> <tr> <td class="h" > <a name="4785">4785</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless($PDL::Transform::Color::VERSION); </td> </tr> <tr> <td class="h" > <a name="4786">4786</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $new; </td> </tr> <tr> <td class="h" > <a name="4787">4787</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4788">4788</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { my($k, $v, $h) = @_; </td> </tr> <tr> <td class="h" > <a name="4789">4789</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return unless (defined($v)); </td> </tr> <tr> <td class="h" > <a name="4790">4790</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="4791">4791</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $t = eval { </td> </tr> <tr> <td class="h" > <a name="4792">4792</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Transform::Color::t_pcp(ref($v) eq 'ARRAY' ? @$v : $v); </td> </tr> <tr> <td class="h" > <a name="4793">4793</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="4794">4794</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($@){ </td> </tr> <tr> <td class="h" > <a name="4795">4795</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $a=$@; </td> </tr> <tr> <td class="h" > <a name="4796">4796</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $@=undef; </td> </tr> <tr> <td class="h" > <a name="4797">4797</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $a =~ s/Usage\:.*\.\)//s; </td> </tr> <tr> <td class="h" > <a name="4798">4798</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # not barf -- no traceback </td> </tr> <tr> <td class="h" > <a name="4799">4799</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die("PDL::Transform::Color palettes for the 'perceptual'/'pcp' plot option are:\n (palettes marked 'phot' respond differently with the 'perceptual' option;\n Append the suffix '-c<n>', n in [0..5], to a name to get RGB combinatorics.)\n".$a."\n"); </td> </tr> <tr> <td class="h" > <a name="4800">4800</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4801">4801</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $grey = xvals(2049)/2048; </td> </tr> <tr> <td class="h" > <a name="4802">4802</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $rgb = $grey->apply($t); </td> </tr> <tr> <td class="h" > <a name="4803">4803</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4804">4804</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="4805">4805</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4805-1"> 3 </a> </td> <td >   </td> <td > 41 </td> <td class="s"> no warnings; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1600 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4806">4806</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @s = map { </td> </tr> <tr> <td class="h" > <a name="4807">4807</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sprintf(" %d '#%2.2X%2.2X%2.2X'", $_, $rgb->slice('x',[$_,,0])->list); </td> </tr> <tr> <td class="h" > <a name="4808">4808</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } (0..$grey->dim(0)-1); </td> </tr> <tr> <td class="h" > <a name="4809">4809</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4810">4810</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= "set palette defined ( ".join(",", @s)." )\n"; </td> </tr> <tr> <td class="h" > <a name="4811">4811</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4812">4812</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s; </td> </tr> <tr> <td class="h" > <a name="4813">4813</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4814">4814</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['clut'],undef, </td> </tr> <tr> <td class="h" > <a name="4815">4815</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Use PDL::Transform::Color photometric palette: "pseudocolor=>\'heat\'"' ], </td> </tr> <tr> <td class="h" > <a name="4816">4816</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4817">4817</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pseudocolor'=>[sub { my($old,$new,$this) = @_; </td> </tr> <tr> <td class="h" > <a name="4818">4818</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> eval { require PDL::Transform::Color }; </td> </tr> <tr> <td class="h" > <a name="4819">4819</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf("pseudocolor option requires PDL::Transform::Color, which is not present") </td> </tr> <tr> <td class="h" > <a name="4820">4820</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless($PDL::Transform::Color::VERSION); </td> </tr> <tr> <td class="h" > <a name="4821">4821</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $new; </td> </tr> <tr> <td class="h" > <a name="4822">4822</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4823">4823</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { my($k, $v, $h) = @_; </td> </tr> <tr> <td class="h" > <a name="4824">4824</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="4825">4825</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined($h->{'perceptual'})){ </td> </tr> <tr> <td class="h" > <a name="4826">4826</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> print STDERR "Warning: 'perceptual'/'pcp' pseudocolor option overriding 'pseudocolor'/'pc'\n"; </td> </tr> <tr> <td class="h" > <a name="4827">4827</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return; </td> </tr> <tr> <td class="h" > <a name="4828">4828</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4829">4829</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="4830">4830</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $t = eval { </td> </tr> <tr> <td class="h" > <a name="4831">4831</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> PDL::Transform::Color::t_pc(ref($v) eq 'ARRAY' ? @$v : $v); </td> </tr> <tr> <td class="h" > <a name="4832">4832</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="4833">4833</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($@){ </td> </tr> <tr> <td class="h" > <a name="4834">4834</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $a = $@; </td> </tr> <tr> <td class="h" > <a name="4835">4835</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $@ = undef; </td> </tr> <tr> <td class="h" > <a name="4836">4836</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $a =~ s/Usage\:.*value\)//s; </td> </tr> <tr> <td class="h" > <a name="4837">4837</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # die not barf - no traceback. </td> </tr> <tr> <td class="h" > <a name="4838">4838</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die("PDL::Transform::Color palettes for the 'pseudocolor'/'pc' plot option are:\n (palettes marked 'phot' respond differently with the 'perceptual' option)\n".$a."\n"); </td> </tr> <tr> <td class="h" > <a name="4839">4839</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4840">4840</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4841">4841</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $grey = xvals(2049)/2048; </td> </tr> <tr> <td class="h" > <a name="4842">4842</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $rgb = $grey->apply($t); </td> </tr> <tr> <td class="h" > <a name="4843">4843</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4844">4844</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $last_str = ""; </td> </tr> <tr> <td class="h" > <a name="4845">4845</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @s = (); </td> </tr> <tr> <td class="h" > <a name="4846">4846</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for(0..$grey->dim(0)-1) { </td> </tr> <tr> <td class="h" > <a name="4847">4847</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Turn off warnings to prevent "redundant argument" warnings on certain sprintfs </td> </tr> <tr> <td class="h" > <a name="4848">4848</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4848-1"> 3 </a> </td> <td >   </td> <td > 28 </td> <td class="s"> no warnings; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 189 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4849">4849</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $this_str = sprintf("'#%2.2X%2.2X%2.2X'",$rgb->slice('x',[$_,,0])->list); </td> </tr> <tr> <td class="h" > <a name="4850">4850</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#4850-1"> 3 </a> </td> <td >   </td> <td > 14 </td> <td class="s"> use warnings; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 5 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 58251 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4851">4851</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($_ == $grey->dim(0)-1 or $this_str ne $last_str) { </td> </tr> <tr> <td class="h" > <a name="4852">4852</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@s,sprintf(" %d %s",$_,$this_str)); </td> </tr> <tr> <td class="h" > <a name="4853">4853</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $last_str = $this_str; </td> </tr> <tr> <td class="h" > <a name="4854">4854</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4855">4855</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4856">4856</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4857">4857</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= "set palette defined ( ".join(",", @s)." )\n"; </td> </tr> <tr> <td class="h" > <a name="4858">4858</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s; </td> </tr> <tr> <td class="h" > <a name="4859">4859</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4860">4860</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['clut'],undef, </td> </tr> <tr> <td class="h" > <a name="4861">4861</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Use PDL::Transform::Color photometric palette: "pseudocolor=>\'heat\'"' ], </td> </tr> <tr> <td class="h" > <a name="4862">4862</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4863">4863</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4864">4864</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'clut' => [sub { my($old, $new, $this) = @_; </td> </tr> <tr> <td class="h" > <a name="4865">4865</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $new = ($new ? lc $new : "default"); </td> </tr> <tr> <td class="h" > <a name="4866">4866</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($palettesTab->{$new}) { </td> </tr> <tr> <td class="h" > <a name="4867">4867</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $new; </td> </tr> <tr> <td class="h" > <a name="4868">4868</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="4869">4869</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $s = "Unknown lookup table name passed as a 'clut' option. Acceptable values are:\n"; </td> </tr> <tr> <td class="h" > <a name="4870">4870</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $k(sort </td> </tr> <tr> <td class="h" > <a name="4871">4871</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> {$a eq 'default' ? $b : $a eq 'default' ? $b : $a cmp $b} </td> </tr> <tr> <td class="h" > <a name="4872">4872</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> keys %$palettesTab </td> </tr> <tr> <td class="h" > <a name="4873">4873</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) { </td> </tr> <tr> <td class="h" > <a name="4874">4874</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= sprintf(" %10.10s (%s)\n",$k, $palettesTab->{$k}->[2]); </td> </tr> <tr> <td class="h" > <a name="4875">4875</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4876">4876</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf($s); </td> </tr> <tr> <td class="h" > <a name="4877">4877</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4878">4878</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4879">4879</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { my($k, $v, $h) = @_; </td> </tr> <tr> <td class="h" > <a name="4880">4880</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="4881">4881</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="4882">4882</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined($h->{'pseudocolor'}) || defined($h->{'perceptual'})) { </td> </tr> <tr> <td class="h" > <a name="4883">4883</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> print "Warning: 'pseudocolor'/'pc' or 'perceptual'/'pcp' plot option overriding 'clut'\n"; </td> </tr> <tr> <td class="h" > <a name="4884">4884</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return; </td> </tr> <tr> <td class="h" > <a name="4885">4885</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4886">4886</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless($palettesTab->{$v}) { die "Color table lookup failed -- this should never happen" } </td> </tr> <tr> <td class="h" > <a name="4887">4887</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined($palettesTab->{$v}->[0])) { </td> </tr> <tr> <td class="h" > <a name="4888">4888</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= "set palette model $palettesTab->{$v}->[0]\n"; </td> </tr> <tr> <td class="h" > <a name="4889">4889</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4890">4890</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= "set palette $palettesTab->{$v}->[1]\n"; </td> </tr> <tr> <td class="h" > <a name="4891">4891</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s; </td> </tr> <tr> <td class="h" > <a name="4892">4892</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4893">4893</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['palette'],undef, </td> </tr> <tr> <td class="h" > <a name="4894">4894</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Use named color look-up table for palette: "clut=>\'heat2\'"' ], </td> </tr> <tr> <td class="h" > <a name="4895">4895</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4896">4896</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'globalPlot'=> ['l',sub { return '' },undef,undef, </td> </tr> <tr> <td class="h" > <a name="4897">4897</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] marker for the global plot object' ], </td> </tr> <tr> <td class="h" > <a name="4898">4898</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="4899">4899</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'justify' => [sub { my($old,$new,$opt) = @_; </td> </tr> <tr> <td class="h" > <a name="4900">4900</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return undef if !defined $new; </td> </tr> <tr> <td class="h" > <a name="4901">4901</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($new > 0) { </td> </tr> <tr> <td class="h" > <a name="4902">4902</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $opt->{'size'} = ["ratio ".(-$new)]; </td> </tr> <tr> <td class="h" > <a name="4903">4903</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return undef; </td> </tr> <tr> <td class="h" > <a name="4904">4904</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4905">4905</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "justify: positive value needed\n" if $new<0; </td> </tr> <tr> <td class="h" > <a name="4906">4906</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined($opt->{'size'}) and $opt->{'size'}->[0] =~ m/ratio/) { </td> </tr> <tr> <td class="h" > <a name="4907">4907</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $opt->{'size'} = undef; </td> </tr> <tr> <td class="h" > <a name="4908">4908</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4909">4909</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return undef; </td> </tr> <tr> <td class="h" > <a name="4910">4910</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4911">4911</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { '' }, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4912">4912</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Set aspect ratio (equivalent to: size=>["ratio",<r>])' ], </td> </tr> <tr> <td class="h" > <a name="4913">4913</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'square' => [sub { my($old, $new, $opt) = @_; </td> </tr> <tr> <td class="h" > <a name="4914">4914</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($new) { </td> </tr> <tr> <td class="h" > <a name="4915">4915</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $opt->{'size'} = ["ratio -1"]; </td> </tr> <tr> <td class="h" > <a name="4916">4916</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $opt->{'view'} = [] unless defined($opt->{'view'}); </td> </tr> <tr> <td class="h" > <a name="4917">4917</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> @{$opt->{'view'}}[2..5] = ($new, $new, "equal", "xyz"); </td> </tr> <tr> <td class="h" > <a name="4918">4918</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return undef; </td> </tr> <tr> <td class="h" > <a name="4919">4919</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="4920">4920</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> delete @$opt{qw(size view)}; </td> </tr> <tr> <td class="h" > <a name="4921">4921</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="4922">4922</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { return '' }, undef, undef, </td> </tr> <tr> <td class="h" > <a name="4923">4923</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '[pseudo] Set aspect ratio to square (equivalent to: size=["ratio",1])' ], </td> </tr> <tr> <td class="h" > <a name="4924">4924</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="4925">4925</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # These are all the "plot" (top-level) options recognized by gnuplot 4.4. </td> </tr> <tr> <td class="h" > <a name="4926">4926</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'angles' => [['degrees','radians'],'s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4927">4927</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '(radians or degrees): sets unit in which angles will be specified' ], </td> </tr> <tr> <td class="h" > <a name="4928">4928</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'arrow' => ['N','N',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4929">4929</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'allows specification of arrows to be drawn on subsequent plots' ], </td> </tr> <tr> <td class="h" > <a name="4930">4930</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'autoscale' => ['lh','H2',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4931">4931</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'autoscaling style: autoscale=>{ (x|y|z|cb|x2|y2|xy) => (0|" "|fix|fixmin|fixmax|min|max) }.' ], </td> </tr> <tr> <td class="h" > <a name="4932">4932</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'bars' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4933">4933</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'errorbar ticsize: bars=> {(small|large|fullwidth|<size>) => (0|" "|front|back) }."' ], </td> </tr> <tr> <td class="h" > <a name="4934">4934</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'bmargin' => ['s','s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4935">4935</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'bottom margin (chars); bmargin=>"at screen <frac>" for pane-rel. size' ], </td> </tr> <tr> <td class="h" > <a name="4936">4936</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'border' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4937">4937</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'specify border around the plot (see gnuplot manual)' ], </td> </tr> <tr> <td class="h" > <a name="4938">4938</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'boxwidth' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4939">4939</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'default width of boxes in those plot styles that have them' ], </td> </tr> <tr> <td class="h" > <a name="4940">4940</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbdata' => ['s','bt', ['colorbox'], undef, </td> </tr> <tr> <td class="h" > <a name="4941">4941</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbdata=>"time" to use time stamps on color box data axis (see timefmt)' ], </td> </tr> <tr> <td class="h" > <a name="4942">4942</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbdtics' => ['b','b', ['colorbox'], undef, </td> </tr> <tr> <td class="h" > <a name="4943">4943</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbdtics=>1 to use days-of-week tick labels on the color box axis' ], </td> </tr> <tr> <td class="h" > <a name="4944">4944</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cblabel' => ['l','ql', ['colorbox'], undef, </td> </tr> <tr> <td class="h" > <a name="4945">4945</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets the label on the color box axis' ], </td> </tr> <tr> <td class="h" > <a name="4946">4946</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbmtics' => ['b','b', ['colorbox'], undef, </td> </tr> <tr> <td class="h" > <a name="4947">4947</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbmtics=>1 to use months-of-year tick labels on the color box axis' ], </td> </tr> <tr> <td class="h" > <a name="4948">4948</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbrange' => ['lr','range',['colorbox'], undef, </td> </tr> <tr> <td class="h" > <a name="4949">4949</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'controls rendered range of color data values: cbrange=>[<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="4950">4950</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbmin' => [sub { my($o,$n,$h)=@_; $h->{cbrange}->[0]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="4951">4951</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets minimum end of cbrange' ], </td> </tr> <tr> <td class="h" > <a name="4952">4952</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbmax' => [sub { my($o,$n,$h)=@_; $h->{cbrange}->[1]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="4953">4953</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets maximum end of cbrange' ], </td> </tr> <tr> <td class="h" > <a name="4954">4954</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cbtics' => ['lt','lt', ['colorbox'], undef, </td> </tr> <tr> <td class="h" > <a name="4955">4955</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'controls major (labelled) ticks on the color box axis (see docs)' ], </td> </tr> <tr> <td class="h" > <a name="4956">4956</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'clabel' => ['s','q',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4957">4957</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Contour level legend format for contour plots (default "%8.3g")' ], </td> </tr> <tr> <td class="h" > <a name="4958">4958</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'clip' => ['H','H',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4959">4959</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'control filtering near boundary: clip=>{points=>1,one=>0,two=>1}' ], </td> </tr> <tr> <td class="h" > <a name="4960">4960</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cntrparam' => ['l','1',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4961">4961</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'control contour plotting parameters (see docs)' ], </td> </tr> <tr> <td class="h" > <a name="4962">4962</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'colorbox' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4963">4963</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set color box options for pm3d and image; set to undef to remove box' ], </td> </tr> <tr> <td class="h" > <a name="4964">4964</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'contour' => ['s','s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4965">4965</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'control 3d contour plots: contour=>("base"|"surface"|"both"|undef)' ], </td> </tr> <tr> <td class="h" > <a name="4966">4966</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'datafile' => ['H','H',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4967">4967</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'control how gnuplot interprets data files (not recommended)' ], </td> </tr> <tr> <td class="h" > <a name="4968">4968</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'decimalsign'=>['s','q',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4969">4969</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'control character used for decimal point in labels' ], </td> </tr> <tr> <td class="h" > <a name="4970">4970</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'dgrid3d' => ['l','l',undef, undef, </td> </tr> <tr> <td class="h" > <a name="4971">4971</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set up interpolation of scattered datapoints onto a regular grid' ], </td> </tr> <tr> <td class="h" > <a name="4972">4972</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'dummy' => ['l',',', undef, undef, </td> </tr> <tr> <td class="h" > <a name="4973">4973</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'change name of dummy variable for parametric plots (not recommended)' ], </td> </tr> <tr> <td class="h" > <a name="4974">4974</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'encoding' => ['s','s', undef, undef, </td> </tr> <tr> <td class="h" > <a name="4975">4975</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'change locale of character encoding (not recommended)' ], </td> </tr> <tr> <td class="h" > <a name="4976">4976</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'fit' => [sub { die "set fit: not (yet) implemented in PDL Gnuplot interface\n";}], </td> </tr> <tr> <td class="h" > <a name="4977">4977</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'fontpath' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4978">4978</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set directories to search when looking for fonts (PostScript only)' ], </td> </tr> <tr> <td class="h" > <a name="4979">4979</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'format' => ['H','H',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4980">4980</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Fine-grained control over formatting of axis labels' ], </td> </tr> <tr> <td class="h" > <a name="4981">4981</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'function' => [sub { die "'set function' is deprecated by gnuplot and not allowed here\n"; } ], </td> </tr> <tr> <td class="h" > <a name="4982">4982</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'grid' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4983">4983</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'draw grid lines on the plot (see docs)' ], </td> </tr> <tr> <td class="h" > <a name="4984">4984</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hidden3d' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4985">4985</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'control whether and how hidden lines are removed in 3d (see docs)' ], </td> </tr> <tr> <td class="h" > <a name="4986">4986</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'isosamples'=> ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4987">4987</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'control isoline density for plotting functions as surfaces' ], </td> </tr> <tr> <td class="h" > <a name="4988">4988</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'key' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4989">4989</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'enable key/legend and control its position and appearance (see docs)' ], </td> </tr> <tr> <td class="h" > <a name="4990">4990</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'label' => ['N','NL',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4991">4991</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Define text labels to be rendered in plot (numeric index; see docs)' ], </td> </tr> <tr> <td class="h" > <a name="4992">4992</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'lmargin' => ['s','s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4993">4993</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'left margin (chars); lmargin=>"at screen <frac>" for pane-rel. size' ], </td> </tr> <tr> <td class="h" > <a name="4994">4994</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'loadpath' => [sub { die "loadpath not supported\n"; }], </td> </tr> <tr> <td class="h" > <a name="4995">4995</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'locale' => ['s','q',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4996">4996</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set named locale for date/month formatting' ], </td> </tr> <tr> <td class="h" > <a name="4997">4997</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'logscale' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="4998">4998</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set log scaling and base: e.g. logscale=>["xyx2cb",10]' ], </td> </tr> <tr> <td class="h" > <a name="4999">4999</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'macros' => [sub { die "macros: not supported\n"; } ], </td> </tr> <tr> <td class="h" > <a name="5000">5000</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'mapping' => [['cartesian','cylindrical','spherical'],'s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5001">5001</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set coordinates for 3d plots: "cartesian","spherical", or "cylindrical"' ], </td> </tr> <tr> <td class="h" > <a name="5002">5002</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # multiplot: this is not emitted as part of any plot command, only by the special multiplot method. </td> </tr> <tr> <td class="h" > <a name="5003">5003</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'multiplot' => [sub { die "multiplot: use the 'multiplot' method, don't set this directly\n" },sub { ""},undef,undef,undef] , </td> </tr> <tr> <td class="h" > <a name="5004">5004</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'mxtics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5005">5005</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set and control minor ticks on the X axis: mxtics=><freq>' ], </td> </tr> <tr> <td class="h" > <a name="5006">5006</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'mx2tics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5007">5007</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set and control minor ticks on the X2 axis: mx2tics=><freq>' ], </td> </tr> <tr> <td class="h" > <a name="5008">5008</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'mytics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5009">5009</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set and control minor ticks on the Y axis: mytics=><freq>' ], </td> </tr> <tr> <td class="h" > <a name="5010">5010</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'my2tics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5011">5011</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set and control minor ticks on the Y2 axis: my2tics=><freq>' ], </td> </tr> <tr> <td class="h" > <a name="5012">5012</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'mztics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5013">5013</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set and control minor ticks on the Z axis: mztics=><freq>' ], </td> </tr> <tr> <td class="h" > <a name="5014">5014</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'object' => ['N','NO',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5015">5015</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'define objects to be overlain on plot (numeric index; see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5016">5016</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'offsets' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5017">5017</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'define inside-axis blank margin (science units): [<l>,<r>,<t>,<b>]' ], </td> </tr> <tr> <td class="h" > <a name="5018">5018</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'origin' => ['l',',',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5019">5019</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set 2-D origin of the plotting surface in relative screen coordinates' ], </td> </tr> <tr> <td class="h" > <a name="5020">5020</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'output' => [sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5021">5021</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless(defined($h) and $h->{globalPlot}) {barf("Don't set output as a plot option; use the constructor\n");} </td> </tr> <tr> <td class="h" > <a name="5022">5022</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $v; </td> </tr> <tr> <td class="h" > <a name="5023">5023</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5024">5024</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5025">5025</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless((defined($v) and !($h->{multiplot}))); </td> </tr> <tr> <td class="h" > <a name="5026">5026</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "unset $k\n" unless(length($v)); </td> </tr> <tr> <td class="h" > <a name="5027">5027</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $vv = $v; </td> </tr> <tr> <td class="h" > <a name="5028">5028</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $vv =~ s/(^|[^\%])\%s/${1}Plot-/; </td> </tr> <tr> <td class="h" > <a name="5029">5029</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($vv =~ m/(^|[^\%])\%d/) { </td> </tr> <tr> <td class="h" > <a name="5030">5030</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $fnum = 0; </td> </tr> <tr> <td class="h" > <a name="5031">5031</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $vvn; </td> </tr> <tr> <td class="h" > <a name="5032">5032</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> do { </td> </tr> <tr> <td class="h" > <a name="5033">5033</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $fnum++; </td> </tr> <tr> <td class="h" > <a name="5034">5034</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $vvn = $vv; </td> </tr> <tr> <td class="h" > <a name="5035">5035</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $vvn =~ s/(^|[^\%])\%d/${1}${fnum}/; </td> </tr> <tr> <td class="h" > <a name="5036">5036</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } while( -e $vvn); </td> </tr> <tr> <td class="h" > <a name="5037">5037</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $vv = $vvn; </td> </tr> <tr> <td class="h" > <a name="5038">5038</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5039">5039</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($vv ne $v) { </td> </tr> <tr> <td class="h" > <a name="5040">5040</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp "INFO: Plotting to '$vv'\n"; </td> </tr> <tr> <td class="h" > <a name="5041">5041</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5042">5042</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $vv = quote_escape($vv); </td> </tr> <tr> <td class="h" > <a name="5043">5043</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k \"$vv\"\n"; </td> </tr> <tr> <td class="h" > <a name="5044">5044</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5045">5045</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> undef,3, </td> </tr> <tr> <td class="h" > <a name="5046">5046</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set output file or label for plot (see "terminal", "device")' ], </td> </tr> <tr> <td class="h" > <a name="5047">5047</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'parametric'=> ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5048">5048</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets parametric mode for plotting parametric curves (boolean)' ], </td> </tr> <tr> <td class="h" > <a name="5049">5049</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pm3d' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5050">5050</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets up color palette-mapped 3d surface plots (see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5051">5051</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'palette' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5052">5052</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets up color palette for color mapped plots (see docs and "clut")' ], </td> </tr> <tr> <td class="h" > <a name="5053">5053</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pointsize' => ['s','s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5054">5054</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets the size of plotted point symbols (multiplier on base size)' ], </td> </tr> <tr> <td class="h" > <a name="5055">5055</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'polar' => ['b','b',['angles'],undef, </td> </tr> <tr> <td class="h" > <a name="5056">5056</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets 2-D plots into polar coordinates. (see also "angles")' ], </td> </tr> <tr> <td class="h" > <a name="5057">5057</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'rmargin' => ['s','s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5058">5058</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'right margin (chars); rmargin=>"at screen <frac>" for pane-rel. size' ], </td> </tr> <tr> <td class="h" > <a name="5059">5059</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'rrange' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5060">5060</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'radial coordinate range in polar mode: rrange=>[<lo>,<hi>]' ], </td> </tr> <tr> <td class="h" > <a name="5061">5061</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'size' => ['l','l',['view'],undef, </td> </tr> <tr> <td class="h" > <a name="5062">5062</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets the size of the plot pane relative to the main window (see also "justify")' ], </td> </tr> <tr> <td class="h" > <a name="5063">5063</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'style' => ['H','H',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5064">5064</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Set various aspects of plot style by keyword (see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5065">5065</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'surface' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5066">5066</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Turn on/off surface drawing in 3-d plots (boolean)' ], </td> </tr> <tr> <td class="h" > <a name="5067">5067</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'table' => [sub { die "table not supported - use Perl's 'print' instead\n" } ], </td> </tr> <tr> <td class="h" > <a name="5068">5068</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'terminal' => [sub { my($k,$v,$h)=@_; </td> </tr> <tr> <td class="h" > <a name="5069">5069</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless(defined($h) and $h->{globalPlot}) {barf("Don't set terminal as a plot option; use the constructor or output().\n")} </td> </tr> <tr> <td class="h" > <a name="5070">5070</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $v; </td> </tr> <tr> <td class="h" > <a name="5071">5071</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5072">5072</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'nomulti', </td> </tr> <tr> <td class="h" > <a name="5073">5073</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> undef,1, </td> </tr> <tr> <td class="h" > <a name="5074">5074</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Set the output device type and device dependent options (see docs)\n' ], </td> </tr> <tr> <td class="h" > <a name="5075">5075</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'termoption'=> ['H','HNM',undef,2, </td> </tr> <tr> <td class="h" > <a name="5076">5076</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Set certain options for the terminal driver, by keyword' ], </td> </tr> <tr> <td class="h" > <a name="5077">5077</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tics' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5078">5078</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Control tick mark formatting (deprecated; <axis>tics recommended instead)' ], </td> </tr> <tr> <td class="h" > <a name="5079">5079</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'timestamp' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5080">5080</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'creates a timestamp in the left margin of the plot (see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5081">5081</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'timefmt' => [sub { carp "Warning: timefmt doesn't work well in formats other than '%s'. Proceed with caution!\n" </td> </tr> <tr> <td class="h" > <a name="5082">5082</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( defined($_[1]) and $_[1] ne '%s'); </td> </tr> <tr> <td class="h" > <a name="5083">5083</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ( (defined $_[1]) ? "$_[1]" : undef ); </td> </tr> <tr> <td class="h" > <a name="5084">5084</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> },'q',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5085">5085</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Sets format for interpreting time data (leave as "%s"; see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5086">5086</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'title' => ['l','ql',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5087">5087</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Set title for the plot. See docs for size/color/font options' ], </td> </tr> <tr> <td class="h" > <a name="5088">5088</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tmargin' => ['s','s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5089">5089</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'top margin (chars); tmargin=>"at screen <frac>" for pane-rel. size' ], </td> </tr> <tr> <td class="h" > <a name="5090">5090</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'trange' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5091">5091</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'range for indep. variable in parametric plots: trange=>[<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="5092">5092</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'urange' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5093">5093</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'range for indep. variable "u" in 3-d parametric plots: [<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="5094">5094</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'view' => ['l', sub { my($k,$v,$h)=@_; </td> </tr> <tr> <td class="h" > <a name="5095">5095</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless defined($v); </td> </tr> <tr> <td class="h" > <a name="5096">5096</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set view 60,30,1.0,1.0\nset view noequal\n" unless( ref $v eq 'ARRAY' ); # default value from manual </td> </tr> <tr> <td class="h" > <a name="5097">5097</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @numbers = (); </td> </tr> <tr> <td class="h" > <a name="5098">5098</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @v = @$v; </td> </tr> <tr> <td class="h" > <a name="5099">5099</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5100">5100</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> while( @v && (($v[0]//"") =~ m/^(\s*\-?((\d+\.?\d*)|(\d*\.\d+))([eE][\+\-]\d*)?\s*)?$/ )) { </td> </tr> <tr> <td class="h" > <a name="5101">5101</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push @numbers, shift(@v)//""; </td> </tr> <tr> <td class="h" > <a name="5102">5102</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5103">5103</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="5104">5104</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= "set view ".join(",",@numbers)."\n" if(@numbers); </td> </tr> <tr> <td class="h" > <a name="5105">5105</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> while(@v) { </td> </tr> <tr> <td class="h" > <a name="5106">5106</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($v[0] eq 'equal' and $v[1] =~ m/xyz?/) { </td> </tr> <tr> <td class="h" > <a name="5107">5107</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= sprintf("set view %s %s\n",splice(@v,0,2)); </td> </tr> <tr> <td class="h" > <a name="5108">5108</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5109">5109</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= sprintf("set view %s\n",shift @v); </td> </tr> <tr> <td class="h" > <a name="5110">5110</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5111">5111</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5112">5112</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="5113">5113</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5114">5114</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> undef,undef, </td> </tr> <tr> <td class="h" > <a name="5115">5115</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '3-d view: [r_x, r_z, scale, sc_z,"map","noequal","equal (xy|xyz)"]' ], </td> </tr> <tr> <td class="h" > <a name="5116">5116</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'vrange' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5117">5117</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'range for indep. variable "v" in 3-d parametric plots: [<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="5118">5118</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2data' => ['s','bt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5119">5119</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2data=>"time" to use time stamps on X2 axis (see timefmt)' ], </td> </tr> <tr> <td class="h" > <a name="5120">5120</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2dtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5121">5121</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2dtics=>1 to use days-of-week tick labels on X2 axis' ], </td> </tr> <tr> <td class="h" > <a name="5122">5122</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2label' => ['l','ql',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5123">5123</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets label for the X2 axis. See docs for size/color/font options' ], </td> </tr> <tr> <td class="h" > <a name="5124">5124</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2mtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5125">5125</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2mtics=>1 to use months-of-year tick labels on the X2 axis' ], </td> </tr> <tr> <td class="h" > <a name="5126">5126</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2min' => [sub { my($o,$n,$h)=@_; $h->{x2range}->[0]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5127">5127</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets minimum end of x2range' ], </td> </tr> <tr> <td class="h" > <a name="5128">5128</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2max' => [sub { my($o,$n,$h)=@_; $h->{x2range}->[1]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5129">5129</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets maximum end of x2range' ], </td> </tr> <tr> <td class="h" > <a name="5130">5130</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2range' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5131">5131</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set range of X2 axis: x2range=>[<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="5132">5132</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2tics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5133">5133</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Control tick mark formatting (X2 axis; see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5134">5134</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x2zeroaxis'=> ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5135">5135</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'If set, draw a vertical line at X2=0; see docs for formatting' ], </td> </tr> <tr> <td class="h" > <a name="5136">5136</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xdata' => ['s','bt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5137">5137</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xdata=>"time" to use time stamps on X axis (see timefmt)' ], </td> </tr> <tr> <td class="h" > <a name="5138">5138</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xdtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5139">5139</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xdtics=>1 to use days-of-week tick labels on X axis' ], </td> </tr> <tr> <td class="h" > <a name="5140">5140</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xlabel' => ['l','ql',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5141">5141</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets label for the X axis. See docs for size/color/font options' ], </td> </tr> <tr> <td class="h" > <a name="5142">5142</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xmtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5143">5143</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xmtics=>1 to use months-of-year tick labels on the X axis' ], </td> </tr> <tr> <td class="h" > <a name="5144">5144</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xmin' => [sub { my($o,$n,$h)=@_; $h->{xrange}->[0]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5145">5145</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets minimum end of xrange' ], </td> </tr> <tr> <td class="h" > <a name="5146">5146</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xmax' => [sub { my($o,$n,$h)=@_; $h->{xrange}->[1]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5147">5147</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets maximum end of xrange' ], </td> </tr> <tr> <td class="h" > <a name="5148">5148</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xrange' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5149">5149</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set range of X axis: xrange=>[<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="5150">5150</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xtics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5151">5151</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Control tick mark formatting (X axis; see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5152">5152</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xyplane' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5153">5153</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Sets location of the XY plane in 3-D plots; see docs' ], </td> </tr> <tr> <td class="h" > <a name="5154">5154</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xzeroaxis' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5155">5155</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'if set, draw a vertical line at X=0; see docs for formatting' ], </td> </tr> <tr> <td class="h" > <a name="5156">5156</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2data' => ['s','bt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5157">5157</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2data=>"time" to use time stamps on Y2 axis (see timefmt)' ], </td> </tr> <tr> <td class="h" > <a name="5158">5158</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2dtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5159">5159</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2dtics=>1 to use days-of-week tick labels on Y2 axis' ], </td> </tr> <tr> <td class="h" > <a name="5160">5160</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2label' => ['l','ql',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5161">5161</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets label for the Y2 axis. See docs for size/color/font options' ], </td> </tr> <tr> <td class="h" > <a name="5162">5162</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2mtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5163">5163</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2mtics=>1 to use months-of-year tick labels on Y2 axis' ], </td> </tr> <tr> <td class="h" > <a name="5164">5164</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2min' => [sub { my($o,$n,$h)=@_; $h->{y2range}->[0]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5165">5165</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets minimum end of y2range' ], </td> </tr> <tr> <td class="h" > <a name="5166">5166</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2max' => [sub { my($o,$n,$h)=@_; $h->{y2range}->[1]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5167">5167</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets maximum end of y2range' ], </td> </tr> <tr> <td class="h" > <a name="5168">5168</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2range' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5169">5169</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set range of Y2 axis: y2range=>[<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="5170">5170</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2tics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5171">5171</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Control tick mark formatting (Y2 axis; see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5172">5172</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'y2zeroaxis'=> ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5173">5173</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'if set, draw a horizontal line at Y2=0; see docs for formatting' ], </td> </tr> <tr> <td class="h" > <a name="5174">5174</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ydata' => ['s','bt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5175">5175</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ydata=>"time" to use time stamps on Y axis (see timefmt)' ], </td> </tr> <tr> <td class="h" > <a name="5176">5176</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ydtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5177">5177</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ydtics=>1 to use days-of-week tick labels on Y axis' ], </td> </tr> <tr> <td class="h" > <a name="5178">5178</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ytics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5179">5179</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Control tick mark formatting (Y axis; see docs)' ], </td> </tr> <tr> <td class="h" > <a name="5180">5180</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ylabel' => ['l','ql',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5181">5181</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets label for the Y axis. See docs for size/color/font options' ], </td> </tr> <tr> <td class="h" > <a name="5182">5182</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ymtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5183">5183</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ymticks=>1 to use months-of-year tick labels on Y axis' ], </td> </tr> <tr> <td class="h" > <a name="5184">5184</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ymin' => [sub { my($o,$n,$h)=@_; $h->{yrange}->[0]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5185">5185</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets minimum end of yrange' ], </td> </tr> <tr> <td class="h" > <a name="5186">5186</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ymax' => [sub { my($o,$n,$h)=@_; $h->{yrange}->[1]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5187">5187</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets maximum end of yrange' ], </td> </tr> <tr> <td class="h" > <a name="5188">5188</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'yrange' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5189">5189</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set range of Y axis: yrange=>[<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="5190">5190</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'yzeroaxis' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5191">5191</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'if set, draw a horizontal line at Y=0; see docs for formatting' ], </td> </tr> <tr> <td class="h" > <a name="5192">5192</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zdata' => ['s','bt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5193">5193</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zdata=>"time" to use time stamps on Z axis (see timefmt)' ], </td> </tr> <tr> <td class="h" > <a name="5194">5194</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zdtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5195">5195</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zdtics=>1 to use days-of-week tick labels on Z axis' ], </td> </tr> <tr> <td class="h" > <a name="5196">5196</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zlabel' => ['l','ql',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5197">5197</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets label for the Z axis. See docs for size/color/font options' ], </td> </tr> <tr> <td class="h" > <a name="5198">5198</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zmtics' => ['b','b',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5199">5199</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zmtics=>1 to use months-of-year tick labels on Z axis' ], </td> </tr> <tr> <td class="h" > <a name="5200">5200</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zmin' => [sub { my($o,$n,$h)=@_; $h->{zrange}->[0]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5201">5201</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets minimum end of zrange' ], </td> </tr> <tr> <td class="h" > <a name="5202">5202</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zmax' => [sub { my($o,$n,$h)=@_; $h->{zrange}->[1]=$n; return undef},sub{''},undef,undef, </td> </tr> <tr> <td class="h" > <a name="5203">5203</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sets maximum end of zrange' ], </td> </tr> <tr> <td class="h" > <a name="5204">5204</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zrange' => ['lr','range',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5205">5205</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'set range of Z axis: zrange=>[<min>,<max>]' ], </td> </tr> <tr> <td class="h" > <a name="5206">5206</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zzeroaxis' => ['l','l',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5207">5207</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'if set, draw a line through (X=0,Y=0) on a 3-D plot. See docs' ], </td> </tr> <tr> <td class="h" > <a name="5208">5208</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'zero' => ['s','s',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5209">5209</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Sets the default threshold for values approaching 0.0' ], </td> </tr> <tr> <td class="h" > <a name="5210">5210</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ztics' => ['lt','lt',undef,undef, </td> </tr> <tr> <td class="h" > <a name="5211">5211</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'Control tick mark formatting (Z axis; see docs)' ] </td> </tr> <tr> <td class="h" > <a name="5212">5212</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5213">5213</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $pOptionsAbbrevs = _gen_abbrev_list(keys %$pOptionsTable); </td> </tr> <tr> <td class="h" > <a name="5214">5214</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $pOptionsAbbrevs->{'term'} = ['terminal']; # frequently-used case </td> </tr> <tr> <td class="h" > <a name="5215">5215</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $pOptionsAbbrevs->{'time'} = ['timestamp']; # compat. with gnuplot's alt. spelling </td> </tr> <tr> <td class="h" > <a name="5216">5216</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $pOptionsAbbrevs->{'pc'} = ['pseudocolor']; </td> </tr> <tr> <td class="h" > <a name="5217">5217</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $pOptionsAbbrevs->{'pcp'} = ['perceptual']; </td> </tr> <tr> <td class="h" > <a name="5218">5218</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5219">5219</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $pOpt = [$pOptionsTable, $pOptionsAbbrevs, "plot option"]; </td> </tr> <tr> <td class="h" > <a name="5220">5220</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5221">5221</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5222">5222</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="5223">5223</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # cOptionsTable - describes valid curve options and their allowed value types </td> </tr> <tr> <td class="h" > <a name="5224">5224</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5225">5225</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The output types are different so that they can all be interpolated into the same </td> </tr> <tr> <td class="h" > <a name="5226">5226</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # master table. Curve option output routines have a 'c' in front of the name. </td> </tr> <tr> <td class="h" > <a name="5227">5227</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5228">5228</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5229">5229</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $cOptionsTable = { </td> </tr> <tr> <td class="h" > <a name="5230">5230</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # data is here so that it gets sorted properly into each chunk -- but it doesn't get specified this way. </td> </tr> <tr> <td class="h" > <a name="5231">5231</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the output string just specifies STDIN. The magic output string gets replaced post facto with the test and </td> </tr> <tr> <td class="h" > <a name="5232">5232</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # real output format specifiers. </td> </tr> <tr> <td class="h" > <a name="5233">5233</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cdims' => [sub { my $s = $_[1] // 0; # Number of dimensions in a column </td> </tr> <tr> <td class="h" > <a name="5234">5234</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Curve option 'cdims' must be one of 0, 1, or 2\n" unless $s==0 or $s==1 or $s==2; </td> </tr> <tr> <td class="h" > <a name="5235">5235</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="5236">5236</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5237">5237</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { return ""}], </td> </tr> <tr> <td class="h" > <a name="5238">5238</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'data' => [sub { barf "mustn't specify data as a curve option...\n" }, </td> </tr> <tr> <td class="h" > <a name="5239">5239</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { return " $cmdFence "; }, </td> </tr> <tr> <td class="h" > <a name="5240">5240</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> undef,5 </td> </tr> <tr> <td class="h" > <a name="5241">5241</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ], </td> </tr> <tr> <td class="h" > <a name="5242">5242</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'using' => ['l','cl',undef,6], # using clauses in order (straight passthrough) </td> </tr> <tr> <td class="h" > <a name="5243">5243</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # legend is a special case -- it gets parsed as a list but emitted as a quoted scalar. </td> </tr> <tr> <td class="h" > <a name="5244">5244</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'legend' => ['ln', sub { if(defined($_[1]) and defined $_[1][0]) {return "title \"$_[1][0]\"";} else {return "notitle"}}, </td> </tr> <tr> <td class="h" > <a name="5245">5245</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> undef, 7], </td> </tr> <tr> <td class="h" > <a name="5246">5246</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'axes' => [['(x[12])(y[12])'],'cs',undef,8], </td> </tr> <tr> <td class="h" > <a name="5247">5247</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'smooth' => ['s','cs',undef,8.1], </td> </tr> <tr> <td class="h" > <a name="5248">5248</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'with' => ['l', 'cl', undef, 9], </td> </tr> <tr> <td class="h" > <a name="5249">5249</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5250">5250</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The next curve options are "with" modifiers. They have to be sorted </td> </tr> <tr> <td class="h" > <a name="5251">5251</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # after 'with' to be treated properly. They should probably have some </td> </tr> <tr> <td class="h" > <a name="5252">5252</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # sort of filter built in to ensure we don't feed gnuplot a curve </td> </tr> <tr> <td class="h" > <a name="5253">5253</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # option that is inappropriate for the particular type of curve we are </td> </tr> <tr> <td class="h" > <a name="5254">5254</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # plotting - but gnuplot does seem to catch that case and throw an error, </td> </tr> <tr> <td class="h" > <a name="5255">5255</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # so the only benefit would be delivering a cleaner error message. </td> </tr> <tr> <td class="h" > <a name="5256">5256</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'linestyle'=> ['s', 'cs', undef, 10], </td> </tr> <tr> <td class="h" > <a name="5257">5257</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'linetype' => ['s', 'cs', undef, 11], </td> </tr> <tr> <td class="h" > <a name="5258">5258</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'dashtype' => ['dt', 'dt', undef, 11.5], # dashtype is new with Gnuplot 5 </td> </tr> <tr> <td class="h" > <a name="5259">5259</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'linewidth'=> ['s', 'css', undef, 12], </td> </tr> <tr> <td class="h" > <a name="5260">5260</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'linecolor'=> ['l', 'ccolor', undef, 13], </td> </tr> <tr> <td class="h" > <a name="5261">5261</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'textcolor'=> ['l', 'ccolor', undef, 14], </td> </tr> <tr> <td class="h" > <a name="5262">5262</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'below' => [ 'l', sub { </td> </tr> <tr> <td class="h" > <a name="5263">5263</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "$_[0] $_[1][0]" if (defined $_[1] and defined $_[1][0]); </td> </tr> <tr> <td class="h" > <a name="5264">5264</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ""; </td> </tr> <tr> <td class="h" > <a name="5265">5265</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, undef, 9.2], </td> </tr> <tr> <td class="h" > <a name="5266">5266</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'above' => [ 'l', sub { </td> </tr> <tr> <td class="h" > <a name="5267">5267</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "$_[0] $_[1][0]" if (defined $_[1] and defined $_[1][0]); </td> </tr> <tr> <td class="h" > <a name="5268">5268</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ""; </td> </tr> <tr> <td class="h" > <a name="5269">5269</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, undef, 9.3], </td> </tr> <tr> <td class="h" > <a name="5270">5270</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'fillcolor'=> ['l', 'ccolor', ['above', 'below'], 14.5], </td> </tr> <tr> <td class="h" > <a name="5271">5271</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pointtype'=> ['s', 'cs', undef, 15], </td> </tr> <tr> <td class="h" > <a name="5272">5272</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pointsize'=> ['s', 'css', undef, 16], </td> </tr> <tr> <td class="h" > <a name="5273">5273</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'fillstyle'=> ['l', 'cl', undef, 17], </td> </tr> <tr> <td class="h" > <a name="5274">5274</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'nohidden3d'=>['b', 'cff', undef, 18], </td> </tr> <tr> <td class="h" > <a name="5275">5275</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'nohidden3d'=>['b', 'cff', undef, 19], </td> </tr> <tr> <td class="h" > <a name="5276">5276</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'nocontours'=>['b', 'cff', undef, 20], </td> </tr> <tr> <td class="h" > <a name="5277">5277</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'nosurface' =>['b', 'cff', undef, 21], </td> </tr> <tr> <td class="h" > <a name="5278">5278</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'palette' =>['b', 'cff', undef, 22], </td> </tr> <tr> <td class="h" > <a name="5279">5279</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5280">5280</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tuplesize'=> ['s',sub { return ""}], # set tuplesize explicitly (not a gnuplot option) </td> </tr> <tr> <td class="h" > <a name="5281">5281</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'resample' => [sub { my ($k, $v, $h) = @_; # for FITS </td> </tr> <tr> <td class="h" > <a name="5282">5282</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return if !$v; </td> </tr> <tr> <td class="h" > <a name="5283">5283</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return [1024,1024] if !ref $v; </td> </tr> <tr> <td class="h" > <a name="5284">5284</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Curve option 'resample' given non-array ref '$v'" if ref $v ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="5285">5285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Curve option 'resample' given array-ref with no values" if !@$v; </td> </tr> <tr> <td class="h" > <a name="5286">5286</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Curve option 'resample' given array-ref with too many values" if @$v > 2; </td> </tr> <tr> <td class="h" > <a name="5287">5287</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> @$v == 1 ? [@$v[0,0]] : $v; </td> </tr> <tr> <td class="h" > <a name="5288">5288</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5289">5289</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub {""}], </td> </tr> <tr> <td class="h" > <a name="5290">5290</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5291">5291</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5292">5292</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $cOptionsAbbrevs = _gen_abbrev_list(keys %$cOptionsTable); </td> </tr> <tr> <td class="h" > <a name="5293">5293</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### Gnuplot official abbreviations for the "with"-modifying curve options </td> </tr> <tr> <td class="h" > <a name="5294">5294</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="5295">5295</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $officialAbbrevs = { </td> </tr> <tr> <td class="h" > <a name="5296">5296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lt => ["linetype"], </td> </tr> <tr> <td class="h" > <a name="5297">5297</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dt => ["dashtype"], </td> </tr> <tr> <td class="h" > <a name="5298">5298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ls => ["linestyle"], </td> </tr> <tr> <td class="h" > <a name="5299">5299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lw => ["linewidth"], </td> </tr> <tr> <td class="h" > <a name="5300">5300</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lc => ["linecolor"], </td> </tr> <tr> <td class="h" > <a name="5301">5301</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pt => ["pointtype"], </td> </tr> <tr> <td class="h" > <a name="5302">5302</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ps => ["pointsize"], </td> </tr> <tr> <td class="h" > <a name="5303">5303</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fs => ["fillstyle"], </td> </tr> <tr> <td class="h" > <a name="5304">5304</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fc => ["fillcolor"], </td> </tr> <tr> <td class="h" > <a name="5305">5305</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5306">5306</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $k(%$officialAbbrevs){ </td> </tr> <tr> <td class="h" > <a name="5307">5307</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $cOptionsAbbrevs->{$k} = $officialAbbrevs->{$k}; </td> </tr> <tr> <td class="h" > <a name="5308">5308</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5309">5309</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5310">5310</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5311">5311</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5312">5312</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $cOpt = [$cOptionsTable, $cOptionsAbbrevs, "curve option"]; </td> </tr> <tr> <td class="h" > <a name="5313">5313</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5314">5314</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5315">5315</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5316">5316</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="5317">5317</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $plotStyleProps </td> </tr> <tr> <td class="h" > <a name="5318">5318</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5319">5319</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This table describes the types of input expected by the various </td> </tr> <tr> <td class="h" > <a name="5320">5320</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # plot styles. Each entry should be an array ref. The colums are: </td> </tr> <tr> <td class="h" > <a name="5321">5321</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5322">5322</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 0: "ts" Tuple sizes (columns of data) that are allowed by this plot style for </td> </tr> <tr> <td class="h" > <a name="5323">5323</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ordinary 2-D plots. (We let gnuplot interpret the columns; this just </td> </tr> <tr> <td class="h" > <a name="5324">5324</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # keeps track of the different numbers of columns that are allowed). If </td> </tr> <tr> <td class="h" > <a name="5325">5325</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # a plot style isn't allowed in 2-D, then this entry should be a false value. </td> </tr> <tr> <td class="h" > <a name="5326">5326</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Negative values get the "array" rather than the "record" specifier (for autogen </td> </tr> <tr> <td class="h" > <a name="5327">5327</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # of coordinates) </td> </tr> <tr> <td class="h" > <a name="5328">5328</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5329">5329</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 1: "3dts" Tuple sizes (columns of data) that are allowed by this plot style for </td> </tr> <tr> <td class="h" > <a name="5330">5330</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 3-D plots (with the gnuplot "plots" command). If this plot style doesn't </td> </tr> <tr> <td class="h" > <a name="5331">5331</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # work in 3-D, then the entry should be a false value instead. </td> </tr> <tr> <td class="h" > <a name="5332">5332</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5333">5333</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 2: img This is a flag indicating whether it is an image format plot (which accepts </td> </tr> <tr> <td class="h" > <a name="5334">5334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 2-D matrix data in each "column"). If false, the column is a 1-D collection </td> </tr> <tr> <td class="h" > <a name="5335">5335</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # of values. </td> </tr> <tr> <td class="h" > <a name="5336">5336</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5337">5337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 3: bin 0/1/undef - 0: ASCII data required for this plot type; 1: binary data required. </td> </tr> <tr> <td class="h" > <a name="5338">5338</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5339">5339</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 4: frob if present, pointer to a prefrobnication routine to prepare the data. </td> </tr> <tr> <td class="h" > <a name="5340">5340</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Currently, fits images are handled that way because of gnuplot's problem </td> </tr> <tr> <td class="h" > <a name="5341">5341</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # dealing with proper coordinate grids -- the fits image is sampled into </td> </tr> <tr> <td class="h" > <a name="5342">5342</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # scientific coordinates using PDL::Transform. The prefrobnicator should accept: </td> </tr> <tr> <td class="h" > <a name="5343">5343</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * the 'with' option array ref, </td> </tr> <tr> <td class="h" > <a name="5344">5344</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * the main plot object (for access to plot options) </td> </tr> <tr> <td class="h" > <a name="5345">5345</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * the plot chunk (for access to curve options), </td> </tr> <tr> <td class="h" > <a name="5346">5346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * all the data passed in for that curve. </td> </tr> <tr> <td class="h" > <a name="5347">5347</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # It should return the new data ndarray list, and modify the chunk 'with' list and curve options in place. </td> </tr> <tr> <td class="h" > <a name="5348">5348</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # While it has access to plot options, it probably shouldn't modify them. </td> </tr> <tr> <td class="h" > <a name="5349">5349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5350">5350</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $plotStyleProps ={ </td> </tr> <tr> <td class="h" > <a name="5351">5351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### key ts 3dts img bin prefrobnicator </td> </tr> <tr> <td class="h" > <a name="5352">5352</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> boxerrorbars => [ [3,4,5], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5353">5353</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> boxes => [ [2,3], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5354">5354</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> boxxyerrorbars => [ [4,6], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5355">5355</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> candlesticks => [ [5,6], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5356">5356</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> circles => [ [2,3], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5357">5357</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dots => [ [-1,2], [3], 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5358">5358</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ellipses => [ [2,3,4,5],0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5359">5359</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> filledcurves => [ [2,3], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5360">5360</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> financebars => [ [5], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5361">5361</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fsteps => [ [-1,2], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5362">5362</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> histeps => [ [-1,2], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5363">5363</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> histogram => [ [1..99], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5364">5364</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> newhistogram => [ [1..99], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5365">5365</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fits => [ [-1], [-1], 1, 1 , \&_with_fits_prefrobnicator ], </td> </tr> <tr> <td class="h" > <a name="5366">5366</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> image => [ [-1,3], [-1,4], 1, 1 ], </td> </tr> <tr> <td class="h" > <a name="5367">5367</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> impulses => [ [-1,2,3], [-1,-2,3,4], 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5368">5368</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> labels => [ [3], [4], 0, 0 ], </td> </tr> <tr> <td class="h" > <a name="5369">5369</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lines => [ [-1,2], [-1,3], 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5370">5370</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> linespoints => [ [-1,2], [-1,3], 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5371">5371</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> points => [ [-1,2], [-1,3], 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5372">5372</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> rgbalpha => [ [-4,6], [-4,7], 1, 1 ], </td> </tr> <tr> <td class="h" > <a name="5373">5373</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> rgbimage => [ [-3,5], [-3,6], 1, 1 ], </td> </tr> <tr> <td class="h" > <a name="5374">5374</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> steps => [ [-1,2], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5375">5375</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> vectors => [ [4], [6], 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5376">5376</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xerrorbars => [ [-2,3,4], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5377">5377</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xyerrorbars => [ [-3,4,6], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5378">5378</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> yerrorbars => [ [-2,3,4], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5379">5379</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xerrorlines => [ [-3,4], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5380">5380</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xyerrorlines => [ [-4,6], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5381">5381</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> yerrorlines => [ [-3,4], 0, 0, undef ], </td> </tr> <tr> <td class="h" > <a name="5382">5382</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pm3d => [ 0, [-1,3,4], 1, 1 ] </td> </tr> <tr> <td class="h" > <a name="5383">5383</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5384">5384</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5385">5385</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="5386">5386</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # plotStyleDocs - just a one-line string for summarizing each plot style. </td> </tr> <tr> <td class="h" > <a name="5387">5387</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # These are not (yet) used but should be incorporated into a documentation schema. </td> </tr> <tr> <td class="h" > <a name="5388">5388</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $plotStyleSyntax = 'Tuple columns are listed for each style. "[]": optional. "{}": 3-D style'; </td> </tr> <tr> <td class="h" > <a name="5389">5389</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $plotStyleDocs ={ </td> </tr> <tr> <td class="h" > <a name="5390">5390</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> boxerrorbars => ["boxes on X axis", "x, y, dy, [dx]; x, y, ylo, yhi, dx"], </td> </tr> <tr> <td class="h" > <a name="5391">5391</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> boxes => ["boxes sitting on X axis", "x, y, [dx]"], </td> </tr> <tr> <td class="h" > <a name="5392">5392</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> boxxyerrorbars => ["XY errorbars as rectangles", "x, y, dx, dy; x, y, xlo, xhi, ylo, yhi"], </td> </tr> <tr> <td class="h" > <a name="5393">5393</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> candlesticks => ["box-and-errorbar plots", "x, blo, wlo, whi, bhi,"], </td> </tr> <tr> <td class="h" > <a name="5394">5394</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> circles => ["circles", "x, y, [r]"], </td> </tr> <tr> <td class="h" > <a name="5395">5395</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dots => ["Tiny dots (scatterplot)", "[x], y; {x, y, z}"], </td> </tr> <tr> <td class="h" > <a name="5396">5396</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ellipses => ["ellipses", "x, y, [dmaj, [dmin, [ang]]]"], </td> </tr> <tr> <td class="h" > <a name="5397">5397</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> filledcurves => ["fill polygon, to axis, or topoint", "x, y; x, y1, y2"], </td> </tr> <tr> <td class="h" > <a name="5398">5398</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> financebars => ["financial stem plot", "x, open, lo, hi, close"], </td> </tr> <tr> <td class="h" > <a name="5399">5399</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fsteps => ["steps (Y first; cf histeps, steps)", "[x], y"], </td> </tr> <tr> <td class="h" > <a name="5400">5400</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> histeps => ["steps (centered; cf fsteps, steps)", "[x], y"], </td> </tr> <tr> <td class="h" > <a name="5401">5401</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> histograms => ["histogram (set tuplesize if >99 cols)", "y, [y1, [y2, [...]]]"], </td> </tr> <tr> <td class="h" > <a name="5402">5402</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> newhistogram => ["histogram (set tuplesize if >99 cols)", "y, [y1, [y2, [...]]]"], </td> </tr> <tr> <td class="h" > <a name="5403">5403</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fits => ["FITS image with WCS info in header", "[x, y], i; {[x, y, z], i}"], </td> </tr> <tr> <td class="h" > <a name="5404">5404</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> image => ["I (WxH), RGB (WxHx3) or RGBA (WxHx4)", "[x, y], i; {[x, y, z], i}"], </td> </tr> <tr> <td class="h" > <a name="5405">5405</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> impulses => ["Vert lines from y=0 or z=0 to point", "[x], y; {[x, y], z}"], </td> </tr> <tr> <td class="h" > <a name="5406">5406</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> labels => ["Text at given location", "x, y, str; {x, y, z, str}"], </td> </tr> <tr> <td class="h" > <a name="5407">5407</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lines => ["Simple line plot", "[x], y; {[x, y], z}"], </td> </tr> <tr> <td class="h" > <a name="5408">5408</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> linespoints => ["Lines with symbols at points", "[x], y; {[x, y], z}"], </td> </tr> <tr> <td class="h" > <a name="5409">5409</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> points => ["Small symbol at each point", "[x], y; {[x, y], z}"], </td> </tr> <tr> <td class="h" > <a name="5410">5410</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> rgbimage => ["RGB image: 2D with R,G,B", "[x, y], r,g,b; {[x, y, z], r,g,b}"], </td> </tr> <tr> <td class="h" > <a name="5411">5411</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> rgbalpha => ["RGBA image: 2D with R,G,B,A", "[x, y], r,g,b,a; {[x, y, z], r,g,b,a}"], </td> </tr> <tr> <td class="h" > <a name="5412">5412</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> steps => ["steps (Y last; cf fsteps, histeps)", "[x], y"], </td> </tr> <tr> <td class="h" > <a name="5413">5413</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> vectors => ["Plot a vector field", "x, y, dx, dy; {x, y, z, dx, dy, dz}"], </td> </tr> <tr> <td class="h" > <a name="5414">5414</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xerrorbars => ["Whisker errorbars in X", "x, y, dx; x, y, xlo, xhi"], </td> </tr> <tr> <td class="h" > <a name="5415">5415</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xyerrorbars => ["Whisker errorbars in X & Y", "x, y, dx, dy; x, y, xlo, xhi, ylo, yhi"], </td> </tr> <tr> <td class="h" > <a name="5416">5416</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> yerrorbars => ["Whisker errorbars in Y", "x, y, dy; x, y, ylo, yhi"], </td> </tr> <tr> <td class="h" > <a name="5417">5417</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xerrorlines => ["Whisker errorbars in X, connected", "x, y, dx; x, y, xlo, xhi"], </td> </tr> <tr> <td class="h" > <a name="5418">5418</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> xyerrorlines => ["Whisker errorbars in X & Y, connected", "x, y, dx, dy; x, y, xlo, xhi, ylo, yhi"], </td> </tr> <tr> <td class="h" > <a name="5419">5419</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> yerrorlines => ["Whisker errorbars in Y, connected", "x, y, dy; x, y, ylo, yhi"], </td> </tr> <tr> <td class="h" > <a name="5420">5420</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pm3d => ["Colored 3-D surface plot", "{[x,y,z],[i]}"] </td> </tr> <tr> <td class="h" > <a name="5421">5421</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5422">5422</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5423">5423</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5424">5424</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $plotStyleAbbrevs = _gen_abbrev_list(keys %$plotStyleProps); </td> </tr> <tr> <td class="h" > <a name="5425">5425</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Make some tweaks to the abbreviations... </td> </tr> <tr> <td class="h" > <a name="5426">5426</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> map { $plotStyleAbbrevs->{$_} = 'lines' } qw/ li lin line lines /; </td> </tr> <tr> <td class="h" > <a name="5427">5427</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $plotStyleAbbrevs->{box} = 'boxes'; </td> </tr> <tr> <td class="h" > <a name="5428">5428</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $plotStyleAbbrevs->{lp} = 'linespoints'; </td> </tr> <tr> <td class="h" > <a name="5429">5429</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> map { $plotStyleAbbrevs->{$_} = 'histeps' } qw/ hs hi his hist /; </td> </tr> <tr> <td class="h" > <a name="5430">5430</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5431">5431</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5432">5432</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="5433">5433</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # palettesTab - this is a table mapping palette names to rgb specifications in gnuplot, together </td> </tr> <tr> <td class="h" > <a name="5434">5434</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # with the color model they support. </td> </tr> <tr> <td class="h" > <a name="5435">5435</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5436">5436</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # From gnuplot's "show palette rgbformulae" command, there are 37 different available rgb color mapping formulae; </td> </tr> <tr> <td class="h" > <a name="5437">5437</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # these are used where possible, but defined palettes can also be used. </td> </tr> <tr> <td class="h" > <a name="5438">5438</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5439">5439</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # These codes are used in the parser/emitter codes for the "clut" pseudo-option. </td> </tr> <tr> <td class="h" > <a name="5440">5440</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5441">5441</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Each value is an array ref containing (color model),(palette string). </td> </tr> <tr> <td class="h" > <a name="5442">5442</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5443">5443</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # For reference, the formulae in the 'rgbformulae' option, at least in Gnuplot 4.4, are: </td> </tr> <tr> <td class="h" > <a name="5444">5444</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5445">5445</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 0: 0 1: 0.5 2: 1 </td> </tr> <tr> <td class="h" > <a name="5446">5446</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 3: x 4: x^2 5: x^3 </td> </tr> <tr> <td class="h" > <a name="5447">5447</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 6: x^4 7: sqrt(x) 8: sqrt(sqrt(x)) </td> </tr> <tr> <td class="h" > <a name="5448">5448</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 9: sin(90x) 10: cos(90x) 11: |x-0.5| </td> </tr> <tr> <td class="h" > <a name="5449">5449</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 12: (2x-1)^2 13: sin(180x) 14: |cos(180x)| </td> </tr> <tr> <td class="h" > <a name="5450">5450</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 15: sin(360x) 16: cos(360x) 17: |sin(360x)| </td> </tr> <tr> <td class="h" > <a name="5451">5451</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 18: |cos(360x)| 19: |sin(720x)| 20: |cos(720x)| </td> </tr> <tr> <td class="h" > <a name="5452">5452</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 21: 3x 22: 3x-1 23: 3x-2 </td> </tr> <tr> <td class="h" > <a name="5453">5453</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 24: |3x-1| 25: |3x-2| 26: (3x-1)/2 </td> </tr> <tr> <td class="h" > <a name="5454">5454</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 27: (3x-2)/2 28: |(3x-1)/2| 29: |(3x-2)/2| </td> </tr> <tr> <td class="h" > <a name="5455">5455</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 30: x/0.32-0.78125 31: 2*x-0.84 32: 4x;1;-2x+1.84;x/0.08-11.5 </td> </tr> <tr> <td class="h" > <a name="5456">5456</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 33: |2*x - 0.5| 34: 2*x 35: 2*x - 0.5 </td> </tr> <tr> <td class="h" > <a name="5457">5457</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # 36: 2*x - 1 </td> </tr> <tr> <td class="h" > <a name="5458">5458</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5459">5459</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $palettesTab = { </td> </tr> <tr> <td class="h" > <a name="5460">5460</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default => [ undef, undef, "default palette assigned by Gnuplot" ], </td> </tr> <tr> <td class="h" > <a name="5461">5461</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> grey => [ undef, 'gray', "gray" ], </td> </tr> <tr> <td class="h" > <a name="5462">5462</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gray => [ undef, 'gray', "gray" ], </td> </tr> <tr> <td class="h" > <a name="5463">5463</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sepia => [ 'RGB', 'color rgbformulae 7,3,4', "a simple sepiatone" ], </td> </tr> <tr> <td class="h" > <a name="5464">5464</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> grepia => [ 'RGB', 'color rgbformulae 3,7,4', "a simple sepiatone, in green" ], </td> </tr> <tr> <td class="h" > <a name="5465">5465</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> blepia => [ 'RGB', 'color rgbformulae 4,3,7', "a simple sepiatone, in cyan/blue"], </td> </tr> <tr> <td class="h" > <a name="5466">5466</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> vepia => [ 'RGB', 'color rgbformulae 3,4,7', "a simple sepiatone, in violet" ], </td> </tr> <tr> <td class="h" > <a name="5467">5467</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pm3d => [ 'RGB', 'color rgbformulae 7,5,15', "black-blue-red-yellow" ], </td> </tr> <tr> <td class="h" > <a name="5468">5468</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> grv => [ 'RGB', 'color rgbformulae 3,11,6', "green-red-violet" ], </td> </tr> <tr> <td class="h" > <a name="5469">5469</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ocean => [ 'RGB', 'color rgbformulae 23,28,3', "green-blue-white" ], </td> </tr> <tr> <td class="h" > <a name="5470">5470</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> gback => [ 'RGB', 'color rgbformulae 31,31,32', "printable on a gray background" ], </td> </tr> <tr> <td class="h" > <a name="5471">5471</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> rainbow => [ 'RGB', 'color rgbformulae -33,-13,-10',"Rainbow red-yellow-green-blue" ], </td> </tr> <tr> <td class="h" > <a name="5472">5472</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> heat1 => [ 'RGB', 'color rgbformulae 21,22,23', "heat-map: black-red-yellow-white" ], </td> </tr> <tr> <td class="h" > <a name="5473">5473</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> heat2 => [ 'RGB', 'color rgbformulae 34, 35, 36', "heat-map (AFM): black-red-yellow-white" ], </td> </tr> <tr> <td class="h" > <a name="5474">5474</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> wheel => [ 'HSV', 'color rgbformulae 3,2,2', "hue map: color wheel" ], </td> </tr> <tr> <td class="h" > <a name="5475">5475</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> rgb => [ 'RGB', 'color rgbformulae 10,13,9', "red-green-blue fade" ], </td> </tr> <tr> <td class="h" > <a name="5476">5476</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dop => [ 'RGB', "defined (0 '#ff0000', 0.5 '#ffffff', 1.0 '#0000ff')", "red-white-blue fade" ], </td> </tr> <tr> <td class="h" > <a name="5477">5477</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dop2 => [ 'RGB', "defined (0 '#ff0000', 0.5 '#000000', 1.0 '#0000ff')", "red-black-blue fade" ], </td> </tr> <tr> <td class="h" > <a name="5478">5478</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dop3 => [ 'RGB', "defined (0 '#ff9090', 0.4 '#503030', 0.5 '#000000', 0.6 '#303050', 1.0 '#9090ff')", "red-black-blue fade (gentler)" ], </td> </tr> <tr> <td class="h" > <a name="5479">5479</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5480">5480</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5481">5481</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5482">5482</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="5483">5483</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _parseOptHash </td> </tr> <tr> <td class="h" > <a name="5484">5484</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5485">5485</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Internal routine to parse a collection of options, given a collection of syntax </td> </tr> <tr> <td class="h" > <a name="5486">5486</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # definitions and either an options hash ref or a listified hash. </td> </tr> <tr> <td class="h" > <a name="5487">5487</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Used for parsing/adding plot options... </td> </tr> <tr> <td class="h" > <a name="5488">5488</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5489">5489</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Call with the options hash to be written to, then with the Opt array ref (e.g. $pOpt global above), </td> </tr> <tr> <td class="h" > <a name="5490">5490</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # then with the arguments. The $me is needed to feed to special-handling subs in the </td> </tr> <tr> <td class="h" > <a name="5491">5491</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # OptionsTable. </td> </tr> <tr> <td class="h" > <a name="5492">5492</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5493">5493</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _pOHTable: helper for _parseOptHash - handles the individual cases. Each sub </td> </tr> <tr> <td class="h" > <a name="5494">5494</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # gets ($oldval, $param, $opts) and returns the parsed value (or barfs). </td> </tr> <tr> <td class="h" > <a name="5495">5495</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5496">5496</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $_pOHInputs; # table of parser code snippets (declared at bottom) </td> </tr> <tr> <td class="h" > <a name="5497">5497</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5498">5498</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _parseOptHash { </td> </tr> <tr> <td class="h" > <a name="5499">5499</a> </td> <td class="c3" > 203 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#5499-1"> 100 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#5499-1"> 203 </a> </td> <td >   </td> <td > 731 </td> <td class="s"> my($options) = shift || {}; </td> </tr> <tr> <td class="h" > <a name="5500">5500</a> </td> <td class="c3" > 203 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 367 </td> <td class="s"> my($OptTable, $AbbrevTable, $name) = @{shift()}; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 203 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1314 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5501">5501</a> </td> <td class="c3" > 203 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 799 </td> <td class="s"> my @opts = @_; </td> </tr> <tr> <td class="h" > <a name="5502">5502</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5503">5503</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Parse arguments one at a time. If the first one is a hash ref then </td> </tr> <tr> <td class="h" > <a name="5504">5504</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # unpack it inline. </td> </tr> <tr> <td class="h" > <a name="5505">5505</a> </td> <td class="c3" > 203 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 611 </td> <td class="s"> opt: while(@opts) { </td> </tr> <tr> <td class="h" > <a name="5506">5506</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Pull the next key. If it turns out to be a hash, interpolate the hash into the list </td> </tr> <tr> <td class="h" > <a name="5507">5507</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # of parameters. If it turns out to be a list, do likewise. Note that array refs that are </td> </tr> <tr> <td class="h" > <a name="5508">5508</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # in a value slot are *not* interpolated. </td> </tr> <tr> <td class="h" > <a name="5509">5509</a> </td> <td class="c3" > 208 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 517 </td> <td class="s"> my $k = shift @opts; </td> </tr> <tr> <td class="h" > <a name="5510">5510</a> </td> <td class="c3" > 208 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5510-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 936 </td> <td class="s"> if(ref $k eq 'HASH') { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5511">5511</a> </td> <td class="c3" > 62 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 279 </td> <td class="s"> unshift(@opts,%$k); </td> </tr> <tr> <td class="h" > <a name="5512">5512</a> </td> <td class="c3" > 62 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 180 </td> <td class="s"> $k = shift @opts; </td> </tr> <tr> <td class="h" > <a name="5513">5513</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(ref $k eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="5514">5514</a> </td> <td class="c3" > 11 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 46 </td> <td class="s"> unshift(@opts,@$k); </td> </tr> <tr> <td class="h" > <a name="5515">5515</a> </td> <td class="c3" > 11 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 25 </td> <td class="s"> $k = shift @opts; </td> </tr> <tr> <td class="h" > <a name="5516">5516</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5517">5517</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5518">5518</a> </td> <td class="c3" > 208 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5518-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 529 </td> <td class="s"> last opt unless defined($k); </td> </tr> <tr> <td class="h" > <a name="5519">5519</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5520">5520</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # now pull the value. </td> </tr> <tr> <td class="h" > <a name="5521">5521</a> </td> <td class="c3" > 206 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 359 </td> <td class="s"> my $v = shift @opts; </td> </tr> <tr> <td class="h" > <a name="5522">5522</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5523">5523</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Expand abbreviations and get the table entry for the option </td> </tr> <tr> <td class="h" > <a name="5524">5524</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (throws an exception on failure) </td> </tr> <tr> <td class="h" > <a name="5525">5525</a> </td> <td class="c3" > 206 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 865 </td> <td class="s"> my ($kk,$knum) = _expand_abbrev($k, $AbbrevTable, $name); # throws exception on failure </td> </tr> <tr> <td class="h" > <a name="5526">5526</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5527">5527</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Evil DWIMmery. 'N' type parameters take a numeric argument that is </td> </tr> <tr> <td class="h" > <a name="5528">5528</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # allowed to trail the keyword itself in the keyword part of the specifier. </td> </tr> <tr> <td class="h" > <a name="5529">5529</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # So if we got a number we have to check that the corresponding keyword </td> </tr> <tr> <td class="h" > <a name="5530">5530</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # in fact is 'N' type - else we leave the number in the keyword itself and </td> </tr> <tr> <td class="h" > <a name="5531">5531</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # revalidate. </td> </tr> <tr> <td class="h" > <a name="5532">5532</a> </td> <td class="c3" > 192 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5532-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 524 </td> <td class="s"> if(defined $knum) { </td> </tr> <tr> <td class="h" > <a name="5533">5533</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5533-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 22 </td> <td class="s"> if($OptTable->{$kk}->[0] eq 'N') { # HARDWIRED-N parsing </td> </tr> <tr> <td class="h" > <a name="5534">5534</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5534-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s"> if(ref $v eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="5535">5535</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12 </td> <td class="s"> unshift(@$v, $knum); </td> </tr> <tr> <td class="h" > <a name="5536">5536</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5537">5537</a> </td> <td class="c0" > <a href="#5541"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $v = [$knum, $v]; </td> </tr> <tr> <td class="h" > <a name="5538">5538</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5539">5539</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5540">5540</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5541">5541</a> </td> <td class="c0" > <a href="#5542"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $kk = "$kk$knum"; </td> </tr> <tr> <td class="h" > <a name="5542">5542</a> </td> <td class="c0" > <a href="#5543"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $knum = undef; </td> </tr> <tr> <td class="h" > <a name="5543">5543</a> </td> <td class="c0" > <a href="#5544"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5543-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless($AbbrevTable->{$kk}) { </td> </tr> <tr> <td class="h" > <a name="5544">5544</a> </td> <td class="c0" > <a href="#5556"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Error: $name '$k' expanded to '$kk', which isn't a known keyword.\n"; </td> </tr> <tr> <td class="h" > <a name="5545">5545</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5546">5546</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5547">5547</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5548">5548</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5549">5549</a> </td> <td class="c3" > 192 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 658 </td> <td class="s"> my $TableEntry = $OptTable->{$kk}; </td> </tr> <tr> <td class="h" > <a name="5550">5550</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5551">5551</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Grab a parser code ref... </td> </tr> <tr> <td class="h" > <a name="5552">5552</a> </td> <td class="c3" > 192 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 807 </td> <td class="s"> my $parser = $TableEntry->[0]; </td> </tr> <tr> <td class="h" > <a name="5553">5553</a> </td> <td class="c3" > 192 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5553-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#5553-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 535 </td> <td class="s"> unless(ref $parser) { </td> </tr> <tr> <td class="h" > <a name="5554">5554</a> </td> <td class="c3" > 154 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 577 </td> <td class="s"> my $p = $_pOHInputs->{$parser}; </td> </tr> <tr> <td class="h" > <a name="5555">5555</a> </td> <td class="c3" > 154 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5555-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 559 </td> <td class="s"> unless(ref $p eq 'CODE') { </td> </tr> <tr> <td class="h" > <a name="5556">5556</a> </td> <td class="c0" > <a href="#5569"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Unknown input type '$parser' found in option table entry for $kk! This is a bug."; </td> </tr> <tr> <td class="h" > <a name="5557">5557</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5558">5558</a> </td> <td class="c3" > 154 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 319 </td> <td class="s"> $parser = $p; </td> </tr> <tr> <td class="h" > <a name="5559">5559</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(ref $parser eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="5560">5560</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If the parser entry is an array ref with one non-ref element only, it is a regexp to match </td> </tr> <tr> <td class="h" > <a name="5561">5561</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # for successful enumeration. If it has more than one element, it is an enum list that </td> </tr> <tr> <td class="h" > <a name="5562">5562</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # can be abbreviated. </td> </tr> <tr> <td class="h" > <a name="5563">5563</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(ref($parser->[0])) { </td> </tr> <tr> <td class="h" > <a name="5564">5564</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf("HELP! Parser is confused. This is a bug, please report it.\n"); </td> </tr> <tr> <td class="h" > <a name="5565">5565</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ( 0+@$parser == 1 ) { </td> </tr> <tr> <td class="h" > <a name="5566">5566</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # An array ref with a single element - it's a regexp to match </td> </tr> <tr> <td class="h" > <a name="5567">5567</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $a = $parser->[0]; </td> </tr> <tr> <td class="h" > <a name="5568">5568</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $parser = sub { </td> </tr> <tr> <td class="h" > <a name="5569">5569</a> </td> <td class="c0" > <a href="#5570"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#5569-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> my ($old, $newparam, $hash) = @_; </td> </tr> <tr> <td class="h" > <a name="5570">5570</a> </td> <td class="c0" > <a href="#5571"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf("Unknown field $newparam (must match m/$a/)\n") if $newparam !~ m/$a/; </td> </tr> <tr> <td class="h" > <a name="5571">5571</a> </td> <td class="c0" > <a href="#5581"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $newparam; </td> </tr> <tr> <td class="h" > <a name="5572">5572</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5573">5573</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5574">5574</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # An array ref with multiple elements - they are enums. </td> </tr> <tr> <td class="h" > <a name="5575">5575</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Make a temporary abbrev list for 'em. </td> </tr> <tr> <td class="h" > <a name="5576">5576</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $abbrevs = _gen_abbrev_list( @$parser ); </td> </tr> <tr> <td class="h" > <a name="5577">5577</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $p = sub { </td> </tr> <tr> <td class="h" > <a name="5578">5578</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#5578-1"> 4 </a> </td> <td >   </td> <td > 10 </td> <td class="s"> my($old, $newparam, $hash) = @_; </td> </tr> <tr> <td class="h" > <a name="5579">5579</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 11 </td> <td class="s"> my $k = eval { _expand_abbrev($newparam, $abbrevs, "enumerated $kk option"); }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5580">5580</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s"> if($@) { </td> </tr> <tr> <td class="h" > <a name="5581">5581</a> </td> <td class="c0" > <a href="#5582"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $s = $@; </td> </tr> <tr> <td class="h" > <a name="5582">5582</a> </td> <td class="c0" > <a href="#5583"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> undef $@; </td> </tr> <tr> <td class="h" > <a name="5583">5583</a> </td> <td class="c0" > <a href="#5592"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf($s); </td> </tr> <tr> <td class="h" > <a name="5584">5584</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5585">5585</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 45 </td> <td class="s"> return $k; </td> </tr> <tr> <td class="h" > <a name="5586">5586</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5587">5587</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $parser = $p; </td> </tr> <tr> <td class="h" > <a name="5588">5588</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5589">5589</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5590">5590</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5591">5591</a> </td> <td class="c3" > 192 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5591-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 572 </td> <td class="s"> unless(ref $parser eq 'CODE') { </td> </tr> <tr> <td class="h" > <a name="5592">5592</a> </td> <td class="c0" > <a href="#5804"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "HELP!"; </td> </tr> <tr> <td class="h" > <a name="5593">5593</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5594">5594</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5595">5595</a> </td> <td class="c3" > 192 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1173 </td> <td class="s"> $options->{$kk} = &$parser($options->{$kk}, $v, $options, $kk); </td> </tr> <tr> <td class="h" > <a name="5596">5596</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5597">5597</a> </td> <td class="c3" > 187 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2553 </td> <td class="s"> return $options; </td> </tr> <tr> <td class="h" > <a name="5598">5598</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5599">5599</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5600">5600</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="5601">5601</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5602">5602</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Parse table </td> </tr> <tr> <td class="h" > <a name="5603">5603</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5604">5604</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $_pOHInputs describes input parsing from argument lists. Each key </td> </tr> <tr> <td class="h" > <a name="5605">5605</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # is a code for a particular type of input; the value is a subroutine </td> </tr> <tr> <td class="h" > <a name="5606">5606</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # that accepts ($old_value, $new_input, $options_hash, $fieldname) and returns the </td> </tr> <tr> <td class="h" > <a name="5607">5607</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # parsed new value. Most of the parsers ignore fieldname, but it's passed in </td> </tr> <tr> <td class="h" > <a name="5608">5608</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # so that, e.g., 'lt' can parse both major and minor tick values. </td> </tr> <tr> <td class="h" > <a name="5609">5609</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5610">5610</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $footicsAbbrevs = _gen_abbrev_list(qw/axis border mirror in out scale rotate offset left right center autofreq locations labels format font rangelimited textcolor/ ); </td> </tr> <tr> <td class="h" > <a name="5611">5611</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5612">5612</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $_pOHInputs = { </td> </tr> <tr> <td class="h" > <a name="5613">5613</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Simple cases - boolean, number, scalar </td> </tr> <tr> <td class="h" > <a name="5614">5614</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> b => sub {return $_[1] if !defined $_[1]; $_[1] ? 1 : 0 }, </td> </tr> <tr> <td class="h" > <a name="5615">5615</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> n => sub {return $_[1] if !defined $_[1]; $_[1] + 0 }, </td> </tr> <tr> <td class="h" > <a name="5616">5616</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> s => sub {return $_[1] if !defined $_[1]; "$_[1]" }, </td> </tr> <tr> <td class="h" > <a name="5617">5617</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5618">5618</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## one-line list (can also be boolean) </td> </tr> <tr> <td class="h" > <a name="5619">5619</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> l => sub { return $_[1] if !defined $_[1] or !length $_[1] or ref $_[1] eq 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="5620">5620</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $_[1] if !ref($_[1]) && "$_[1]" =~ m/^\s*\-?\d+\s*$/; # nonzero integers yield true </td> </tr> <tr> <td class="h" > <a name="5621">5621</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Not setting a boolean value - it's a list (or a trivial list). </td> </tr> <tr> <td class="h" > <a name="5622">5622</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # anything that's not an array ref (and not a number) gets put in the array </td> </tr> <tr> <td class="h" > <a name="5623">5623</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return [$_[1]]; </td> </tr> <tr> <td class="h" > <a name="5624">5624</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5625">5625</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5626">5626</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## one-line list (no booleanity: scalars always get copied to the list) </td> </tr> <tr> <td class="h" > <a name="5627">5627</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ln => sub { return $_[1] if !defined $_[1] or !length $_[1] or ref $_[1] eq 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="5628">5628</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return [$_[1]]; </td> </tr> <tr> <td class="h" > <a name="5629">5629</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5630">5630</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5631">5631</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## one-line list (can also be boolean or hash) </td> </tr> <tr> <td class="h" > <a name="5632">5632</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lh => sub { return $_[1] if !defined $_[1] or !length $_[1] </td> </tr> <tr> <td class="h" > <a name="5633">5633</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or ref $_[1] eq 'ARRAY' or ref $_[1] eq 'HASH' </td> </tr> <tr> <td class="h" > <a name="5634">5634</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or ((!ref($_[1])) && "$_[1]" =~ m/^\s*\-?\d+\s*$/); # nonzero integers yield true </td> </tr> <tr> <td class="h" > <a name="5635">5635</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Not setting a boolean value - it's a list (or a trivial list). </td> </tr> <tr> <td class="h" > <a name="5636">5636</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return [$_[1]]; </td> </tr> <tr> <td class="h" > <a name="5637">5637</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5638">5638</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5639">5639</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## list or 2-PDL for a range parameter </td> </tr> <tr> <td class="h" > <a name="5640">5640</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lr => sub { return $_[1] if !defined $_[1] or !length $_[1] </td> </tr> <tr> <td class="h" > <a name="5641">5641</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or ((!ref($_[1])) && "$_[1]" =~ m/^\s*\-?\d+\s*$/) # nonzero integers yield true </td> </tr> <tr> <td class="h" > <a name="5642">5642</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Not setting a boolean value - it's a list (or a trivial list). </td> </tr> <tr> <td class="h" > <a name="5643">5643</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or ref $_[1] eq 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="5644">5644</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return [$_[1]] if !$_[1]->$_isa('PDL'); </td> </tr> <tr> <td class="h" > <a name="5645">5645</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "PDL::Graphics::Gnuplot: range parser found a PDL, but it wasn't a 2-PDL (max,min)" </td> </tr> <tr> <td class="h" > <a name="5646">5646</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless( $_[1]->dims==1 and $_[1]->nelem==2 ); </td> </tr> <tr> <td class="h" > <a name="5647">5647</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return [$_[1]->list]; </td> </tr> <tr> <td class="h" > <a name="5648">5648</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5649">5649</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5650">5650</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## cumulative list (delete on "undef") </td> </tr> <tr> <td class="h" > <a name="5651">5651</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C => sub { return $_[1] if !defined $_[1]; </td> </tr> <tr> <td class="h" > <a name="5652">5652</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return 0 unless($_[1]); # false value yields false </td> </tr> <tr> <td class="h" > <a name="5653">5653</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return 1 if( $_[1] && "$_[1]" =~ m/^\s*-?\d+\s*$/); # nonzero integers yield true </td> </tr> <tr> <td class="h" > <a name="5654">5654</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Not setting a boolean value - it's a list, so append it. </td> </tr> <tr> <td class="h" > <a name="5655">5655</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $out = (ref $_[0] eq 'ARRAY') ? $_[0] : []; </td> </tr> <tr> <td class="h" > <a name="5656">5656</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push @$out, ref $_[1] eq 'ARRAY' ? $_[1] : [ split ( /\s+/, $_[1] ) ]; </td> </tr> <tr> <td class="h" > <a name="5657">5657</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $out; </td> </tr> <tr> <td class="h" > <a name="5658">5658</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5659">5659</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5660">5660</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## set hash values </td> </tr> <tr> <td class="h" > <a name="5661">5661</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> H => sub { return $_[1] if !defined $_[1]; </td> </tr> <tr> <td class="h" > <a name="5662">5662</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $out = (ref $_[0] eq 'HASH') ? $_[0] : {}; </td> </tr> <tr> <td class="h" > <a name="5663">5663</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $in = $_[1]; </td> </tr> <tr> <td class="h" > <a name="5664">5664</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $in = {@$in} if ref $in eq 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="5665">5665</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (ref($in) eq 'HASH') { </td> </tr> <tr> <td class="h" > <a name="5666">5666</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $k (keys %{$_[1]}) { </td> </tr> <tr> <td class="h" > <a name="5667">5667</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $out->{$k} = $_[1]->{$k}; </td> </tr> <tr> <td class="h" > <a name="5668">5668</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5669">5669</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5670">5670</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # scalar or <mumble>... </td> </tr> <tr> <td class="h" > <a name="5671">5671</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ( $in =~ m/([^\s]+)\s+(.*)$/ ) { </td> </tr> <tr> <td class="h" > <a name="5672">5672</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # key/value found </td> </tr> <tr> <td class="h" > <a name="5673">5673</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $out->{$1} = $2; </td> </tr> <tr> <td class="h" > <a name="5674">5674</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5675">5675</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # at most a key found. If nothing, clear the hash </td> </tr> <tr> <td class="h" > <a name="5676">5676</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return undef unless($in =~ s/^\s*([^\s]+)\s*$/$1/); </td> </tr> <tr> <td class="h" > <a name="5677">5677</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # A key was found. Set a nonempty value so that "set foo $k" gets emitted </td> </tr> <tr> <td class="h" > <a name="5678">5678</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $out->{$1} = " "; </td> </tr> <tr> <td class="h" > <a name="5679">5679</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5680">5680</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5681">5681</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $out; </td> </tr> <tr> <td class="h" > <a name="5682">5682</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5683">5683</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5684">5684</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## number-indexed list </td> </tr> <tr> <td class="h" > <a name="5685">5685</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## </td> </tr> <tr> <td class="h" > <a name="5686">5686</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> N => sub { my($old,$new,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5687">5687</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $_[1] if !defined $_[1]; </td> </tr> <tr> <td class="h" > <a name="5688">5688</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $out = (ref($old) eq 'ARRAY') ? $old : []; </td> </tr> <tr> <td class="h" > <a name="5689">5689</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5690">5690</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Split strings into lists if necessary. </td> </tr> <tr> <td class="h" > <a name="5691">5691</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $new = [ split(/\s+/,$new) ] unless(ref($new) eq 'ARRAY'); </td> </tr> <tr> <td class="h" > <a name="5692">5692</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5693">5693</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Check for nested lists -- multiple specs. </td> </tr> <tr> <td class="h" > <a name="5694">5694</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(ref($new->[0]) eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="5695">5695</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $o = []; </td> </tr> <tr> <td class="h" > <a name="5696">5696</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $l(@$new) { </td> </tr> <tr> <td class="h" > <a name="5697">5697</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless(ref $l eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="5698">5698</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "Markup option: nested lists must contain only array refs\n"; </td> </tr> <tr> <td class="h" > <a name="5699">5699</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5700">5700</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@$o, [@$l]); </td> </tr> <tr> <td class="h" > <a name="5701">5701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5702">5702</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $out = $o; </td> </tr> <tr> <td class="h" > <a name="5703">5703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5704">5704</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # not a nested list - look for an index number at the start. </td> </tr> <tr> <td class="h" > <a name="5705">5705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $dex; </td> </tr> <tr> <td class="h" > <a name="5706">5706</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($new->[0] =~ m/^\s*(\d+)\s*$/) { </td> </tr> <tr> <td class="h" > <a name="5707">5707</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $dex = 0 + shift(@$new); </td> </tr> <tr> <td class="h" > <a name="5708">5708</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5709">5709</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $dex = scalar(@$out) || 1; </td> </tr> <tr> <td class="h" > <a name="5710">5710</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5711">5711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(@$new) { </td> </tr> <tr> <td class="h" > <a name="5712">5712</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $out->[$dex] = $new; </td> </tr> <tr> <td class="h" > <a name="5713">5713</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5714">5714</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $out->[$dex] = undef; </td> </tr> <tr> <td class="h" > <a name="5715">5715</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5716">5716</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5717">5717</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $out; </td> </tr> <tr> <td class="h" > <a name="5718">5718</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5719">5719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5720">5720</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## <foo>tics option list </td> </tr> <tr> <td class="h" > <a name="5721">5721</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## (For valid hash keys, see footicsAbbrevs definition above) </td> </tr> <tr> <td class="h" > <a name="5722">5722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> lt => sub { my($old, $new, $h, $fieldname) = @_; </td> </tr> <tr> <td class="h" > <a name="5723">5723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $_[1] if !defined $_[1]; </td> </tr> <tr> <td class="h" > <a name="5724">5724</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return 0 unless($new); </td> </tr> <tr> <td class="h" > <a name="5725">5725</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ( ref($new) eq 'HASH' ) { </td> </tr> <tr> <td class="h" > <a name="5726">5726</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my %h = (); </td> </tr> <tr> <td class="h" > <a name="5727">5727</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $k(keys %$new) { </td> </tr> <tr> <td class="h" > <a name="5728">5728</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $k2 = _expand_abbrev($k, $footicsAbbrevs, "<foo>tics option"); </td> </tr> <tr> <td class="h" > <a name="5729">5729</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Error: '$k' expanded to '$k2', which already exists in <foo>tics option" </td> </tr> <tr> <td class="h" > <a name="5730">5730</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if exists $h{$k2}; </td> </tr> <tr> <td class="h" > <a name="5731">5731</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $h{$k2} = $new->{$k}; </td> </tr> <tr> <td class="h" > <a name="5732">5732</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5733">5733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return \%h; </td> </tr> <tr> <td class="h" > <a name="5734">5734</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5735">5735</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Error: <foo>tics options require a scalar or a hash ref" </td> </tr> <tr> <td class="h" > <a name="5736">5736</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref($new) and ref($new) ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="5737">5737</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @list = ref($new) ? @$new : map { s/^\s+//; s/\s+$//; split /\s*[\s\,]\s*/ } $new; </td> </tr> <tr> <td class="h" > <a name="5738">5738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return {} if !@list; </td> </tr> <tr> <td class="h" > <a name="5739">5739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We don't fully parse gnuplot lines -- but we do </td> </tr> <tr> <td class="h" > <a name="5740">5740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # check for the simple numeric case -- if it's correct, </td> </tr> <tr> <td class="h" > <a name="5741">5741</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # turn the array ref into a hash for future manipulability. </td> </tr> <tr> <td class="h" > <a name="5742">5742</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(@list > 3) { </td> </tr> <tr> <td class="h" > <a name="5743">5743</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp "Warning - explicit string or array refs are deprecated in tic specs\n"; </td> </tr> <tr> <td class="h" > <a name="5744">5744</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return [@list]; </td> </tr> <tr> <td class="h" > <a name="5745">5745</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5746">5746</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $num_ok = 0; </td> </tr> <tr> <td class="h" > <a name="5747">5747</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $i(0..$#list) { </td> </tr> <tr> <td class="h" > <a name="5748">5748</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $num_ok++ if($list[$i] =~ s/^(\-?\d+(\.\d*)?([eE][\+\-]?\d+)?)(\s*\,\s*)?$/$1/); </td> </tr> <tr> <td class="h" > <a name="5749">5749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5750">5750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return {locations=>\@list} if $num_ok == @list; # Hashify if possible </td> </tr> <tr> <td class="h" > <a name="5751">5751</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp "Warning - explicit list or string gnuplot commands are deprecated in tic specs\n"; </td> </tr> <tr> <td class="h" > <a name="5752">5752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return \@list; </td> </tr> <tr> <td class="h" > <a name="5753">5753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5754">5754</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5755">5755</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## dashtype option </td> </tr> <tr> <td class="h" > <a name="5756">5756</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dt => sub { my($old, $new, $h, $fieldname) = @_; </td> </tr> <tr> <td class="h" > <a name="5757">5757</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($gp_version < 5.0) { </td> </tr> <tr> <td class="h" > <a name="5758">5758</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp "WARNING: 'dashtype' is not supported by your <5.0 gnuplot. Ignoring...\n"; </td> </tr> <tr> <td class="h" > <a name="5759">5759</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $old; </td> </tr> <tr> <td class="h" > <a name="5760">5760</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5761">5761</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Error: dashtype curve option requires a scalar or an array ref" </td> </tr> <tr> <td class="h" > <a name="5762">5762</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref $new and ref $new ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="5763">5763</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $new; </td> </tr> <tr> <td class="h" > <a name="5764">5764</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5765">5765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="5766">5766</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5767">5767</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5768">5768</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="5769">5769</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _emitOpts </td> </tr> <tr> <td class="h" > <a name="5770">5770</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5771">5771</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Accepts an options table as a single hash ref, and emits a corresponding </td> </tr> <tr> <td class="h" > <a name="5772">5772</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # string that is suitable for passing on to gnuplot. Curve options and </td> </tr> <tr> <td class="h" > <a name="5773">5773</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # plot options use different output specifiers and can therefore both be </td> </tr> <tr> <td class="h" > <a name="5774">5774</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # handled by one routine. </td> </tr> <tr> <td class="h" > <a name="5775">5775</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5776">5776</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Because curve and plot options have different parse tables, you have to </td> </tr> <tr> <td class="h" > <a name="5777">5777</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # pass in the parse table ref appropriate to the type of option you're emitting. </td> </tr> <tr> <td class="h" > <a name="5778">5778</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5779">5779</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _emitOpts { </td> </tr> <tr> <td class="h" > <a name="5780">5780</a> </td> <td class="c3" > 208 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#5780-1"> 208 </a> </td> <td >   </td> <td > 690 </td> <td class="s"> my ($options, $tab, $this) = @_; </td> </tr> <tr> <td class="h" > <a name="5781">5781</a> </td> <td class="c3" > 208 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 496 </td> <td class="s"> my $table = $tab->[0]; </td> </tr> <tr> <td class="h" > <a name="5782">5782</a> </td> <td class="c3" > 208 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 291 </td> <td class="s"> our $_OptionEmitters; </td> </tr> <tr> <td class="h" > <a name="5783">5783</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5784">5784</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Sort the keys into options table order -- this is so that keys that are supposed </td> </tr> <tr> <td class="h" > <a name="5785">5785</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # to be up top go up top; keys with no particular order defined in the parse table </td> </tr> <tr> <td class="h" > <a name="5786">5786</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # are allowed to stay in random order. </td> </tr> <tr> <td class="h" > <a name="5787">5787</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5788">5788</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Keys that are supposed to be at bottom (if any in future) can be </td> </tr> <tr> <td class="h" > <a name="5789">5789</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # placed there by the expedient of assigning them sort values in excess of 1,000. </td> </tr> <tr> <td class="h" > <a name="5790">5790</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5791">5791</a> </td> <td class="c3" > 208 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5791-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1960 </td> <td class="s"> my @keys = sort { ((defined $table->{$a}->[3])?($table->{$a}->[3]): 999) <=> ((defined $table->{$b}->[3])?($table->{$b}->[3]):999) or </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1816 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 6863 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-3"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5792">5792</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ($a cmp $b) </td> </tr> <tr> <td class="h" > <a name="5793">5793</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } keys %$options; </td> </tr> <tr> <td class="h" > <a name="5794">5794</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5795">5795</a> </td> <td class="c3" > 208 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 710 </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="5796">5796</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5797">5797</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5798">5798</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Loop over the keys and emit. </td> </tr> <tr> <td class="h" > <a name="5799">5799</a> </td> <td class="c3" > 208 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 505 </td> <td class="s"> key: while(@keys) { </td> </tr> <tr> <td class="h" > <a name="5800">5800</a> </td> <td class="c3" > 1102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1882 </td> <td class="s"> my $k = shift @keys; </td> </tr> <tr> <td class="h" > <a name="5801">5801</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5802">5802</a> </td> <td class="c3" > 1102 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2580 </td> <td class="s"> my $tableEntry = $table->{$k}; </td> </tr> <tr> <td class="h" > <a name="5803">5803</a> </td> <td class="c3" > 1102 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5803-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2296 </td> <td class="s"> if(!defined($tableEntry)) { </td> </tr> <tr> <td class="h" > <a name="5804">5804</a> </td> <td class="c0" > <a href="#5826"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "_emitOpts: bad table entry for keyword '$k'"; </td> </tr> <tr> <td class="h" > <a name="5805">5805</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5806">5806</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5807">5807</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Cheesy ordering logic here -- if the parse table indicates that we have to go after </td> </tr> <tr> <td class="h" > <a name="5808">5808</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## a particular option, walk back from the end until we find one of them or get to the </td> </tr> <tr> <td class="h" > <a name="5809">5809</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## front of the queue. If we find a match, we splice the current one back there and move </td> </tr> <tr> <td class="h" > <a name="5810">5810</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## on to the next key. </td> </tr> <tr> <td class="h" > <a name="5811">5811</a> </td> <td class="c3" > 1102 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5811-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2240 </td> <td class="s"> if($tableEntry->[2]) { </td> </tr> <tr> <td class="h" > <a name="5812">5812</a> </td> <td class="c3" > 24 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 47 </td> <td class="s"> my %h = (map { ($_, 1) } @{$tableEntry->[2]}); # make a hash of later-than keywords, with 1 in each entry </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 24 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 159 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 24 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 64 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5813">5813</a> </td> <td class="c3" > 24 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 99 </td> <td class="s"> for my $i(reverse 0..$#keys) { </td> </tr> <tr> <td class="h" > <a name="5814">5814</a> </td> <td class="c3" > 129 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5814-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 288 </td> <td class="s"> if($h{$keys[$i]}) { </td> </tr> <tr> <td class="h" > <a name="5815">5815</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s"> splice(@keys,$i+1,0,$k); </td> </tr> <tr> <td class="h" > <a name="5816">5816</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s"> next key; </td> </tr> <tr> <td class="h" > <a name="5817">5817</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5818">5818</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5819">5819</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5820">5820</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5821">5821</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Rubber meets the road -- call the corresponding output function </td> </tr> <tr> <td class="h" > <a name="5822">5822</a> </td> <td class="c3" > 1100 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#5822-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 3090 </td> <td class="s"> my $emitter = $tableEntry->[1] || " "; </td> </tr> <tr> <td class="h" > <a name="5823">5823</a> </td> <td class="c3" > 1100 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5823-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#5823-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 2440 </td> <td class="s"> unless(ref $emitter) { </td> </tr> <tr> <td class="h" > <a name="5824">5824</a> </td> <td class="c3" > 610 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1758 </td> <td class="s"> my $o = $_OptionEmitters->{$emitter}; </td> </tr> <tr> <td class="h" > <a name="5825">5825</a> </td> <td class="c3" > 610 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5825-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1522 </td> <td class="s"> unless( ref $o eq 'CODE') { </td> </tr> <tr> <td class="h" > <a name="5826">5826</a> </td> <td class="c0" > <a href="#5846"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "Unknown output type '$emitter' found in option table entry for $k!"; </td> </tr> <tr> <td class="h" > <a name="5827">5827</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5828">5828</a> </td> <td class="c3" > 610 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1115 </td> <td class="s"> $emitter = $o; </td> </tr> <tr> <td class="h" > <a name="5829">5829</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(ref $emitter ne 'CODE') { </td> </tr> <tr> <td class="h" > <a name="5830">5830</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf 'PLEH!'; </td> </tr> <tr> <td class="h" > <a name="5831">5831</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5832">5832</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5833">5833</a> </td> <td class="c3" > 1100 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3698 </td> <td class="s"> $s .= &$emitter($k, $options->{$k}, $options, $this) </td> </tr> <tr> <td class="h" > <a name="5834">5834</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5835">5835</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5836">5836</a> </td> <td class="c3" > 208 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1103 </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="5837">5837</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5838">5838</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5839">5839</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5840">5840</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="5841">5841</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Emitter table folows. Colorspecs are so </td> </tr> <tr> <td class="h" > <a name="5842">5842</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # complicated that they get their own helper routine, </td> </tr> <tr> <td class="h" > <a name="5843">5843</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _emit_colorspec. </td> </tr> <tr> <td class="h" > <a name="5844">5844</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5845">5845</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _emit_colorspec { </td> </tr> <tr> <td class="h" > <a name="5846">5846</a> </td> <td class="c0" > <a href="#5848"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#5846-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> my $v = shift; </td> </tr> <tr> <td class="h" > <a name="5847">5847</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5848">5848</a> </td> <td class="c0" > <a href="#5849"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my @words; </td> </tr> <tr> <td class="h" > <a name="5849">5849</a> </td> <td class="c0" > <a href="#5850"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5849-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless(ref($v)) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5850">5850</a> </td> <td class="c0" > <a href="#5851"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $v =~ s/^\s+//; </td> </tr> <tr> <td class="h" > <a name="5851">5851</a> </td> <td class="c0" > <a href="#5852"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $v =~ s/\s+$//; </td> </tr> <tr> <td class="h" > <a name="5852">5852</a> </td> <td class="c0" > <a href="#5853"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> @words = split /\s+/, $v; </td> </tr> <tr> <td class="h" > <a name="5853">5853</a> </td> <td class="c0" > <a href="#5854"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> } elsif(ref($v) eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="5854">5854</a> </td> <td class="c0" > <a href="#5855"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5854-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(@$v > 1) { </td> </tr> <tr> <td class="h" > <a name="5855">5855</a> </td> <td class="c0" > <a href="#5857"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> @words = @$v; </td> </tr> <tr> <td class="h" > <a name="5856">5856</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5857">5857</a> </td> <td class="c0" > <a href="#5858"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $v->[0] =~ s/^\s+//; </td> </tr> <tr> <td class="h" > <a name="5858">5858</a> </td> <td class="c0" > <a href="#5859"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $v->[0] =~ s/\s+$//; </td> </tr> <tr> <td class="h" > <a name="5859">5859</a> </td> <td class="c0" > <a href="#5862"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> @words = split /\s+/, $v->[0]; </td> </tr> <tr> <td class="h" > <a name="5860">5860</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5861">5861</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="5862">5862</a> </td> <td class="c0" > <a href="#5865"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "colorspec: only scalar and ARRAY values are supported for colors"; </td> </tr> <tr> <td class="h" > <a name="5863">5863</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5864">5864</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5865">5865</a> </td> <td class="c0" > <a href="#5866"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="5866">5866</a> </td> <td class="c0" > <a href="#5868"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5866-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= shift @words if(lc($words[0]) eq 'rgb'); </td> </tr> <tr> <td class="h" > <a name="5867">5867</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5868">5868</a> </td> <td class="c0" > <a href="#5869"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5868-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if( $words[0] =~ s/\"?(\#[0-9a-fA-F]{6})\"?/\"$1\"/ ) { </td> </tr> <tr> <td class="h" > <a name="5869">5869</a> </td> <td class="c0" > <a href="#5870"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5869-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= " rgb " unless($s =~ m/rgb/); </td> </tr> <tr> <td class="h" > <a name="5870">5870</a> </td> <td class="c0" > <a href="#5871"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= " ".join(" ",@words); </td> </tr> <tr> <td class="h" > <a name="5871">5871</a> </td> <td class="c0" > <a href="#5873"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="5872">5872</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5873">5873</a> </td> <td class="c0" > <a href="#5874"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5873-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($PDL::Graphics::Gnuplot::colornames->{lc($words[0])}) { </td> </tr> <tr> <td class="h" > <a name="5874">5874</a> </td> <td class="c0" > <a href="#5875"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5874-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= " rgb " unless($s =~ m/rgb/); </td> </tr> <tr> <td class="h" > <a name="5875">5875</a> </td> <td class="c0" > <a href="#5876"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= " \"$words[0] \" "; </td> </tr> <tr> <td class="h" > <a name="5876">5876</a> </td> <td class="c0" > <a href="#5877"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> shift @words; </td> </tr> <tr> <td class="h" > <a name="5877">5877</a> </td> <td class="c0" > <a href="#5878"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= join(" ",@words)." "; </td> </tr> <tr> <td class="h" > <a name="5878">5878</a> </td> <td class="c0" > <a href="#5880"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="5879">5879</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5880">5880</a> </td> <td class="c0" > <a href="#5881"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#5880-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return join(" ",($s,@words,"")) if $words[0] =~ m/(^[0-9]+$)|(variable)|(palette)/; </td> </tr> <tr> <td class="h" > <a name="5881">5881</a> </td> <td class="c0" > <a href="#5882"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die <<"EOD"; </td> </tr> <tr> <td class="h" > <a name="5882">5882</a> </td> <td class="c0" > <a href="#6923"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> PDL::Graphics::Gnuplot: Unknown color spec '@{[join(" ",@words)]}'. </td> </tr> <tr> <td class="h" > <a name="5883">5883</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Use an integer, an '#RRGGBB' spec, 'variable', 'palette', or a name from </td> </tr> <tr> <td class="h" > <a name="5884">5884</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the list in \@PDL::Graphics::Gnuplot::colornames. </td> </tr> <tr> <td class="h" > <a name="5885">5885</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOD </td> </tr> <tr> <td class="h" > <a name="5886">5886</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5887">5887</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5888">5888</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="5889">5889</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5890">5890</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Emission table </td> </tr> <tr> <td class="h" > <a name="5891">5891</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5892">5892</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $_OptionEmitters describes how to emit stored parameters. Each </td> </tr> <tr> <td class="h" > <a name="5893">5893</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # key is a code for a particular type of output; the value is a subroutine </td> </tr> <tr> <td class="h" > <a name="5894">5894</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # that returns the outputted parameter as a string. </td> </tr> <tr> <td class="h" > <a name="5895">5895</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5896">5896</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Different codes emit whole lines (e.g. for setting plot options) or </td> </tr> <tr> <td class="h" > <a name="5897">5897</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # space-delimited words (e.g. for setting curve options). Curve </td> </tr> <tr> <td class="h" > <a name="5898">5898</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # option emitters have codes that start with 'c'. </td> </tr> <tr> <td class="h" > <a name="5899">5899</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="5900">5900</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Although most of the emitters take just (keyword, value, options-hash), </td> </tr> <tr> <td class="h" > <a name="5901">5901</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # they may take a fourth parameter containing the complete object. </td> </tr> <tr> <td class="h" > <a name="5902">5902</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # That's useful for things like "crange", which needs to know the global </td> </tr> <tr> <td class="h" > <a name="5903">5903</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # options state to know how to emit itself. </td> </tr> <tr> <td class="h" > <a name="5904">5904</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5905">5905</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $_OptionEmitters = { </td> </tr> <tr> <td class="h" > <a name="5906">5906</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### Default output -- a collection of terms with spaces between them as a plot option </td> </tr> <tr> <td class="h" > <a name="5907">5907</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ' ' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5908">5908</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="5909">5909</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> join(" ","set",$k, </td> </tr> <tr> <td class="h" > <a name="5910">5910</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v eq 'ARRAY' ? (grep defined, @$v) : </td> </tr> <tr> <td class="h" > <a name="5911">5911</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v eq 'HASH' ? %$v : $v </td> </tr> <tr> <td class="h" > <a name="5912">5912</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> )."\n"; </td> </tr> <tr> <td class="h" > <a name="5913">5913</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5914">5914</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5915">5915</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### nomulti -- a default style plot option that is ignored in multiplot mode </td> </tr> <tr> <td class="h" > <a name="5916">5916</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'nomulti' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5917">5917</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless((defined($v)) and !($h->{multiplot})); </td> </tr> <tr> <td class="h" > <a name="5918">5918</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> join(" ","set",$k, </td> </tr> <tr> <td class="h" > <a name="5919">5919</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v eq 'ARRAY' ? (grep defined, @$v) : </td> </tr> <tr> <td class="h" > <a name="5920">5920</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v eq 'HASH' ? %$v : $v </td> </tr> <tr> <td class="h" > <a name="5921">5921</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> )."\n"; </td> </tr> <tr> <td class="h" > <a name="5922">5922</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5923">5923</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5924">5924</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### Empty output - return nothing. </td> </tr> <tr> <td class="h" > <a name="5925">5925</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '-' => sub { "" }, </td> </tr> <tr> <td class="h" > <a name="5926">5926</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5927">5927</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A quoted scalar value as a plot option </td> </tr> <tr> <td class="h" > <a name="5928">5928</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'q' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5929">5929</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="5930">5930</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "unset $k\n" unless(length($v)); </td> </tr> <tr> <td class="h" > <a name="5931">5931</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v = quote_escape($v); </td> </tr> <tr> <td class="h" > <a name="5932">5932</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k \"$v\"\n"; </td> </tr> <tr> <td class="h" > <a name="5933">5933</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5934">5934</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5935">5935</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A quoted scalar value as a plot option, not emitted in multiplot mode </td> </tr> <tr> <td class="h" > <a name="5936">5936</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'qnm' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5937">5937</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless((defined($v) and !($h->{multiplot}))); </td> </tr> <tr> <td class="h" > <a name="5938">5938</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "unset $k\n" unless(length($v)); </td> </tr> <tr> <td class="h" > <a name="5939">5939</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v = quote_escape($v); </td> </tr> <tr> <td class="h" > <a name="5940">5940</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k \"$v\"\n"; </td> </tr> <tr> <td class="h" > <a name="5941">5941</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5942">5942</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5943">5943</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A quoted scalar value as a curve option </td> </tr> <tr> <td class="h" > <a name="5944">5944</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cq' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5945">5945</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="5946">5946</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my($vv) = quote_escape($v); </td> </tr> <tr> <td class="h" > <a name="5947">5947</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k \"$vv\" "; </td> </tr> <tr> <td class="h" > <a name="5948">5948</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5949">5949</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5950">5950</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A quoted scalar font value as a curve option. </td> </tr> <tr> <td class="h" > <a name="5951">5951</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### This differs from cq alone in that it parses font size, </td> </tr> <tr> <td class="h" > <a name="5952">5952</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### scaling it for anti-aliasing as necessary. </td> </tr> <tr> <td class="h" > <a name="5953">5953</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### the 'aa' parameter is passed in $h since this is called </td> </tr> <tr> <td class="h" > <a name="5954">5954</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### by the term option emitter in output(). </td> </tr> <tr> <td class="h" > <a name="5955">5955</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cqf' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5956">5956</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="5957">5957</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($h->{aa} && $v =~ m/(.*)\,(.*)/) { </td> </tr> <tr> <td class="h" > <a name="5958">5958</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my ($name,$size) = ($1,$2); </td> </tr> <tr> <td class="h" > <a name="5959">5959</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $size *= $h->{aa}; </td> </tr> <tr> <td class="h" > <a name="5960">5960</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v = "$name,$size"; </td> </tr> <tr> <td class="h" > <a name="5961">5961</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5962">5962</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my($vv) = quote_escape($v); </td> </tr> <tr> <td class="h" > <a name="5963">5963</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k \"$vv\" "; </td> </tr> <tr> <td class="h" > <a name="5964">5964</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5965">5965</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5966">5966</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A value with no associated keyword </td> </tr> <tr> <td class="h" > <a name="5967">5967</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cv' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5968">5968</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $v " if(defined($v)); </td> </tr> <tr> <td class="h" > <a name="5969">5969</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ""; </td> </tr> <tr> <td class="h" > <a name="5970">5970</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5971">5971</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5972">5972</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A nonquoted scalar value as a plot option </td> </tr> <tr> <td class="h" > <a name="5973">5973</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 's' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5974">5974</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="5975">5975</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "unset $k\n" unless(length($v)); </td> </tr> <tr> <td class="h" > <a name="5976">5976</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k" if($v eq ' '); </td> </tr> <tr> <td class="h" > <a name="5977">5977</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k $v\n"; </td> </tr> <tr> <td class="h" > <a name="5978">5978</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5979">5979</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5980">5980</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A nonquoted scalar value as a curve option </td> </tr> <tr> <td class="h" > <a name="5981">5981</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cs' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="5982">5982</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="5983">5983</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k $v "; </td> </tr> <tr> <td class="h" > <a name="5984">5984</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5985">5985</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5986">5986</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A nonquoted antialias-scaled scalar value as a curve option </td> </tr> <tr> <td class="h" > <a name="5987">5987</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'css' => sub { my($k,$v,$h,$this) = @_; </td> </tr> <tr> <td class="h" > <a name="5988">5988</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="5989">5989</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($this->{aa} && $v=~m/^[\+\-0-9,.E]+$/i) { </td> </tr> <tr> <td class="h" > <a name="5990">5990</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v *= $this->{aa}; </td> </tr> <tr> <td class="h" > <a name="5991">5991</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="5992">5992</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k $v "; </td> </tr> <tr> <td class="h" > <a name="5993">5993</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="5994">5994</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5995">5995</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="5996">5996</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### The dashtype curve option </td> </tr> <tr> <td class="h" > <a name="5997">5997</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### Supports an INVALID value for "with" types that have to suppress dt emission. </td> </tr> <tr> <td class="h" > <a name="5998">5998</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### This is because some "withs" (e.g. "lines") must have dt specifiers for the correct behavior, </td> </tr> <tr> <td class="h" > <a name="5999">5999</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### but other "withs" (e.g. "labels") barf if dt is specified. </td> </tr> <tr> <td class="h" > <a name="6000">6000</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'dt' => sub { my($k,$v,$h, $w) = @_; </td> </tr> <tr> <td class="h" > <a name="6001">6001</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless($gp_numversion >= 5.0); </td> </tr> <tr> <td class="h" > <a name="6002">6002</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" if(($v//"") eq 'INVALID'); </td> </tr> <tr> <td class="h" > <a name="6003">6003</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless($v) { </td> </tr> <tr> <td class="h" > <a name="6004">6004</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($w->{options}{terminal} =~ m/dashed/) { </td> </tr> <tr> <td class="h" > <a name="6005">6005</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->{last_dashtype} //= 0; </td> </tr> <tr> <td class="h" > <a name="6006">6006</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " dt ".(++$w->{last_dashtype})." "; </td> </tr> <tr> <td class="h" > <a name="6007">6007</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6008">6008</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " dt solid "; </td> </tr> <tr> <td class="h" > <a name="6009">6009</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6010">6010</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6011">6011</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " dt solid " unless($v); </td> </tr> <tr> <td class="h" > <a name="6012">6012</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " dt (".(join(@$v,",")).") " if(ref($v) eq 'ARRAY'); </td> </tr> <tr> <td class="h" > <a name="6013">6013</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " dt $v " if($v=~ m/\d+/); </td> </tr> <tr> <td class="h" > <a name="6014">6014</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v = quote_escape($v); </td> </tr> <tr> <td class="h" > <a name="6015">6015</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " dt \"$v\" "; </td> </tr> <tr> <td class="h" > <a name="6016">6016</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6017">6017</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6018">6018</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### A curve flag in one word </td> </tr> <tr> <td class="h" > <a name="6019">6019</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cf' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6020">6020</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="6021">6021</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " no$k " unless($v); </td> </tr> <tr> <td class="h" > <a name="6022">6022</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k "; </td> </tr> <tr> <td class="h" > <a name="6023">6023</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6024">6024</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cff'=> sub { my($k, $v, $h) = @_; </td> </tr> <tr> <td class="h" > <a name="6025">6025</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless($v); </td> </tr> <tr> <td class="h" > <a name="6026">6026</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k "; </td> </tr> <tr> <td class="h" > <a name="6027">6027</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6028">6028</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6029">6029</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### A size specification (used in terminal options in the constructor, see $termTab) </td> </tr> <tr> <td class="h" > <a name="6030">6030</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### generally a list with (width, height, [units]) in it. Should have been parsed as an 'l'. </td> </tr> <tr> <td class="h" > <a name="6031">6031</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'csize'=> sub { my($k, $v, $h) = @_; </td> </tr> <tr> <td class="h" > <a name="6032">6032</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $lConv; # unit conversion hash (see below) </td> </tr> <tr> <td class="h" > <a name="6033">6033</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless($v and @$v); </td> </tr> <tr> <td class="h" > <a name="6034">6034</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @v = @$v; </td> </tr> <tr> <td class="h" > <a name="6035">6035</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $conv = 1; </td> </tr> <tr> <td class="h" > <a name="6036">6036</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($h->{__unit__}) { </td> </tr> <tr> <td class="h" > <a name="6037">6037</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "Uh-oh -- csize parser found an error -- table says default units are '$h->{__unit__}' but that's no unit!\n" </td> </tr> <tr> <td class="h" > <a name="6038">6038</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if !$lConv->{$h->{__unit__}}; </td> </tr> <tr> <td class="h" > <a name="6039">6039</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $conv *= $lConv->{$h->{__unit__}}; </td> </tr> <tr> <td class="h" > <a name="6040">6040</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6041">6041</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If there's a unit spec at the end, pop if off and accumulate the conversion factor </td> </tr> <tr> <td class="h" > <a name="6042">6042</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($lConv->{$v[$#v]}) { </td> </tr> <tr> <td class="h" > <a name="6043">6043</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $conv /= $lConv->{ pop @v }; </td> </tr> <tr> <td class="h" > <a name="6044">6044</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6045">6045</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(@v==1) { </td> </tr> <tr> <td class="h" > <a name="6046">6046</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> @v = ($v[0],$v[0]); </td> </tr> <tr> <td class="h" > <a name="6047">6047</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6048">6048</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(@v > 2) { </td> </tr> <tr> <td class="h" > <a name="6049">6049</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "Too many values, or an unrecognized unit, in size spec '".join(",",@$v)."'\n"; </td> </tr> <tr> <td class="h" > <a name="6050">6050</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6051">6051</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Deal with anti-aliasing: oversize the window if aa exists. </td> </tr> <tr> <td class="h" > <a name="6052">6052</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($h->{aa}){ </td> </tr> <tr> <td class="h" > <a name="6053">6053</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $conv *= $h->{aa}; </td> </tr> <tr> <td class="h" > <a name="6054">6054</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6055">6055</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return( " size ".($v[0]*$conv).",".$v[1]*$conv." " ); </td> </tr> <tr> <td class="h" > <a name="6056">6056</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6057">6057</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6058">6058</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6059">6059</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### A color specification as a curve option </td> </tr> <tr> <td class="h" > <a name="6060">6060</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ccolor' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6061">6061</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless($v); </td> </tr> <tr> <td class="h" > <a name="6062">6062</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k "._emit_colorspec($v); </td> </tr> <tr> <td class="h" > <a name="6063">6063</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6064">6064</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6065">6065</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6066">6066</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A boolean value as a plot option </td> </tr> <tr> <td class="h" > <a name="6067">6067</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'b' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6068">6068</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless defined($v); </td> </tr> <tr> <td class="h" > <a name="6069">6069</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $v ? "set $k\n" : "unset $k\n"; </td> </tr> <tr> <td class="h" > <a name="6070">6070</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6071">6071</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6072">6072</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A boolean value as an inline option (e.g. curve, terminal) </td> </tr> <tr> <td class="h" > <a name="6073">6073</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'byn' => sub { my($k,$v,$g) = @_; </td> </tr> <tr> <td class="h" > <a name="6074">6074</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless defined($v); </td> </tr> <tr> <td class="h" > <a name="6075">6075</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $v ? " $k " : " no$k "; </td> </tr> <tr> <td class="h" > <a name="6076">6076</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6077">6077</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6078">6078</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A boolean or 'time' (for <foo>data plot options) </td> </tr> <tr> <td class="h" > <a name="6079">6079</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'bt' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6080">6080</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k\n" unless ($v and $v=~m/^t/i); </td> </tr> <tr> <td class="h" > <a name="6081">6081</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k $v\n";rxt hel </td> </tr> <tr> <td class="h" > <a name="6082">6082</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6083">6083</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6084">6084</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A space-separated collection of terms as a plot option </td> </tr> <tr> <td class="h" > <a name="6085">6085</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'l' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6086">6086</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="6087">6087</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k ".join(" ",@$v)."\n" if ref($v) eq 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6088">6088</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "hash value found for comma-separated list option '$k' -- not allowed" if ref($v) eq 'HASH'; </td> </tr> <tr> <td class="h" > <a name="6089">6089</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $v ? "set $k\n" : "unset $k\n"; </td> </tr> <tr> <td class="h" > <a name="6090">6090</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6091">6091</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6092">6092</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### Special emitter for ticks that can deal with hashes </td> </tr> <tr> <td class="h" > <a name="6093">6093</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'lt' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6094">6094</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="6095">6095</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @l = (); </td> </tr> <tr> <td class="h" > <a name="6096">6096</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @l2= (); </td> </tr> <tr> <td class="h" > <a name="6097">6097</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6098">6098</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $v ? "set $k $v\n" : "unset $k\n" unless ref $v; </td> </tr> <tr> <td class="h" > <a name="6099">6099</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(ref($v) eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="6100">6100</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> @l = @$v; </td> </tr> <tr> <td class="h" > <a name="6101">6101</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(ref($v) ne 'HASH') { </td> </tr> <tr> <td class="h" > <a name="6102">6102</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "<foo>tics spec must be scalar or hash\n"; </td> </tr> <tr> <td class="h" > <a name="6103">6103</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6104">6104</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my %h = %$v; </td> </tr> <tr> <td class="h" > <a name="6105">6105</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, 'axis') if($h{axis}); delete $h{axis}; </td> </tr> <tr> <td class="h" > <a name="6106">6106</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, 'border') if($h{border}); delete $h{border}; </td> </tr> <tr> <td class="h" > <a name="6107">6107</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, $h{mirror}?'mirror':'nomirror') if(defined($h{mirror})); delete $h{mirror}; </td> </tr> <tr> <td class="h" > <a name="6108">6108</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($h{in} && $h{out}) { </td> </tr> <tr> <td class="h" > <a name="6109">6109</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf("<foo>tics: you set both the 'in' and 'out' options. Oops."); </td> </tr> <tr> <td class="h" > <a name="6110">6110</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6111">6111</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, 'in') if delete $h{in}; </td> </tr> <tr> <td class="h" > <a name="6112">6112</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, 'out') if delete $h{out}; </td> </tr> <tr> <td class="h" > <a name="6113">6113</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6114">6114</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless($k =~ m/^m/) { </td> </tr> <tr> <td class="h" > <a name="6115">6115</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, 'scale'); </td> </tr> <tr> <td class="h" > <a name="6116">6116</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( defined( my $v = delete $h{scale} ) ) { </td> </tr> <tr> <td class="h" > <a name="6117">6117</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push @l, ref($v) eq 'ARRAY' ? join(",",@$v) : $v; </td> </tr> <tr> <td class="h" > <a name="6118">6118</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6119">6119</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, 'default'); </td> </tr> <tr> <td class="h" > <a name="6120">6120</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6121">6121</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( defined( my $v = delete $h{rotate} ) ) { </td> </tr> <tr> <td class="h" > <a name="6122">6122</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push @l, $v ? "rotate by $v" : 'norotate'; </td> </tr> <tr> <td class="h" > <a name="6123">6123</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6124">6124</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6125">6125</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( defined( my $v = delete $h{offset} ) ) { </td> </tr> <tr> <td class="h" > <a name="6126">6126</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "<foo>tics option: 'offset' suboption must be an array ref or false" </td> </tr> <tr> <td class="h" > <a name="6127">6127</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if $v and ref($v) ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6128">6128</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push @l, $v ? ("offset", join(",",@$v)) : 'nooffset'; </td> </tr> <tr> <td class="h" > <a name="6129">6129</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6130">6130</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6131">6131</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf("<foo>tics: you set two or more of 'left','right', and 'center'. Oops.") </td> </tr> <tr> <td class="h" > <a name="6132">6132</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( defined($h{left}) + defined($h{right}) + defined($h{center}) > 1 ); </td> </tr> <tr> <td class="h" > <a name="6133">6133</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6134">6134</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l,'left') if delete $h{left}; </td> </tr> <tr> <td class="h" > <a name="6135">6135</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l,'right') if delete $h{right}; </td> </tr> <tr> <td class="h" > <a name="6136">6136</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l,'center') if delete $h{center}; </td> </tr> <tr> <td class="h" > <a name="6137">6137</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6138">6138</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6139">6139</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="6140">6140</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Deal with complex add/labels/locations logic. </td> </tr> <tr> <td class="h" > <a name="6141">6141</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If you specify locations *or* labels then that style gets </td> </tr> <tr> <td class="h" > <a name="6142">6142</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # emitted. if you specify both, then the labels get appended </td> </tr> <tr> <td class="h" > <a name="6143">6143</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # to the end of the plot command as a *separate* "set <foo>tics" </td> </tr> <tr> <td class="h" > <a name="6144">6144</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # gnuplot command with "add" marked. </td> </tr> <tr> <td class="h" > <a name="6145">6145</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6146">6146</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined( my $v = $h{locations} )) { </td> </tr> <tr> <td class="h" > <a name="6147">6147</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "<foo>tics: 'locations' elements must be scalar or array ref" </td> </tr> <tr> <td class="h" > <a name="6148">6148</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref($v) and ref($v) ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6149">6149</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(ref($v) eq 'ARRAY'){ </td> </tr> <tr> <td class="h" > <a name="6150">6150</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push @l, @$v ? join(',', @$v) : 'autofreq'; </td> </tr> <tr> <td class="h" > <a name="6151">6151</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(!ref($v)) { </td> </tr> <tr> <td class="h" > <a name="6152">6152</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push @l, $v || 'autofreq'; </td> </tr> <tr> <td class="h" > <a name="6153">6153</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6154">6154</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Workaround for bug in gnuplot parser (documented in xtics section of gnuplot manual): </td> </tr> <tr> <td class="h" > <a name="6155">6155</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if the first number in the start/incr/end sequence is negative, subtract it from 0 </td> </tr> <tr> <td class="h" > <a name="6156">6156</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # to avoid problems with binary subtraction. </td> </tr> <tr> <td class="h" > <a name="6157">6157</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $l[$#l] =~ s/^\s*\-/0\-/; </td> </tr> <tr> <td class="h" > <a name="6158">6158</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6159">6159</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined( my $v = $h{labels} )) { </td> </tr> <tr> <td class="h" > <a name="6160">6160</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "<foo>tics: 'labels' elements must be array refs containing [label, val, flag]" </td> </tr> <tr> <td class="h" > <a name="6161">6161</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref($v) ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6162">6162</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "<foo>tics: labels list elements must be duals or triples as array refs" </td> </tr> <tr> <td class="h" > <a name="6163">6163</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if grep ref() ne 'ARRAY', @$v; </td> </tr> <tr> <td class="h" > <a name="6164">6164</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $line = "(". </td> </tr> <tr> <td class="h" > <a name="6165">6165</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> join(", ", </td> </tr> <tr> <td class="h" > <a name="6166">6166</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> map sprintf('"%s" %s %s', $_->[0]//"", $_->[1]//0, $_->[2]//""), </td> </tr> <tr> <td class="h" > <a name="6167">6167</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> @$v </td> </tr> <tr> <td class="h" > <a name="6168">6168</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ). </td> </tr> <tr> <td class="h" > <a name="6169">6169</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ")" </td> </tr> <tr> <td class="h" > <a name="6170">6170</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ; </td> </tr> <tr> <td class="h" > <a name="6171">6171</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined($h{locations})) { </td> </tr> <tr> <td class="h" > <a name="6172">6172</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l2, "\nset $k add ",$line); </td> </tr> <tr> <td class="h" > <a name="6173">6173</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6174">6174</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, $line); </td> </tr> <tr> <td class="h" > <a name="6175">6175</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6176">6176</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6177">6177</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> delete $h{locations}; </td> </tr> <tr> <td class="h" > <a name="6178">6178</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> delete $h{labels}; </td> </tr> <tr> <td class="h" > <a name="6179">6179</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6180">6180</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l,'format',"\"".quote_escape($h{format})."\"") if(defined($h{format})); delete $h{format}; </td> </tr> <tr> <td class="h" > <a name="6181">6181</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6182">6182</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( defined( my $v = delete $h{font} ) ) { </td> </tr> <tr> <td class="h" > <a name="6183">6183</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push @l, "font", '"'.join(',', ref($v) eq 'ARRAY' ? @$v : $v).'"'; </td> </tr> <tr> <td class="h" > <a name="6184">6184</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6185">6185</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6186">6186</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l,'rangelimited') if defined(delete $h{rangelimited}); </td> </tr> <tr> <td class="h" > <a name="6187">6187</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6188">6188</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined( my $v = delete $h{textcolor})) { </td> </tr> <tr> <td class="h" > <a name="6189">6189</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l,"textcolor", _emit_colorspec($v)); </td> </tr> <tr> <td class="h" > <a name="6190">6190</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6191">6191</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6192">6192</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push(@l, @l2); </td> </tr> <tr> <td class="h" > <a name="6193">6193</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k ".join(" ",@l)."\n"; </td> </tr> <tr> <td class="h" > <a name="6194">6194</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6195">6195</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6196">6196</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6197">6197</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## one-line list with leading quoted string (e.g. for titles) </td> </tr> <tr> <td class="h" > <a name="6198">6198</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ql' => </td> </tr> <tr> <td class="h" > <a name="6199">6199</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6200">6200</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless defined($v); </td> </tr> <tr> <td class="h" > <a name="6201">6201</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless(ref $v eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="6202">6202</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v = quote_escape($v); </td> </tr> <tr> <td class="h" > <a name="6203">6203</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ( (length($v) eq 0) ? "unset $k\n" : "set $k \"$v\"\n"); </td> </tr> <tr> <td class="h" > <a name="6204">6204</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6205">6205</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $quoted = quote_escape($v->[0]); </td> </tr> <tr> <td class="h" > <a name="6206">6206</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return sprintf('set %s "%s" %s%s',$k,$quoted,join(" ",@{$v}[1..$#$v]),"\n"); </td> </tr> <tr> <td class="h" > <a name="6207">6207</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6208">6208</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6209">6209</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A space-separated collection of terms as a curve option </td> </tr> <tr> <td class="h" > <a name="6210">6210</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cl' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6211">6211</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless defined($v); </td> </tr> <tr> <td class="h" > <a name="6212">6212</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k $v " unless(ref $v eq 'ARRAY'); </td> </tr> <tr> <td class="h" > <a name="6213">6213</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join(" ",("",$k,@$v,"")); </td> </tr> <tr> <td class="h" > <a name="6214">6214</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6215">6215</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6216">6216</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A comma-separated (rather than space-separated) collection of terms </td> </tr> <tr> <td class="h" > <a name="6217">6217</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ',' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6218">6218</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="6219">6219</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "hash value found for comma-separated list option '$k' -- not allowed" </td> </tr> <tr> <td class="h" > <a name="6220">6220</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref $v eq 'HASH'; </td> </tr> <tr> <td class="h" > <a name="6221">6221</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(ref $v eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="6222">6222</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k ".join(",",@$v)."\n"; </td> </tr> <tr> <td class="h" > <a name="6223">6223</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6224">6224</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $v ? "set $k\n" : "unset $k\n"; </td> </tr> <tr> <td class="h" > <a name="6225">6225</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6226">6226</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6227">6227</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6228">6228</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A comma-separated collection of terms as a curve option </td> </tr> <tr> <td class="h" > <a name="6229">6229</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'c,' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6230">6230</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined($v)); </td> </tr> <tr> <td class="h" > <a name="6231">6231</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " ".join(",", ref($v) eq 'ARRAY' ? @$v : $v)." "; </td> </tr> <tr> <td class="h" > <a name="6232">6232</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6233">6233</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6234">6234</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A collection of values, reported one per line </td> </tr> <tr> <td class="h" > <a name="6235">6235</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> '1' => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6236">6236</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined $v); </td> </tr> <tr> <td class="h" > <a name="6237">6237</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "hash value found for one-per-line list option '$k' -- not allowed" </td> </tr> <tr> <td class="h" > <a name="6238">6238</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref $v eq 'HASH'; </td> </tr> <tr> <td class="h" > <a name="6239">6239</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if((ref $v) eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="6240">6240</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join("", map { defined($_) ? "set $k $_\n" : "" } @$v); </td> </tr> <tr> <td class="h" > <a name="6241">6241</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6242">6242</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $v ? "set $k\n" : "unset $k\n"; </td> </tr> <tr> <td class="h" > <a name="6243">6243</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6244">6244</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6245">6245</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6246">6246</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A set of sub-keywords each of which may contain a list of terms </td> </tr> <tr> <td class="h" > <a name="6247">6247</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "H" => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6248">6248</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined $v); </td> </tr> <tr> <td class="h" > <a name="6249">6249</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(ref $v eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="6250">6250</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Note list form doesn't allow unsetting. Such is life - lists are deprecated in most contexts. </td> </tr> <tr> <td class="h" > <a name="6251">6251</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join("", map { defined($_) ? "set $k $_\n" : "" } @$v); </td> </tr> <tr> <td class="h" > <a name="6252">6252</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(ref($v) eq 'HASH') { </td> </tr> <tr> <td class="h" > <a name="6253">6253</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k\n" unless(keys(%$v)); </td> </tr> <tr> <td class="h" > <a name="6254">6254</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join("", map { my $l = ""; </td> </tr> <tr> <td class="h" > <a name="6255">6255</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(defined($v->{$_})) { </td> </tr> <tr> <td class="h" > <a name="6256">6256</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless($v->{$_}) { </td> </tr> <tr> <td class="h" > <a name="6257">6257</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $l = "unset $k $_\n"; </td> </tr> <tr> <td class="h" > <a name="6258">6258</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(ref $v->{$_} eq 'ARRAY') { </td> </tr> <tr> <td class="h" > <a name="6259">6259</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $l = "set $k $_ ".join(" ",@{$v->{$_}})."\n"; </td> </tr> <tr> <td class="h" > <a name="6260">6260</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif(ref $v->{$_} eq 'HASH') { </td> </tr> <tr> <td class="h" > <a name="6261">6261</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Nested hashes not allowed in hash option '$k'"; </td> </tr> <tr> <td class="h" > <a name="6262">6262</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6263">6263</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $l = "set $k $_ $v->{$_}\n"; </td> </tr> <tr> <td class="h" > <a name="6264">6264</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6265">6265</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6266">6266</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $l; </td> </tr> <tr> <td class="h" > <a name="6267">6267</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6268">6268</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sort keys %$v </td> </tr> <tr> <td class="h" > <a name="6269">6269</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="6270">6270</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6271">6271</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "scalar value '$v' not allowed for hash option '$k'"; </td> </tr> <tr> <td class="h" > <a name="6272">6272</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6273">6273</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6274">6274</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6275">6275</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A set of sub-keywords each of which may contain a list of terms, sort-of. </td> </tr> <tr> <td class="h" > <a name="6276">6276</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### This is used for autoscale -- there's no space between keyword and value, and a missing hash causes "unset" to be emitted. </td> </tr> <tr> <td class="h" > <a name="6277">6277</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "H2" => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6278">6278</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "unset $k\n" unless $v; </td> </tr> <tr> <td class="h" > <a name="6279">6279</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join("", map { defined($_) ? "set $k $_\n" : "" } @$v) </td> </tr> <tr> <td class="h" > <a name="6280">6280</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref $v eq 'ARRAY'; # Note list form doesn't allow unsetting. Such is life - lists are deprecated in most contexts. </td> </tr> <tr> <td class="h" > <a name="6281">6281</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "scalar value '$v' not allowed for hash option '$k'" </td> </tr> <tr> <td class="h" > <a name="6282">6282</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref($v) ne 'HASH'; </td> </tr> <tr> <td class="h" > <a name="6283">6283</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k\n" unless(keys(%$v)); </td> </tr> <tr> <td class="h" > <a name="6284">6284</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Nested hashes not allowed in hash option '$k'" if grep ref() eq 'HASH', values %$v; </td> </tr> <tr> <td class="h" > <a name="6285">6285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join("", map </td> </tr> <tr> <td class="h" > <a name="6286">6286</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !$v->{$_} ? "unset $k $_\n" : </td> </tr> <tr> <td class="h" > <a name="6287">6287</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v->{$_} ne 'ARRAY' ? "set $k $_$v->{$_}\n" : </td> </tr> <tr> <td class="h" > <a name="6288">6288</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "set $k $_ ".join(" ",@{$v->{$_}})."\n", </td> </tr> <tr> <td class="h" > <a name="6289">6289</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> grep defined($v->{$_}), </td> </tr> <tr> <td class="h" > <a name="6290">6290</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sort keys %$v </td> </tr> <tr> <td class="h" > <a name="6291">6291</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="6292">6292</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6293">6293</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6294">6294</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### Terminal options hash </td> </tr> <tr> <td class="h" > <a name="6295">6295</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "HNM" => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6296">6296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless((defined $v) and !($h->{multiplot})); </td> </tr> <tr> <td class="h" > <a name="6297">6297</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "array value found for hash option '$k' -- not allowed" </td> </tr> <tr> <td class="h" > <a name="6298">6298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref $v eq 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6299">6299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "scalar value '$v' not allowed for hash option '$k'" </td> </tr> <tr> <td class="h" > <a name="6300">6300</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref($v) ne 'HASH'; </td> </tr> <tr> <td class="h" > <a name="6301">6301</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k\n" unless(keys(%$v)); </td> </tr> <tr> <td class="h" > <a name="6302">6302</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "Nested hashes not allowed in hash option '$k'" if grep ref() eq 'HASH', values %$v; </td> </tr> <tr> <td class="h" > <a name="6303">6303</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join("", map </td> </tr> <tr> <td class="h" > <a name="6304">6304</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !$v->{$_} ? "unset $k $_\n" : </td> </tr> <tr> <td class="h" > <a name="6305">6305</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v->{$_} ne 'ARRAY' ? "set $k $_ $v->{$_}\n" : </td> </tr> <tr> <td class="h" > <a name="6306">6306</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "set $k $_ ".join(" ",@{$v->{$_}})."\n", </td> </tr> <tr> <td class="h" > <a name="6307">6307</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> grep defined($v->{$_}), </td> </tr> <tr> <td class="h" > <a name="6308">6308</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sort keys %$v </td> </tr> <tr> <td class="h" > <a name="6309">6309</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="6310">6310</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6311">6311</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6312">6312</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A collection of numbered specifiers (e.g. "arrow"), each with a collection of terms </td> </tr> <tr> <td class="h" > <a name="6313">6313</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "N" => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6314">6314</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined $v); </td> </tr> <tr> <td class="h" > <a name="6315">6315</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "non-array value '$v' found for numeric-indexed option '$k' -- not allowed" </td> </tr> <tr> <td class="h" > <a name="6316">6316</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref $v ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6317">6317</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join "", map </td> </tr> <tr> <td class="h" > <a name="6318">6318</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !defined($v->[$_]) ? "unset $k $_\n" : </td> </tr> <tr> <td class="h" > <a name="6319">6319</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "set $k $_ " . </td> </tr> <tr> <td class="h" > <a name="6320">6320</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> join(" ", </td> </tr> <tr> <td class="h" > <a name="6321">6321</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v->[$_] eq 'ARRAY' ? @{$v->[$_]} : </td> </tr> <tr> <td class="h" > <a name="6322">6322</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v->[$_] eq 'HASH' ? %{$v->[$_]} : $v->[$_] </td> </tr> <tr> <td class="h" > <a name="6323">6323</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) . </td> </tr> <tr> <td class="h" > <a name="6324">6324</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "\n", </td> </tr> <tr> <td class="h" > <a name="6325">6325</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 1..$#$v; </td> </tr> <tr> <td class="h" > <a name="6326">6326</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6327">6327</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6328">6328</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A collection of numbered specifiers for "object" types - requires a special case for </td> </tr> <tr> <td class="h" > <a name="6329">6329</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### "set object polygon" </td> </tr> <tr> <td class="h" > <a name="6330">6330</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "NO" => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6331">6331</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined $v); </td> </tr> <tr> <td class="h" > <a name="6332">6332</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "non-array value '$v' found for numeric-indexed option '$k' -- not allowed" </td> </tr> <tr> <td class="h" > <a name="6333">6333</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref $v ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6334">6334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $s = join "", map </td> </tr> <tr> <td class="h" > <a name="6335">6335</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !defined($v->[$_]) ? "unset $k $_\n" : </td> </tr> <tr> <td class="h" > <a name="6336">6336</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "set $k $_ " . </td> </tr> <tr> <td class="h" > <a name="6337">6337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> join(" ", </td> </tr> <tr> <td class="h" > <a name="6338">6338</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v->[$_] eq 'ARRAY' ? @{$v->[$_]} : </td> </tr> <tr> <td class="h" > <a name="6339">6339</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v->[$_] eq 'HASH' ? %{$v->[$_]} : $v->[$_] </td> </tr> <tr> <td class="h" > <a name="6340">6340</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) . </td> </tr> <tr> <td class="h" > <a name="6341">6341</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "\n", </td> </tr> <tr> <td class="h" > <a name="6342">6342</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 1..$#$v; </td> </tr> <tr> <td class="h" > <a name="6343">6343</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #Split polygon lines after the polygon spec - yuck. </td> </tr> <tr> <td class="h" > <a name="6344">6344</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @s = split ("\n",$s); </td> </tr> <tr> <td class="h" > <a name="6345">6345</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $i(0..$#s){ </td> </tr> <tr> <td class="h" > <a name="6346">6346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($s[$i] =~ s/((set +\w+ +\d+) +p(o(l(y(g(o(n)?)?)?)?)?)? +from +-?\d+(\.\d+)?([eE]?\-?\d+)?\,-?\d+(\.\d+)?([eE]?\-?\d+)?( +to +-?\d+(\.\d+)?([eE]?\-?\d+)?\,-?\d+(\.\d+)?([eE]?\-?\d+)?)+ +)//) { </td> </tr> <tr> <td class="h" > <a name="6347">6347</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s[$i] = $1."\n".$2." ".$s[$i]; </td> </tr> <tr> <td class="h" > <a name="6348">6348</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6349">6349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6350">6350</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join("\n",@s,""); </td> </tr> <tr> <td class="h" > <a name="6351">6351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6352">6352</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6353">6353</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### A collection of numbered specifiers, the first word of which is quoted (for labels). </td> </tr> <tr> <td class="h" > <a name="6354">6354</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "NL" => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6355">6355</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined $v); </td> </tr> <tr> <td class="h" > <a name="6356">6356</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "non-array value '$v' found for numeric-indexed option '$k' -- not allowed" </td> </tr> <tr> <td class="h" > <a name="6357">6357</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ref $v ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6358">6358</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return join "", map </td> </tr> <tr> <td class="h" > <a name="6359">6359</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> !defined($v->[$_]) ? "unset $k $_\n" : </td> </tr> <tr> <td class="h" > <a name="6360">6360</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "set $k ".($_+1)." " . </td> </tr> <tr> <td class="h" > <a name="6361">6361</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> join(" ", </td> </tr> <tr> <td class="h" > <a name="6362">6362</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v->[$_] eq 'ARRAY' ? ( </td> </tr> <tr> <td class="h" > <a name="6363">6363</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> map ref($_) eq 'ARRAY' ? join(",",@$_) : $_, # Nested arrays get connected with ',' </td> </tr> <tr> <td class="h" > <a name="6364">6364</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v->[$_][0] !~ m/^\".*\"$/ # unless already quoted </td> </tr> <tr> <td class="h" > <a name="6365">6365</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ? "\"".quote_escape($v->[$_][0])."\"" : # quote the first element </td> </tr> <tr> <td class="h" > <a name="6366">6366</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v->[$_][0], </td> </tr> <tr> <td class="h" > <a name="6367">6367</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> @{$v->[$_]}[1..$#{$v->[$_]}] </td> </tr> <tr> <td class="h" > <a name="6368">6368</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) : </td> </tr> <tr> <td class="h" > <a name="6369">6369</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ref $v->[$_] eq 'HASH' ? %{$v->[$_]} : $v->[$_] </td> </tr> <tr> <td class="h" > <a name="6370">6370</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) . </td> </tr> <tr> <td class="h" > <a name="6371">6371</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "\n", </td> </tr> <tr> <td class="h" > <a name="6372">6372</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 0..$#$v; </td> </tr> <tr> <td class="h" > <a name="6373">6373</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6374">6374</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6375">6375</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### Ranges can either be given as a list, the first two elements </td> </tr> <tr> <td class="h" > <a name="6376">6376</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### of which are the range and the rest of which are options, or </td> </tr> <tr> <td class="h" > <a name="6377">6377</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### as a list, the first element of which is a gnuplot range </td> </tr> <tr> <td class="h" > <a name="6378">6378</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### specifier and the rest of which are options, or as a string </td> </tr> <tr> <td class="h" > <a name="6379">6379</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### that combines everything. </td> </tr> <tr> <td class="h" > <a name="6380">6380</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### </td> </tr> <tr> <td class="h" > <a name="6381">6381</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### The job is complicated by the fact that the 'restore' keyword </td> </tr> <tr> <td class="h" > <a name="6382">6382</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### can replace the normal range specifier. </td> </tr> <tr> <td class="h" > <a name="6383">6383</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### </td> </tr> <tr> <td class="h" > <a name="6384">6384</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### Note: we don't try to do a perfect job of parsing, only to </td> </tr> <tr> <td class="h" > <a name="6385">6385</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### decide which parse fixing-up style is needed to send </td> </tr> <tr> <td class="h" > <a name="6386">6386</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### something reasonable to gnuplot in the correct case. Gnuplot </td> </tr> <tr> <td class="h" > <a name="6387">6387</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #### is expected to throw an error if something is broken. </td> </tr> <tr> <td class="h" > <a name="6388">6388</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6389">6389</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "range" => sub { my($k,$v,$h) = @_; </td> </tr> <tr> <td class="h" > <a name="6390">6390</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless(defined $v); </td> </tr> <tr> <td class="h" > <a name="6391">6391</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6392">6392</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # scalar -- treat it as a string containing the whole command. </td> </tr> <tr> <td class="h" > <a name="6393">6393</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k $v\n" if(ref $v ne 'ARRAY'); </td> </tr> <tr> <td class="h" > <a name="6394">6394</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6395">6395</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6396">6396</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> #looks like 'set <foo>range restore' (only way 'r' can be the first char) </td> </tr> <tr> <td class="h" > <a name="6397">6397</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k ".join(" ",@$v)."\n" if ($v->[0]//'') =~ m/^\s*r/i; </td> </tr> <tr> <td class="h" > <a name="6398">6398</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6399">6399</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6400">6400</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # first element is an empty range specifier - emit. </td> </tr> <tr> <td class="h" > <a name="6401">6401</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k ".join(" ",@$v)."\n" if ($v->[0]//'') =~ m/\s*\[\s*\]/; </td> </tr> <tr> <td class="h" > <a name="6402">6402</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6403">6403</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $c = substr($k,0,1); </td> </tr> <tr> <td class="h" > <a name="6404">6404</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $tfmt = ( $h->{$c."data"} // "" ) =~ m/time/; </td> </tr> <tr> <td class="h" > <a name="6405">6405</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6406">6406</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # first element has a nonempty range specifier (naked or not). </td> </tr> <tr> <td class="h" > <a name="6407">6407</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( ($v->[0] // '') =~ m/\:/) { </td> </tr> <tr> <td class="h" > <a name="6408">6408</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v->[0]=~ s/^\s*((.*[^\s])?)\s*$/$1/; # trim leading and trailing whitespace if present </td> </tr> <tr> <td class="h" > <a name="6409">6409</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6410">6410</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unless($v->[0] =~ m/^\[/) { </td> </tr> <tr> <td class="h" > <a name="6411">6411</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the first char was not a '['; assume it is a naked range and patch accordingly. </td> </tr> <tr> <td class="h" > <a name="6412">6412</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v->[0] = "[$v->[0]]"; </td> </tr> <tr> <td class="h" > <a name="6413">6413</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6414">6414</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6415">6415</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($tfmt) { </td> </tr> <tr> <td class="h" > <a name="6416">6416</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Make sure we have quotes as necessary </td> </tr> <tr> <td class="h" > <a name="6417">6417</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v->[0] =~ s/\[([^\"\:\*]+)\:/\[\"$1\"\:/; </td> </tr> <tr> <td class="h" > <a name="6418">6418</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $v->[0] =~ s/\:([^\"\:\*]+)\]/\:\"$1\"\]/; </td> </tr> <tr> <td class="h" > <a name="6419">6419</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6420">6420</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $s = join(" ",@$v); </td> </tr> <tr> <td class="h" > <a name="6421">6421</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s =~ s/\[\:/\[*\:/; </td> </tr> <tr> <td class="h" > <a name="6422">6422</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s =~ s/\:\]/\:*\]/; </td> </tr> <tr> <td class="h" > <a name="6423">6423</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6424">6424</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "set $k $s\n"; </td> </tr> <tr> <td class="h" > <a name="6425">6425</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6426">6426</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If we got here, the first element has no ':'. Treat the first two elements as numbers and make a range </td> </tr> <tr> <td class="h" > <a name="6427">6427</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # specifier out of 'em, then emit. </td> </tr> <tr> <td class="h" > <a name="6428">6428</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Here's a little fillip: gnuplot requires quotes around time ranges </td> </tr> <tr> <td class="h" > <a name="6429">6429</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if the corresponding axes are time data. Handle that bizarre case. </td> </tr> <tr> <td class="h" > <a name="6430">6430</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( ($h->{$c."data"} // "") =~ m/time/ ) { </td> </tr> <tr> <td class="h" > <a name="6431">6431</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return sprintf("set %s [%s:%s]\n",$k, ((defined $v->[0])?"\"$v->[0]\"":"*"), ((defined $v->[1])?"\"$v->[1]\"":"*")); </td> </tr> <tr> <td class="h" > <a name="6432">6432</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6433">6433</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6434">6434</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return sprintf("set %s [%s:%s] %s\n", $k, ((defined $v->[0])?$v->[0]:"*"), ((defined $v->[1])?$v->[1]:"*"), join(" ",@{$v}[2..$#$v])); </td> </tr> <tr> <td class="h" > <a name="6435">6435</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6436">6436</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6437">6437</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "crange" => sub { my($k,$v,$h, $this) = @_; </td> </tr> <tr> <td class="h" > <a name="6438">6438</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "" unless defined $v; </td> </tr> <tr> <td class="h" > <a name="6439">6439</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return "$v" if ref $v ne 'ARRAY'; </td> </tr> <tr> <td class="h" > <a name="6440">6440</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $of = 946684800.0; </td> </tr> <tr> <td class="h" > <a name="6441">6441</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Here's a little fillip: gnuplot requires quotes around time ranges </td> </tr> <tr> <td class="h" > <a name="6442">6442</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if the corresponding axes are time data. Handle that bizarre case. </td> </tr> <tr> <td class="h" > <a name="6443">6443</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $c = substr($k,0,1); </td> </tr> <tr> <td class="h" > <a name="6444">6444</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6445">6445</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if( ($this and $this->{options} and $this->{options}{$c."data"} // "") =~ m/time/ ) { </td> </tr> <tr> <td class="h" > <a name="6446">6446</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp "WARNING: gnuplot-4.6.1 date range bug triggered. Check the date scale.\n"; </td> </tr> <tr> <td class="h" > <a name="6447">6447</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return sprintf(" [%s:%s] ",((defined $v->[0])?"\"$v->[0]\"":""), ((defined $v->[1])?"\"$v->[1]\"":"")); </td> </tr> <tr> <td class="h" > <a name="6448">6448</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6449">6449</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return sprintf(" [%s:%s] ",((defined $v->[0])?$v->[0]:""), ((defined $v->[1])?$v->[1]:"")); </td> </tr> <tr> <td class="h" > <a name="6450">6450</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6451">6451</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6452">6452</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="6453">6453</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6454">6454</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="6455">6455</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # termTab - list of supported terminals and their arguments </td> </tr> <tr> <td class="h" > <a name="6456">6456</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Each entry is a hash ref containing: </td> </tr> <tr> <td class="h" > <a name="6457">6457</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # opt - specification hash for the options for this terminal </td> </tr> <tr> <td class="h" > <a name="6458">6458</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # unit - native unit in which size is specified for this terminal </td> </tr> <tr> <td class="h" > <a name="6459">6459</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # desc - a one-line description of the terminal </td> </tr> <tr> <td class="h" > <a name="6460">6460</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # default_output - an optional format string with the name of the default output plot for that device. </td> </tr> <tr> <td class="h" > <a name="6461">6461</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="6462">6462</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Since there are so many terminal types, with so many slightly </td> </tr> <tr> <td class="h" > <a name="6463">6463</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # different syntaxes, we store them in shorthand here. The </td> </tr> <tr> <td class="h" > <a name="6464">6464</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $termTab_types table contains commonly used parameter keywords, </td> </tr> <tr> <td class="h" > <a name="6465">6465</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # together with partial hash parser table entries. The </td> </tr> <tr> <td class="h" > <a name="6466">6466</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # actual terminal descriptions then refer to those keywords </td> </tr> <tr> <td class="h" > <a name="6467">6467</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # wherever possible rather than repeating the whole definition. </td> </tr> <tr> <td class="h" > <a name="6468">6468</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="6469">6469</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # The default_output is there because some gnuplot devices have sensible default outputs, while others </td> </tr> <tr> <td class="h" > <a name="6470">6470</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # do not. For example, "wxt"'s default is to put stuff in a window, but "png"'s default is to </td> </tr> <tr> <td class="h" > <a name="6471">6471</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # send the png file to stdout, which makes no sense. In cases where there is no sensible default built in to gnuplot, </td> </tr> <tr> <td class="h" > <a name="6472">6472</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we provide one. </td> </tr> <tr> <td class="h" > <a name="6473">6473</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="6474">6474</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6475">6475</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $emit_enh = sub { my ($k,$v,$h) = @_; return " ".($v?"":"no")."enhanced "; }; </td> </tr> <tr> <td class="h" > <a name="6476">6476</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6477">6477</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $lConv = { </td> </tr> <tr> <td class="h" > <a name="6478">6478</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> inch => 1, </td> </tr> <tr> <td class="h" > <a name="6479">6479</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> inc => 1, </td> </tr> <tr> <td class="h" > <a name="6480">6480</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> in => 1, </td> </tr> <tr> <td class="h" > <a name="6481">6481</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> i => 1, </td> </tr> <tr> <td class="h" > <a name="6482">6482</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> char => 6, </td> </tr> <tr> <td class="h" > <a name="6483">6483</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> cha => 6, </td> </tr> <tr> <td class="h" > <a name="6484">6484</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ch => 6, </td> </tr> <tr> <td class="h" > <a name="6485">6485</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> c => 6, </td> </tr> <tr> <td class="h" > <a name="6486">6486</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pt => 72, </td> </tr> <tr> <td class="h" > <a name="6487">6487</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> points=> 72, </td> </tr> <tr> <td class="h" > <a name="6488">6488</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> point => 72, </td> </tr> <tr> <td class="h" > <a name="6489">6489</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> poin => 72, </td> </tr> <tr> <td class="h" > <a name="6490">6490</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> poi => 72, </td> </tr> <tr> <td class="h" > <a name="6491">6491</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> po => 72, </td> </tr> <tr> <td class="h" > <a name="6492">6492</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> px => 100, </td> </tr> <tr> <td class="h" > <a name="6493">6493</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pixels=> 100, </td> </tr> <tr> <td class="h" > <a name="6494">6494</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pixel => 100, </td> </tr> <tr> <td class="h" > <a name="6495">6495</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pixe => 100, </td> </tr> <tr> <td class="h" > <a name="6496">6496</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pix => 100, </td> </tr> <tr> <td class="h" > <a name="6497">6497</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> pi => 100, </td> </tr> <tr> <td class="h" > <a name="6498">6498</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> p => 100, </td> </tr> <tr> <td class="h" > <a name="6499">6499</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6500">6500</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> mm => 25.4, </td> </tr> <tr> <td class="h" > <a name="6501">6501</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> cm => 2.54 </td> </tr> <tr> <td class="h" > <a name="6502">6502</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="6503">6503</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6504">6504</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # These are keyed descriptors for options that are used in at least two devices. They are invoked by name in the </td> </tr> <tr> <td class="h" > <a name="6505">6505</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $termTab_source table below, which describes all the known gnuplot device specification options. </td> </tr> <tr> <td class="h" > <a name="6506">6506</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $termTab_types = { </td> </tr> <tr> <td class="h" > <a name="6507">6507</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> aa => ['n',sub{''}, "Anti-aliasing factor"], # implemented in output(), plot(), close(), and DESTROY(). </td> </tr> <tr> <td class="h" > <a name="6508">6508</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> output => ['s','q', "File name for output"], # autocopied to a plot option when present for a device </td> </tr> <tr> <td class="h" > <a name="6509">6509</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> output_ => ['s','cv', "Window number for persistent windows"], # trailing '_' prevents autocopy to a plot option </td> </tr> <tr> <td class="h" > <a name="6510">6510</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> title => ['s','cq', "Window title"], </td> </tr> <tr> <td class="h" > <a name="6511">6511</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> size => ['ln','csize', "Window size (default unit is %u)"], </td> </tr> <tr> <td class="h" > <a name="6512">6512</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> font => ['s','cqf', "Font to use ('<fontname>,<size>')"], </td> </tr> <tr> <td class="h" > <a name="6513">6513</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fontsize => ['s','css', "Font size (points)"], # use for devices that use no keyword for font size </td> </tr> <tr> <td class="h" > <a name="6514">6514</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> enhanced => ['b','cf', "Enable or disable gnuplot enhanced text escapes for markup"], </td> </tr> <tr> <td class="h" > <a name="6515">6515</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> color => ['b','cff', "Generate a color plot (see 'monochrome') if true"], </td> </tr> <tr> <td class="h" > <a name="6516">6516</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> monochrome => ['b','cff', "Generate a B/W plot (see 'color') if true"], </td> </tr> <tr> <td class="h" > <a name="6517">6517</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> solid => ['b','cff', "Plot only solid lines (see 'dashed') if true"], </td> </tr> <tr> <td class="h" > <a name="6518">6518</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dashed => ['b','cff', "Plot dashed lines (see 'solid') if true"], </td> </tr> <tr> <td class="h" > <a name="6519">6519</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> rotate => ['b','cf', "Enable or disable true rotated text (90 degrees)"], </td> </tr> <tr> <td class="h" > <a name="6520">6520</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> linewidth => ['s','css', "Multiplier on line width (typ. default 1 pt)"], </td> </tr> <tr> <td class="h" > <a name="6521">6521</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dashlength => ['s','cs', "Multiplier on dash length for dashed plots"], </td> </tr> <tr> <td class="h" > <a name="6522">6522</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> standalone => ['b','cff', "Generate postscript that can render alone (see 'input')"], # for LaTeX devices </td> </tr> <tr> <td class="h" > <a name="6523">6523</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> input => ['b','cff', "Generate postscript to be combined with LaTeX output"], # for LaTeX devices </td> </tr> <tr> <td class="h" > <a name="6524">6524</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> level1 => ['b','cff', "Generate Level 1 Postscript (see 'leveldefault')"], # for PostScript devices </td> </tr> <tr> <td class="h" > <a name="6525">6525</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> leveldefault=>['b','cff', "Generate full-featured Postscript (see 'level1')"], # for PostScript devices </td> </tr> <tr> <td class="h" > <a name="6526">6526</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> rounded => ['b','cff', "Generate rounded ends on lines (see 'butt')"], </td> </tr> <tr> <td class="h" > <a name="6527">6527</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> butt => ['b','cff', "Generate butt-ends on lines (see 'rounded')"], </td> </tr> <tr> <td class="h" > <a name="6528">6528</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> clip => ['b','cf', "Clip output to bounding box (or not)"], # for PostScript devices </td> </tr> <tr> <td class="h" > <a name="6529">6529</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> landscape => ['b','cff', "Set landscape orientation (see 'portrait')"], </td> </tr> <tr> <td class="h" > <a name="6530">6530</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> portrait => ['b','cff', "Set portrait orientation (see 'landscape')"], </td> </tr> <tr> <td class="h" > <a name="6531">6531</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> tiny => ['b','cff', "Set tiny preset plot size (see also 'size')"], </td> </tr> <tr> <td class="h" > <a name="6532">6532</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> small => ['b','cff', "Set small preset plot size (see also 'size')"], </td> </tr> <tr> <td class="h" > <a name="6533">6533</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> medium => ['b','cff', "Set medium preset plot size (see also 'size')"], </td> </tr> <tr> <td class="h" > <a name="6534">6534</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> big => ['b','cff', "Set big preset plot size (see also 'size')"], </td> </tr> <tr> <td class="h" > <a name="6535">6535</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> large => ['b','cff', "Set large preset plot size (see also 'size')"], </td> </tr> <tr> <td class="h" > <a name="6536">6536</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> giant => ['b','cff', "Set giant preset plot size (see also 'size')"], </td> </tr> <tr> <td class="h" > <a name="6537">6537</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> transparent=> ['b','cf', "Enable or disable transparency for the background"], </td> </tr> <tr> <td class="h" > <a name="6538">6538</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> background => ['s','cv', "Background color in xRRGGBB format ('x' literal)"], </td> </tr> <tr> <td class="h" > <a name="6539">6539</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> interlace => ['s','cf', "Enable or disable interlaced encoding of image"], # JPEG and PNG </td> </tr> <tr> <td class="h" > <a name="6540">6540</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> crop => ['b','cf', "Enable or disable autocropping to first drawn pixel"], </td> </tr> <tr> <td class="h" > <a name="6541">6541</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> oldstyle => ['b','cff', "Force old-style text spacing (deprecated)"], </td> </tr> <tr> <td class="h" > <a name="6542">6542</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> newstyle => ['b','cff', "Force new-style text spacing (default; see 'oldstyle')"], </td> </tr> <tr> <td class="h" > <a name="6543">6543</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> auxfile => ['b','cf', "Generate (or not) an auxiliary .aux file for LaTeX"], </td> </tr> <tr> <td class="h" > <a name="6544">6544</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> persist => ['b','cf', 'enable (or disable) persistence after plotting is done'], </td> </tr> <tr> <td class="h" > <a name="6545">6545</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> raise => ['b','cf', 'enable (or disable) raising the display window to the top'], </td> </tr> <tr> <td class="h" > <a name="6546">6546</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="6547">6547</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6548">6548</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This table includes all terminals named in the gnuplot 4.4 documentation. Unsupported terminals have </td> </tr> <tr> <td class="h" > <a name="6549">6549</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # only a description string; supported terminals get a hash that contains: </td> </tr> <tr> <td class="h" > <a name="6550">6550</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - unit (default size unit for the terminal) </td> </tr> <tr> <td class="h" > <a name="6551">6551</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - desc (description string) </td> </tr> <tr> <td class="h" > <a name="6552">6552</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - opt (array ref containing option descriptors in order). </td> </tr> <tr> <td class="h" > <a name="6553">6553</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - default_output (optional -- if present, contains a printf format string containing the default output name) </td> </tr> <tr> <td class="h" > <a name="6554">6554</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Each option descriptor is one of: </td> </tr> <tr> <td class="h" > <a name="6555">6555</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * a string indexing the descriptor in $termTab_types, above, or </td> </tr> <tr> <td class="h" > <a name="6556">6556</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # * an array ref containing: </td> </tr> <tr> <td class="h" > <a name="6557">6557</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # -name </td> </tr> <tr> <td class="h" > <a name="6558">6558</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # -input parser (as for $pOptionsTable) </td> </tr> <tr> <td class="h" > <a name="6559">6559</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # -output parser (as for $pOptionsTable) </td> </tr> <tr> <td class="h" > <a name="6560">6560</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # -description string </td> </tr> <tr> <td class="h" > <a name="6561">6561</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="6562">6562</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # To enable anti-aliasing on a given terminal: </td> </tr> <tr> <td class="h" > <a name="6563">6563</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - make sure that the "standard" 'aa' option is one of the options it takes </td> </tr> <tr> <td class="h" > <a name="6564">6564</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - make sure that the 'font' or 'fontsize' option scales with aa (the 'cqf' option type does this) </td> </tr> <tr> <td class="h" > <a name="6565">6565</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # - set the "image_format" key in the terminal description hash (see 'pngcairo' as an example) </td> </tr> <tr> <td class="h" > <a name="6566">6566</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (the image_format must be one of the formats recognized by PDL::IO::Pic) </td> </tr> <tr> <td class="h" > <a name="6567">6567</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="6568">6568</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6569">6569</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $termTabSource = { </td> </tr> <tr> <td class="h" > <a name="6570">6570</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'aed767' => "AED graphics terminal [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6571">6571</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'aifm' => "Adobe Illustrator [NS: obsolete (use pdf)]", </td> </tr> <tr> <td class="h" > <a name="6572">6572</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'amiga' => "Amiga terminal driver [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6573">6573</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'apollo' => "Apollo terminal driver [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6574">6574</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'aqua' => { unit=>'pt', desc=> 'Aqua terminal program on MacOS X (MacOS default device)', int=>1, ok=>1, disp=>1, </td> </tr> <tr> <td class="h" > <a name="6575">6575</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/ output_ title size font enhanced / ]}, </td> </tr> <tr> <td class="h" > <a name="6576">6576</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'be' => "BeOS/X11 (Ah, Be, how we miss thee) [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6577">6577</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cairolatex'=> { unit=>'in', desc=>'Cairo support for .eps or .pdf output with LaTeX text rendering', </td> </tr> <tr> <td class="h" > <a name="6578">6578</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=> [ </td> </tr> <tr> <td class="h" > <a name="6579">6579</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['mode', 's', 'cv', 'terminal mode: set to "eps" or "pdf"'], </td> </tr> <tr> <td class="h" > <a name="6580">6580</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['textmode', 's', 'cv', 'text mode: set to "black" or "color"'], </td> </tr> <tr> <td class="h" > <a name="6581">6581</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['header', 's', sub { $_[1] ? " header '$_[1]' " : " noheader " }, </td> </tr> <tr> <td class="h" > <a name="6582">6582</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "LaTeX source for header text" </td> </tr> <tr> <td class="h" > <a name="6583">6583</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ], </td> </tr> <tr> <td class="h" > <a name="6584">6584</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "color", </td> </tr> <tr> <td class="h" > <a name="6585">6585</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "monochrome", </td> </tr> <tr> <td class="h" > <a name="6586">6586</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "transparent", </td> </tr> <tr> <td class="h" > <a name="6587">6587</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['crop', 'b', 'byn', "Set TRUE to crop output", ], </td> </tr> <tr> <td class="h" > <a name="6588">6588</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "background", </td> </tr> <tr> <td class="h" > <a name="6589">6589</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['font', 's', 'cq','Font ("<fontname>,<size>") - NOT system fonts - see manual for list'], </td> </tr> <tr> <td class="h" > <a name="6590">6590</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['scale', 'n', 'cs','Font scale beyond the size in the font option'], </td> </tr> <tr> <td class="h" > <a name="6591">6591</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['linewidth', 'n', 'cs','Line width in points'], </td> </tr> <tr> <td class="h" > <a name="6592">6592</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['endstyle', 's', 'cv','Line end style (set to "rounded", "butt", or "square")'], </td> </tr> <tr> <td class="h" > <a name="6593">6593</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'size' </td> </tr> <tr> <td class="h" > <a name="6594">6594</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ], </td> </tr> <tr> <td class="h" > <a name="6595">6595</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d-cairolatex.eps'}, </td> </tr> <tr> <td class="h" > <a name="6596">6596</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'canvas' => { unit=>'pt', desc=> "Output Javascript Canvas rendering code.", </td> </tr> <tr> <td class="h" > <a name="6597">6597</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ 'size', </td> </tr> <tr> <td class="h" > <a name="6598">6598</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # custom line shields user from "fsize/fontsize" </td> </tr> <tr> <td class="h" > <a name="6599">6599</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['fontsize', 's', sub { " fsize $_[1] "}, "Font size (points)"], </td> </tr> <tr> <td class="h" > <a name="6600">6600</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'enhanced', </td> </tr> <tr> <td class="h" > <a name="6601">6601</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'linewidth', </td> </tr> <tr> <td class="h" > <a name="6602">6602</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['standalone', 'b','cff', "Generate a standalone html page (default) (see 'name')"], </td> </tr> <tr> <td class="h" > <a name="6603">6603</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['mousing', 'b','cff', "Make a mouse-tracking box underneath the plot"], </td> </tr> <tr> <td class="h" > <a name="6604">6604</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['name', 's','cq', "Generate a javascript subroutine named 'name'"], </td> </tr> <tr> <td class="h" > <a name="6605">6605</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['jsdir', 's','cq', "URL of directory where javascripts are found"], </td> </tr> <tr> <td class="h" > <a name="6606">6606</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'title'], </td> </tr> <tr> <td class="h" > <a name="6607">6607</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.js'}, </td> </tr> <tr> <td class="h" > <a name="6608">6608</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'cgm' => { unit=>'pt', desc=> "Computer Graphic Metafile format (ANSI X3.122-1986)", </td> </tr> <tr> <td class="h" > <a name="6609">6609</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/ color monochrome solid dashed rotate /, </td> </tr> <tr> <td class="h" > <a name="6610">6610</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['size', 'l', sub { my( $k, $v, $h) = @_; </td> </tr> <tr> <td class="h" > <a name="6611">6611</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $conv = 1; </td> </tr> <tr> <td class="h" > <a name="6612">6612</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(@$v > 2) { </td> </tr> <tr> <td class="h" > <a name="6613">6613</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp "Warning: cgm device ignores height spec; using width only."; </td> </tr> <tr> <td class="h" > <a name="6614">6614</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6615">6615</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(@$v >= 2) { </td> </tr> <tr> <td class="h" > <a name="6616">6616</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if($lConv->{$v->[$#$v]}) { </td> </tr> <tr> <td class="h" > <a name="6617">6617</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $conv = $lConv->{ $v->[$#$v] } / $lConv->{ 'pt' }; </td> </tr> <tr> <td class="h" > <a name="6618">6618</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif( $v>2 ) { </td> </tr> <tr> <td class="h" > <a name="6619">6619</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "cgm device: 3-element size spec must end with a unit spec"; </td> </tr> <tr> <td class="h" > <a name="6620">6620</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6621">6621</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6622">6622</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " ".($v->[0] * $conv)." "; </td> </tr> <tr> <td class="h" > <a name="6623">6623</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6624">6624</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "Window size (default unit is pt; height is ignored)" </td> </tr> <tr> <td class="h" > <a name="6625">6625</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ], </td> </tr> <tr> <td class="h" > <a name="6626">6626</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'linewidth', </td> </tr> <tr> <td class="h" > <a name="6627">6627</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['font', 's','cq','Font ("<fontname>,<size>") - NOT system fonts - see manual for list'], </td> </tr> <tr> <td class="h" > <a name="6628">6628</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "background", </td> </tr> <tr> <td class="h" > <a name="6629">6629</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'output'], </td> </tr> <tr> <td class="h" > <a name="6630">6630</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.cgm' </td> </tr> <tr> <td class="h" > <a name="6631">6631</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6632">6632</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'context'=> "ConTeXt: Metapost macros for TeX [NS: TBD]", </td> </tr> <tr> <td class="h" > <a name="6633">6633</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'corel' => "Corel Draw [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6634">6634</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'debug' => "Gnuplot internal debugging mode [NS: not useful]", </td> </tr> <tr> <td class="h" > <a name="6635">6635</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'dumb' => { </td> </tr> <tr> <td class="h" > <a name="6636">6636</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unit=>'char',desc=>"dumb terminal (ASCII output)",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6637">6637</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ ['feed','b','cf',"Issue (or not) a formfeed at the end of each plot"], </td> </tr> <tr> <td class="h" > <a name="6638">6638</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/ size enhanced output /], </td> </tr> <tr> <td class="h" > <a name="6639">6639</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.txt' </td> </tr> <tr> <td class="h" > <a name="6640">6640</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6641">6641</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'dxf' => {unit=>'pt', desc=>"AutoCad 10.x interchange files", </td> </tr> <tr> <td class="h" > <a name="6642">6642</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ 'output' ]}, </td> </tr> <tr> <td class="h" > <a name="6643">6643</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'dxy800a'=> "Roland DXY800A Plotter [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6644">6644</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'eepic' => {unit=>'in',desc=>"LaTeX picture (alternative w/ epic.sty & eepic.sty)", </td> </tr> <tr> <td class="h" > <a name="6645">6645</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/ color dashed rotate small tiny /, </td> </tr> <tr> <td class="h" > <a name="6646">6646</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['fontsize','s','cv','Font size (points)'], # special entry 'coz eepic wants no "fontsize" keyword </td> </tr> <tr> <td class="h" > <a name="6647">6647</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'output'], </td> </tr> <tr> <td class="h" > <a name="6648">6648</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s-epic-%d.tex' </td> </tr> <tr> <td class="h" > <a name="6649">6649</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6650">6650</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'emf' => {unit=>'pt',desc=>"Microsoft Windows Enhanced Metafile Format", </td> </tr> <tr> <td class="h" > <a name="6651">6651</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/ color monochrome solid dashed enhanced /, </td> </tr> <tr> <td class="h" > <a name="6652">6652</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['noproportional','b','cff',"(only with 'enhanced') - disable proportional font spacing"], </td> </tr> <tr> <td class="h" > <a name="6653">6653</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/ linewidth dashlength size background font output /], </td> </tr> <tr> <td class="h" > <a name="6654">6654</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.emf' </td> </tr> <tr> <td class="h" > <a name="6655">6655</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6656">6656</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'emxvga' => "EMXVGA terminal [NS: bizarre]", </td> </tr> <tr> <td class="h" > <a name="6657">6657</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'emxvesa'=> "EMXVESA terminal [NS: bizarre]", </td> </tr> <tr> <td class="h" > <a name="6658">6658</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'epscairo'=>{unit=>'in',desc=>"Encapsulated Postscript output via Cairo 2-D plotting library",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6659">6659</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ 'enhanced', </td> </tr> <tr> <td class="h" > <a name="6660">6660</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['monochrome','b', sub{return $_[1]?" mono ":""}, </td> </tr> <tr> <td class="h" > <a name="6661">6661</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "Generate a B/W plot (see 'color') if true"], # shield user from mono/monochrome </td> </tr> <tr> <td class="h" > <a name="6662">6662</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/color solid dashed font linewidth rounded butt dashlength background size output/ ], </td> </tr> <tr> <td class="h" > <a name="6663">6663</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.eps' </td> </tr> <tr> <td class="h" > <a name="6664">6664</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6665">6665</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'epslatex'=>{unit=>'in',desc=>"Encapsulated PostScript with LaTeX text segments", </td> </tr> <tr> <td class="h" > <a name="6666">6666</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/standalone input oldstyle newstyle level1 leveldefault color monochrome/, </td> </tr> <tr> <td class="h" > <a name="6667">6667</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/solid dashed background dashed dashlength linewidth rounded butt clip size font output/], </td> </tr> <tr> <td class="h" > <a name="6668">6668</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d-latex.eps' </td> </tr> <tr> <td class="h" > <a name="6669">6669</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6670">6670</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'epson_180dpi' => "Epson 180dpi amily of 9-pin printers [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6671">6671</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'excl' => "Talaris printer support [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6672">6672</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'fig' => {unit=>'in',desc=>"Fig graphics language output", </td> </tr> <tr> <td class="h" > <a name="6673">6673</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/ color monochrome landscape portrait small big size /, </td> </tr> <tr> <td class="h" > <a name="6674">6674</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['pointsmax', 's','cs', "maximum number of points per polyline (default 2000)"], </td> </tr> <tr> <td class="h" > <a name="6675">6675</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/ solid dashed /, </td> </tr> <tr> <td class="h" > <a name="6676">6676</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['font','s', sub { my($k,$v,$h)=@_; # special entry to allow standard format </td> </tr> <tr> <td class="h" > <a name="6677">6677</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my($f,$fs)=split /,/,$v; # (fig requires breaking font name and </td> </tr> <tr> <td class="h" > <a name="6678">6678</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my($s) = $f ? " font $f " : ""; # size out into different keywords) </td> </tr> <tr> <td class="h" > <a name="6679">6679</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s .= "fontsize $fs " if ($fs); </td> </tr> <tr> <td class="h" > <a name="6680">6680</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="6681">6681</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6682">6682</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "Font to use ('<fontname>,<size>')"], </td> </tr> <tr> <td class="h" > <a name="6683">6683</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'fontsize', </td> </tr> <tr> <td class="h" > <a name="6684">6684</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['textnormal', 'b','cff','turn off all special text flags (default)'], </td> </tr> <tr> <td class="h" > <a name="6685">6685</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['textspecial','b','cff','use LaTeX special text'], </td> </tr> <tr> <td class="h" > <a name="6686">6686</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['texthidden', 'b','cff','use hidden text'], </td> </tr> <tr> <td class="h" > <a name="6687">6687</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['textrigid', 'b','cff','set the postscript "rigid" flag'], </td> </tr> <tr> <td class="h" > <a name="6688">6688</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'linewidth', </td> </tr> <tr> <td class="h" > <a name="6689">6689</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['depth', 's','cs', 'set PostScript rendering depth'], </td> </tr> <tr> <td class="h" > <a name="6690">6690</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['version', 's','cs', '(not documented in gnuplot manual)'], </td> </tr> <tr> <td class="h" > <a name="6691">6691</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'output'], </td> </tr> <tr> <td class="h" > <a name="6692">6692</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.fig' </td> </tr> <tr> <td class="h" > <a name="6693">6693</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6694">6694</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'ggi' => "X or SVGAlib output via GGIlib [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6695">6695</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'gif' => {unit=>'px',desc=>"Graphics Interchange Format (venerable but supported)",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6696">6696</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/ transparent rounded butt linewidth dashlength font enhanced size crop /, </td> </tr> <tr> <td class="h" > <a name="6697">6697</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['animate','l','cl',"syntax: animate=>[delay=>\$d, loop=>\$n, (no)?optimize]"], </td> </tr> <tr> <td class="h" > <a name="6698">6698</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/ aa background output / ], </td> </tr> <tr> <td class="h" > <a name="6699">6699</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.gif', </td> </tr> <tr> <td class="h" > <a name="6700">6700</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> image_format=>'GIF' </td> </tr> <tr> <td class="h" > <a name="6701">6701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6702">6702</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'excl' => "Talaris printer support [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6703">6703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'gnugraph'=>"Gnu plotutils metalanguage output [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6704">6704</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'gpic' => "UNIX groff(1) output [NS: prehistoric]", </td> </tr> <tr> <td class="h" > <a name="6705">6705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'gpr' => "Apollo Graphics Primitive Resource [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6706">6706</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'grass' => {unit=>'px',desc=>"GRASS GIS file output", </td> </tr> <tr> <td class="h" > <a name="6707">6707</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>['output'], </td> </tr> <tr> <td class="h" > <a name="6708">6708</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.grass' </td> </tr> <tr> <td class="h" > <a name="6709">6709</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6710">6710</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hercules'=>"PC graphics card with autodetection [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6711">6711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hp2623a'=> "HP 2623A terminal [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6712">6712</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hp2648' => "HP2647 and HP2648 terminals [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6713">6713</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hp500c' => "HP500C terminal [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6714">6714</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hpgl' => "HPGL output (e.g. HP7475 plotter) [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6715">6715</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hpljii' => "HP Laserjet Series II [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6716">6716</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'hppj' => "HP PaintJet and HP3630 printers [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6717">6717</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'imagen' => "Imagen laser printers [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6718">6718</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'jpeg' => {unit=>"px",desc=>"JPEG image file output",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6719">6719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/aa interlace linewidth dashlength rounded butt font enhanced size crop background output /], </td> </tr> <tr> <td class="h" > <a name="6720">6720</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.jpg', </td> </tr> <tr> <td class="h" > <a name="6721">6721</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> image_format=>"JPEG" </td> </tr> <tr> <td class="h" > <a name="6722">6722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6723">6723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'kyo' => "Kyocera laserprinter native format [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6724">6724</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'latex' => {unit=>'in',desc=>"EPS output tailored for LaTeX (see also 'epslatex')", </td> </tr> <tr> <td class="h" > <a name="6725">6725</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ ['default', 'b','cff','accept whatever font is in the embedding document'], </td> </tr> <tr> <td class="h" > <a name="6726">6726</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['courier', 'b','cff','force font to Courier'], </td> </tr> <tr> <td class="h" > <a name="6727">6727</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['roman', 'b','cff','force font to Roman style (e.g. Times)'], </td> </tr> <tr> <td class="h" > <a name="6728">6728</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['fontsize','s','cv', 'set font size (in points)'], # special entry 'coz latex wants no "fontsize" keyword. </td> </tr> <tr> <td class="h" > <a name="6729">6729</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/size rotate output/], </td> </tr> <tr> <td class="h" > <a name="6730">6730</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.tex' </td> </tr> <tr> <td class="h" > <a name="6731">6731</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6732">6732</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'linux' => "Render to a Linux display dev (non-X) [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6733">6733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'lua' => "Lua script output [NS: bizarre]", </td> </tr> <tr> <td class="h" > <a name="6734">6734</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'macintosh'=>"Direct rendered MacOS < 10 window [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6735">6735</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'mf' => "Metafont output (plot as TeX glyph) [NS: crazy]", </td> </tr> <tr> <td class="h" > <a name="6736">6736</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'mif' => "FrameMaker MIF format v3.0 [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6737">6737</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'mp' => "MetaPost metaformat for graphice [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6738">6738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'next' => "NeXT (NeXTstep) file format (RIP Jobs) [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6739">6739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'openstep'=> "Openstep (NeXTStep followon) [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6740">6740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pbm' => {unit=>"px",desc=>"Portable BitMap format output", </td> </tr> <tr> <td class="h" > <a name="6741">6741</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ ['fontsize','s','cv','font size (in pixels/points)'], </td> </tr> <tr> <td class="h" > <a name="6742">6742</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/monochrome color size output/], </td> </tr> <tr> <td class="h" > <a name="6743">6743</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.pbm'}, </td> </tr> <tr> <td class="h" > <a name="6744">6744</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pdf' => {unit=>'in',desc=>"Portable Document Format output",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6745">6745</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/monochrome color enhanced font linewidth rounded butt solid dashed dashlength size output/ ], </td> </tr> <tr> <td class="h" > <a name="6746">6746</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.pdf' </td> </tr> <tr> <td class="h" > <a name="6747">6747</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6748">6748</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pdfcairo'=>{unit=>'in',desc=>"PDF output via Cairo 2-D plotting library",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6749">6749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ 'enhanced', </td> </tr> <tr> <td class="h" > <a name="6750">6750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['monochrome','b', sub{return $_[1]?" mono ":""}, </td> </tr> <tr> <td class="h" > <a name="6751">6751</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "Generate a B/W plot (see 'color') if true"], # shield user from mono/monochrome </td> </tr> <tr> <td class="h" > <a name="6752">6752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/color solid dashed font linewidth rounded butt dashlength background size output/ ], </td> </tr> <tr> <td class="h" > <a name="6753">6753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.c.pdf' </td> </tr> <tr> <td class="h" > <a name="6754">6754</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6755">6755</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pm' => "OS/2 presentation manager [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6756">6756</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'png' => {unit=>"px",desc=>"PNG image output",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6757">6757</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/transparent interlace/, </td> </tr> <tr> <td class="h" > <a name="6758">6758</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['truecolor','b','cf','Enable or disable true color (RGB) output'], </td> </tr> <tr> <td class="h" > <a name="6759">6759</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/aa rounded butt linewidth dashlength tiny small medium large giant font enhanced size crop background output/], </td> </tr> <tr> <td class="h" > <a name="6760">6760</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.png', </td> </tr> <tr> <td class="h" > <a name="6761">6761</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> image_format=>'PNG' </td> </tr> <tr> <td class="h" > <a name="6762">6762</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6763">6763</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pngcairo'=>{unit=>'px',desc=>"PNG image output via Cairo 2-D plotting library",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6764">6764</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ 'enhanced', </td> </tr> <tr> <td class="h" > <a name="6765">6765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['monochrome','b',sub{return $_[1]?" mono ":""}, </td> </tr> <tr> <td class="h" > <a name="6766">6766</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "Generate a B/W plot (see 'color') if true"], # shield user from mono/monochrome </td> </tr> <tr> <td class="h" > <a name="6767">6767</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/aa color solid dashed transparent crop background font linewidth rounded butt dashlength size output/ ], </td> </tr> <tr> <td class="h" > <a name="6768">6768</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.c.png', </td> </tr> <tr> <td class="h" > <a name="6769">6769</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> image_format=>'PNG', </td> </tr> <tr> <td class="h" > <a name="6770">6770</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6771">6771</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'postscript'=>{unit=>'in',desc=>"Postscript file output",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6772">6772</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[qw/landscape portrait/, </td> </tr> <tr> <td class="h" > <a name="6773">6773</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['eps', 'b','cff','Select encapsulated output (neither landscape nor portrait)'], </td> </tr> <tr> <td class="h" > <a name="6774">6774</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'enhanced', </td> </tr> <tr> <td class="h" > <a name="6775">6775</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['simplex', 'b','cff','single sided printing'], </td> </tr> <tr> <td class="h" > <a name="6776">6776</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['duplex', 'b','cff','double sided printing'], </td> </tr> <tr> <td class="h" > <a name="6777">6777</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['defaultplex','b','cff','accept printer default for 1/2 sided printing'], </td> </tr> <tr> <td class="h" > <a name="6778">6778</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['fontfile', 's',sub { my ($k,$v)=@_; </td> </tr> <tr> <td class="h" > <a name="6779">6779</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return " $k add \"$v\" "} </td> </tr> <tr> <td class="h" > <a name="6780">6780</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> , 'add font file to prologue'], </td> </tr> <tr> <td class="h" > <a name="6781">6781</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['adobeglyphnames','b','cf','enable or disable Adobe style glyph names'], </td> </tr> <tr> <td class="h" > <a name="6782">6782</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/level1 leveldefault color monochrome background solid dashed dashlength linewidth rounded butt clip size/, </td> </tr> <tr> <td class="h" > <a name="6783">6783</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['blacktext', 'b','cff','force text to be B/W even in color plots (see "colortext")'], </td> </tr> <tr> <td class="h" > <a name="6784">6784</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['colortext', 'b','cff','force text to be color even in B/W plots (see "blacktext")'], </td> </tr> <tr> <td class="h" > <a name="6785">6785</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'font','output'], </td> </tr> <tr> <td class="h" > <a name="6786">6786</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.ps' </td> </tr> <tr> <td class="h" > <a name="6787">6787</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6788">6788</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pslatex' => {unit=>'in',desc=>"Postscript file tailored for inclusion in LaTeX documents", </td> </tr> <tr> <td class="h" > <a name="6789">6789</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/rotate oldstyle newstyle auxfile level1 leveldefault color monochrome /, </td> </tr> <tr> <td class="h" > <a name="6790">6790</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/solid dashed dashlength linewidth rounded butt clip size fontsize output/], </td> </tr> <tr> <td class="h" > <a name="6791">6791</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d-latex.ps' </td> </tr> <tr> <td class="h" > <a name="6792">6792</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6793">6793</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pstex' => {unit=>'in',desc=>"Postscript file tailored for inclusion in raw TeX documents", </td> </tr> <tr> <td class="h" > <a name="6794">6794</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/rotate oldstyle newstyle auxfile level1 leveldefault color monochrome background /, </td> </tr> <tr> <td class="h" > <a name="6795">6795</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/solid dashed dashlength linewidth rounded butt clip size fontsize output/], </td> </tr> <tr> <td class="h" > <a name="6796">6796</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d-tex.ps' </td> </tr> <tr> <td class="h" > <a name="6797">6797</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6798">6798</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'pstricks'=>"Output for pstricks.sty LaTeX macros [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6799">6799</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'qms' =>"QMS/QUIC laser printer native format [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6800">6800</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'qt' =>{unit=>'px',desc=>'QT X windows display',mouse=>1,ok=>1,disp=>2, </td> </tr> <tr> <td class="h" > <a name="6801">6801</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>['output_', </td> </tr> <tr> <td class="h" > <a name="6802">6802</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['title','s','cq','Window title (in title bar)'], </td> </tr> <tr> <td class="h" > <a name="6803">6803</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/enhanced font linewidth solid dashed persist raise/, </td> </tr> <tr> <td class="h" > <a name="6804">6804</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['ctrlq', 'b', 'cf', 'enable (or disable) control-Q to quit window'], </td> </tr> <tr> <td class="h" > <a name="6805">6805</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'size']}, # no default (goes to screen) </td> </tr> <tr> <td class="h" > <a name="6806">6806</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'regis' =>"REGIS graphics language output [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6807">6807</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'rgip' =>"RGIP metafiles [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6808">6808</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'sun' =>"SUNView window system window [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6809">6809</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'svg' =>{unit=>'in',desc=>"Scalable Vector Graphics (SVG) output",ok=>1, </td> </tr> <tr> <td class="h" > <a name="6810">6810</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/size enhanced font/, </td> </tr> <tr> <td class="h" > <a name="6811">6811</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['fontfile','s','cq','Font file to copy into the <defs> section of the SVG'], </td> </tr> <tr> <td class="h" > <a name="6812">6812</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/rounded butt solid dashed linewidth background output/], </td> </tr> <tr> <td class="h" > <a name="6813">6813</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d.svg' </td> </tr> <tr> <td class="h" > <a name="6814">6814</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6815">6815</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'svga' =>"Output direct to a PC SVGA screen [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6816">6816</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tek40' =>"Tektronix 40xx plotting terminals [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6817">6817</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tek410x' =>"Tektronix 410x plotting terminals [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6818">6818</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'texdraw' =>{unit=>'in',desc=>"TexDraw environment for LaTeX", </td> </tr> <tr> <td class="h" > <a name="6819">6819</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ 'output' ], </td> </tr> <tr> <td class="h" > <a name="6820">6820</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=>'%s%d-texdraw.tex' </td> </tr> <tr> <td class="h" > <a name="6821">6821</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }, </td> </tr> <tr> <td class="h" > <a name="6822">6822</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tgif' =>"TGIF X11-based drawing tool [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6823">6823</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tikz' =>"TikZ package via Lua [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6824">6824</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tkcanvas'=>"Tcl/Tk canvas widget design [NS: weird]", </td> </tr> <tr> <td class="h" > <a name="6825">6825</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'tpic' =>"Latex picture (use 'latex' or 'eepic') [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6826">6826</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'unknown' =>"Unknown term (gnuplot final default) [NS: not a terminal]", </td> </tr> <tr> <td class="h" > <a name="6827">6827</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'unixpc' =>"AT&T 3b1 and AT&T 7300 UNIX PC display [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6828">6828</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'unixplot'=>"UNIX plot(1) language (non-GNU version)[NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6829">6829</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'vgagl' =>"Output to a VGA screen under linux [NS: obsolete]", </td> </tr> <tr> <td class="h" > <a name="6830">6830</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'vws' =>"VAX Windowing System [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6831">6831</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'vx384' =>"Vectrix 384 and Tandy color printers [NS: ancient]", </td> </tr> <tr> <td class="h" > <a name="6832">6832</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'windows' =>{unit=>"px",desc=>"Microsoft Windows display window", </td> </tr> <tr> <td class="h" > <a name="6833">6833</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/color monochrome font background title size/, </td> </tr> <tr> <td class="h" > <a name="6834">6834</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['position','l','csize','pixel location of the window'], </td> </tr> <tr> <td class="h" > <a name="6835">6835</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'output']}, </td> </tr> <tr> <td class="h" > <a name="6836">6836</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'wxt' =>{unit=>"px", desc=>"WxWidgets display", mouse=>1,ok=>1,disp=>2,int=>1, </td> </tr> <tr> <td class="h" > <a name="6837">6837</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ qw/size background enhanced font title dashed solid dashlength persist raise/, </td> </tr> <tr> <td class="h" > <a name="6838">6838</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['ctrl', 'b','cf','enable (or disable) control-Q to quit window'], </td> </tr> <tr> <td class="h" > <a name="6839">6839</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['close', 'b','cf','close window on completion?'] </td> </tr> <tr> <td class="h" > <a name="6840">6840</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ]}, </td> </tr> <tr> <td class="h" > <a name="6841">6841</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'x11' =>{unit=>"px",desc=>"X Windows display", mouse=>1,ok=>1,disp=>2, </td> </tr> <tr> <td class="h" > <a name="6842">6842</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt=>[ 'output_', </td> </tr> <tr> <td class="h" > <a name="6843">6843</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['title','s','cq','Window title (in title bar)'], </td> </tr> <tr> <td class="h" > <a name="6844">6844</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> qw/enhanced font linewidth solid dashed persist raise/, </td> </tr> <tr> <td class="h" > <a name="6845">6845</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ['ctrlq', 'b','cf','enable (or disable) control-Q to quit window'], </td> </tr> <tr> <td class="h" > <a name="6846">6846</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'size']}, </td> </tr> <tr> <td class="h" > <a name="6847">6847</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'xlib' =>"Xlib command file (for debugging X11) [NS: useless here]", </td> </tr> <tr> <td class="h" > <a name="6848">6848</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 'vgal'=> "VGAL terminal [NS: bizarre]", </td> </tr> <tr> <td class="h" > <a name="6849">6849</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="6850">6850</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6851">6851</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="6852">6852</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Generate the termTab from termTabSource. </td> </tr> <tr> <td class="h" > <a name="6853">6853</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="6854">6854</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Each entry in termTab gets the description string and unit, and a </td> </tr> <tr> <td class="h" > <a name="6855">6855</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # list with the same structure as the $pOpt global for parse options -- </td> </tr> <tr> <td class="h" > <a name="6856">6856</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # except that the abbrevs table is not prepopulated for all devices </td> </tr> <tr> <td class="h" > <a name="6857">6857</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (it is calculated on the fly within the constructor). </td> </tr> <tr> <td class="h" > <a name="6858">6858</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="6859">6859</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Unsupported entries are left to rot in the termTabSource structure. </td> </tr> <tr> <td class="h" > <a name="6860">6860</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6861">6861</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $termTab = {}; </td> </tr> <tr> <td class="h" > <a name="6862">6862</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6863">6863</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $k(keys %$termTabSource) { </td> </tr> <tr> <td class="h" > <a name="6864">6864</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> next unless(ref(my $v = $termTabSource->{$k})); # names aren't supported -- eliminate </td> </tr> <tr> <td class="h" > <a name="6865">6865</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $terminalOpt = {}; #this will hold the _parseOptHash control structure we generate </td> </tr> <tr> <td class="h" > <a name="6866">6866</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $i = 1; #this is a sort order counter </td> </tr> <tr> <td class="h" > <a name="6867">6867</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6868">6868</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> for my $n(@{$v->{opt}}) { </td> </tr> <tr> <td class="h" > <a name="6869">6869</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $name = $n; </td> </tr> <tr> <td class="h" > <a name="6870">6870</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $line; </td> </tr> <tr> <td class="h" > <a name="6871">6871</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if(ref $name) { </td> </tr> <tr> <td class="h" > <a name="6872">6872</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $name = $n->[0]; </td> </tr> <tr> <td class="h" > <a name="6873">6873</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $line = [@$n[1..3]]; </td> </tr> <tr> <td class="h" > <a name="6874">6874</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6875">6875</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $line = $termTab_types->{$name} </td> </tr> <tr> <td class="h" > <a name="6876">6876</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> or die "Bug in parse table build! ('$name' inside terminal '$k')"; </td> </tr> <tr> <td class="h" > <a name="6877">6877</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6878">6878</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $terminalOpt->{$name} = [ @$line[0, 1], undef, $i++, $line->[2]]; </td> </tr> <tr> <td class="h" > <a name="6879">6879</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6880">6880</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $terminalOpt->{"wait"} = [ 's' , sub { return "" }, undef, $i++, "wait time before throwing an error (default 5s)" ]; </td> </tr> <tr> <td class="h" > <a name="6881">6881</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $desc = $v->{desc}; </td> </tr> <tr> <td class="h" > <a name="6882">6882</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $desc =~ s/\%u/$v->{unit}/; </td> </tr> <tr> <td class="h" > <a name="6883">6883</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $termTab->{$k} = { desc => $desc, </td> </tr> <tr> <td class="h" > <a name="6884">6884</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> unit => $v->{unit}, </td> </tr> <tr> <td class="h" > <a name="6885">6885</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> mouse => $v->{mouse} // 0, </td> </tr> <tr> <td class="h" > <a name="6886">6886</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> disp => $v->{disp} // 0, </td> </tr> <tr> <td class="h" > <a name="6887">6887</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> int => $v->{int} // 0, </td> </tr> <tr> <td class="h" > <a name="6888">6888</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> opt => [ $terminalOpt, </td> </tr> <tr> <td class="h" > <a name="6889">6889</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> undef, # This gets filled in on first use in the constructor. </td> </tr> <tr> <td class="h" > <a name="6890">6890</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "$k terminal options" </td> </tr> <tr> <td class="h" > <a name="6891">6891</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ], </td> </tr> <tr> <td class="h" > <a name="6892">6892</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> default_output=> $v->{default_output}, </td> </tr> <tr> <td class="h" > <a name="6893">6893</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ( exists $v->{image_format} </td> </tr> <tr> <td class="h" > <a name="6894">6894</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ? ( image_format => $v->{image_format} ) </td> </tr> <tr> <td class="h" > <a name="6895">6895</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> : () ), </td> </tr> <tr> <td class="h" > <a name="6896">6896</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="6897">6897</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6898">6898</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6899">6899</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =pod </td> </tr> <tr> <td class="h" > <a name="6900">6900</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6901">6901</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 terminfo </td> </tr> <tr> <td class="h" > <a name="6902">6902</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6903">6903</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for usage </td> </tr> <tr> <td class="h" > <a name="6904">6904</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6905">6905</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> use PDL::Graphics::Gnuplot qw/terminfo/; </td> </tr> <tr> <td class="h" > <a name="6906">6906</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> terminfo(); # print info about all known terminals </td> </tr> <tr> <td class="h" > <a name="6907">6907</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> terminfo 'aqua'; # print info about the aqua terminal </td> </tr> <tr> <td class="h" > <a name="6908">6908</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6909">6909</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w = gpwin(); </td> </tr> <tr> <td class="h" > <a name="6910">6910</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->terminfo(); </td> </tr> <tr> <td class="h" > <a name="6911">6911</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6912">6912</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =for ref </td> </tr> <tr> <td class="h" > <a name="6913">6913</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6914">6914</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Print out information about gnuplot terminals and their custom option syntax. </td> </tr> <tr> <td class="h" > <a name="6915">6915</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6916">6916</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The "terminfo" routine is a reference tool to describe the Gnuplot </td> </tr> <tr> <td class="h" > <a name="6917">6917</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> terminal types and the options they accept. It's mainly useful in </td> </tr> <tr> <td class="h" > <a name="6918">6918</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> interactive sessions. It outputs information directly to the terminal. </td> </tr> <tr> <td class="h" > <a name="6919">6919</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6920">6920</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="6921">6921</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6922">6922</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub terminfo { </td> </tr> <tr> <td class="h" > <a name="6923">6923</a> </td> <td class="c0" > <a href="#6924"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#6923-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#6923-1"> 1 </a> </td> <td > 0 </td> <td class="s"> my $this = _obj_or_global(\@_); </td> </tr> <tr> <td class="h" > <a name="6924">6924</a> </td> <td class="c0" > <a href="#6925"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6924-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $terminal = shift() // ''; </td> </tr> <tr> <td class="h" > <a name="6925">6925</a> </td> <td class="c0" > <a href="#6926"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $brief_form = shift; </td> </tr> <tr> <td class="h" > <a name="6926">6926</a> </td> <td class="c0" > <a href="#6927"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $dont_print = shift; </td> </tr> <tr> <td class="h" > <a name="6927">6927</a> </td> <td class="c0" > <a href="#6929"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="6928">6928</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6929">6929</a> </td> <td class="c0" > <a href="#6930"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6929-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($termTabSource->{$terminal}) { </td> </tr> <tr> <td class="h" > <a name="6930">6930</a> </td> <td class="c0" > <a href="#6931"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6930-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(ref $termTabSource->{$terminal}) { </td> </tr> <tr> <td class="h" > <a name="6931">6931</a> </td> <td class="c0" > <a href="#6932"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6931-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $ms = $termTabSource->{$terminal}{mouse} ? ", mouse input ok" : ""; </td> </tr> <tr> <td class="h" > <a name="6932">6932</a> </td> <td class="c0" > <a href="#6933"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s = "Gnuplot terminal '$terminal': size default unit is '$termTabSource->{$terminal}->{unit}'$ms, options are:\n"; </td> </tr> <tr> <td class="h" > <a name="6933">6933</a> </td> <td class="c0" > <a href="#6934"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $tt = $termTab->{$terminal}->{opt}->[0]; </td> </tr> <tr> <td class="h" > <a name="6934">6934</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6934-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> for my $name(sort { ($tt->{$a}[3] // 0) <=> ($tt->{$b}->[3] // 0) } keys %$tt) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#6935"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6935">6935</a> </td> <td class="c0" > <a href="#6936"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my @info = ($name, $tt->{$name}[4]); </td> </tr> <tr> <td class="h" > <a name="6936">6936</a> </td> <td class="c0" > <a href="#6937"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $info[0] =~ s/\_$//; #remove trailing underscore on "output_" hack </td> </tr> <tr> <td class="h" > <a name="6937">6937</a> </td> <td class="c0" > <a href="#6938"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6937-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6937-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(defined($info[0]) and defined($info[1])) { </td> </tr> <tr> <td class="h" > <a name="6938">6938</a> </td> <td class="c0" > <a href="#6939"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $ss = sprintf "%10s - %s\n",@info; </td> </tr> <tr> <td class="h" > <a name="6939">6939</a> </td> <td class="c0" > <a href="#6940"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $ss =~ s/\%u/$termTabSource->{$terminal}->{unit}/; </td> </tr> <tr> <td class="h" > <a name="6940">6940</a> </td> <td class="c0" > <a href="#6944"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= $ss; </td> </tr> <tr> <td class="h" > <a name="6941">6941</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6942">6942</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6943">6943</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6944">6944</a> </td> <td class="c0" > <a href="#6945"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6944-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($this->{unknown_terms}->{$terminal}) { </td> </tr> <tr> <td class="h" > <a name="6945">6945</a> </td> <td class="c0" > <a href="#6946"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s = "terminfo: terminal '$terminal' isn't supported, although your gnuplot has it:\n"; </td> </tr> <tr> <td class="h" > <a name="6946">6946</a> </td> <td class="c0" > <a href="#6948"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= " $terminal: $termTabSource->{$terminal}\n"; </td> </tr> <tr> <td class="h" > <a name="6947">6947</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="6948">6948</a> </td> <td class="c0" > <a href="#6951"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s = "PDL::Graphics::Gnuplot doesn't support '$terminal'.\n $terminal: $termTabSource->{$terminal}\n"; </td> </tr> <tr> <td class="h" > <a name="6949">6949</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6950">6950</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6951">6951</a> </td> <td class="c0" > <a href="#6952"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6951-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print STDERR $s unless($dont_print); </td> </tr> <tr> <td class="h" > <a name="6952">6952</a> </td> <td class="c0" > <a href="#6955"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="6953">6953</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6954">6954</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6955">6955</a> </td> <td class="c0" > <a href="#6956"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6955-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6955-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($terminal && $this->{unknown_terms}->{$terminal}) { </td> </tr> <tr> <td class="h" > <a name="6956">6956</a> </td> <td class="c0" > <a href="#6957"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s = "terminfo: terminal '$terminal' was reported by gnuplot but isn't supported.\n"; </td> </tr> <tr> <td class="h" > <a name="6957">6957</a> </td> <td class="c0" > <a href="#6958"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= " $terminal: $this->{unknown_terms}->{$terminal}\n"; </td> </tr> <tr> <td class="h" > <a name="6958">6958</a> </td> <td class="c0" > <a href="#6959"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6958-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print STDERR $s unless($dont_print); </td> </tr> <tr> <td class="h" > <a name="6959">6959</a> </td> <td class="c0" > <a href="#6962"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="6960">6960</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6961">6961</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6962">6962</a> </td> <td class="c0" > <a href="#6963"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6962-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6962-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($terminal && $terminal ne 'all'){ </td> </tr> <tr> <td class="h" > <a name="6963">6963</a> </td> <td class="c0" > <a href="#6964"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s = "terminfo: terminal '$terminal' isn't recognized. I'm listing all supported terminals instead.\n\n"; </td> </tr> <tr> <td class="h" > <a name="6964">6964</a> </td> <td class="c0" > <a href="#6967"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $terminal = ''; </td> </tr> <tr> <td class="h" > <a name="6965">6965</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6966">6966</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6967">6967</a> </td> <td class="c0" > <a href="#6969"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6967-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6967-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(!$terminal || $terminal eq 'all') { </td> </tr> <tr> <td class="h" > <a name="6968">6968</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6969">6969</a> </td> <td class="c0" > <a href="#6970"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6969-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6969-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(!$terminal && !$brief_form && !$dont_print) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6970">6970</a> </td> <td class="c0" > <a href="#6973"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "('terminfo \"all\"' lists all known terminals, even those not supported)\n\n"; </td> </tr> <tr> <td class="h" > <a name="6971">6971</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6972">6972</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6973">6973</a> </td> <td class="c0" > <a href="#6975"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "Gnuplot terminals supported by PDL::Graphics::Gnuplot and your gnuplot:\n"; </td> </tr> <tr> <td class="h" > <a name="6974">6974</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6975">6975</a> </td> <td class="c0" > <a href="#6976"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "\n DISPLAY TERMINALS ([M] indicates mouse input is supported)\n"; </td> </tr> <tr> <td class="h" > <a name="6976">6976</a> </td> <td class="c0" > <a href="#6977"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> for my $k(sort keys %$termTab) { </td> </tr> <tr> <td class="h" > <a name="6977">6977</a> </td> <td class="c0" > <a href="#6978"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6977-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> next unless($this->{valid_terms}->{$k}); </td> </tr> <tr> <td class="h" > <a name="6978">6978</a> </td> <td class="c0" > <a href="#6979"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6978-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6978-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> next unless($termTab->{$k}->{int} || $termTab->{$k}->{mouse}); </td> </tr> <tr> <td class="h" > <a name="6979">6979</a> </td> <td class="c0" > <a href="#6982"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6979-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= sprintf(" %10s: %s %s\n",$k,$termTab->{$k}->{mouse} ? "[M]" : " ", $termTab->{$k}->{desc}); </td> </tr> <tr> <td class="h" > <a name="6980">6980</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6981">6981</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6982">6982</a> </td> <td class="c0" > <a href="#6983"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "\n\n FILE TERMINALS\n"; </td> </tr> <tr> <td class="h" > <a name="6983">6983</a> </td> <td class="c0" > <a href="#6984"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> for my $k(sort keys %$termTab) { </td> </tr> <tr> <td class="h" > <a name="6984">6984</a> </td> <td class="c0" > <a href="#6985"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6984-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> next unless($this->{valid_terms}->{$k}); </td> </tr> <tr> <td class="h" > <a name="6985">6985</a> </td> <td class="c0" > <a href="#6986"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6985-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#6985-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> next if($termTab->{$k}->{int} || $termTab->{$k}->{mouse}); </td> </tr> <tr> <td class="h" > <a name="6986">6986</a> </td> <td class="c0" > <a href="#6989"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= sprintf(" %10.10s: %s %s\n",$k," ", $termTab->{$k}->{desc}); </td> </tr> <tr> <td class="h" > <a name="6987">6987</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6988">6988</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6989">6989</a> </td> <td class="c0" > <a href="#6992"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6989-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($terminal eq 'all') { </td> </tr> <tr> <td class="h" > <a name="6990">6990</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Merge things gnuplot reported but we don't support, with things we support but </td> </tr> <tr> <td class="h" > <a name="6991">6991</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # gnuplot didn't report... </td> </tr> <tr> <td class="h" > <a name="6992">6992</a> </td> <td class="c0" > <a href="#6994"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "\nThese terminals are supported by PDL::Graphics::Gnuplot but not your gnuplot:\n"; </td> </tr> <tr> <td class="h" > <a name="6993">6993</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6994">6994</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> for my $k(sort keys %{$termTab}) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#6995"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6995">6995</a> </td> <td class="c0" > <a href="#6996"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#6995-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> next if($this->{valid_terms}->{$k}); </td> </tr> <tr> <td class="h" > <a name="6996">6996</a> </td> <td class="c0" > <a href="#6999"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= sprintf("%12s: %s\n", $k, $termTab->{$k}->{desc}); </td> </tr> <tr> <td class="h" > <a name="6997">6997</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="6998">6998</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="6999">6999</a> </td> <td class="c0" > <a href="#7000"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "\nThese terminals are supported by your gnuplot but not by PDL::Graphics::Gnuplot:\n"; </td> </tr> <tr> <td class="h" > <a name="7000">7000</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> for my $k(sort keys %{$this->{unknown_terms}}) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#7001"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7001">7001</a> </td> <td class="c0" > <a href="#7005"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= sprintf("%12s: %s\n",$k,$this->{unknown_terms}->{$k}); </td> </tr> <tr> <td class="h" > <a name="7002">7002</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7003">7003</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7004">7004</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7005">7005</a> </td> <td class="c0" > <a href="#7007"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "\n(use terminfo('all') to see unsupported terminals as well)\n"; </td> </tr> <tr> <td class="h" > <a name="7006">7006</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7007">7007</a> </td> <td class="c0" > <a href="#7009"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= "\nRun PDL::Graphics::Gnuplot::terminfo( \$term_name ) for information on options.\n\n"; </td> </tr> <tr> <td class="h" > <a name="7008">7008</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7009">7009</a> </td> <td class="c0" > <a href="#7011"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7009-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s .= (($this==$globalPlot) ? "The default P::G::G" : "This") . " window is currently using the '$this->{terminal}' terminal.\n\n"; </td> </tr> <tr> <td class="h" > <a name="7010">7010</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7011">7011</a> </td> <td class="c0" > <a href="#7012"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7011-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print STDERR $s unless($dont_print); </td> </tr> <tr> <td class="h" > <a name="7012">7012</a> </td> <td class="c0" > <a href="#7102"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="7013">7013</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7014">7014</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7015">7015</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7016">7016</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7017">7017</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="7018">7018</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ###################################################################### </td> </tr> <tr> <td class="h" > <a name="7019">7019</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7020">7020</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### I/O to Gnuplot </td> </tr> <tr> <td class="h" > <a name="7021">7021</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7022">7022</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### The following routines provide basic I/O to the underlying </td> </tr> <tr> <td class="h" > <a name="7023">7023</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Gnuplot process: starting Gnuplot, writing commands and/or data </td> </tr> <tr> <td class="h" > <a name="7024">7024</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### to it, reading messages back, and ensuring synchronization. </td> </tr> <tr> <td class="h" > <a name="7025">7025</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7026">7026</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Note: it is not a normal state of the object to NOT have a </td> </tr> <tr> <td class="h" > <a name="7027">7027</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Gnuplot (or dump interface) running. These are internal </td> </tr> <tr> <td class="h" > <a name="7028">7028</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### methods because there is no checking elsewhere to make sure the </td> </tr> <tr> <td class="h" > <a name="7029">7029</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### gnuplot is there to receive commands. </td> </tr> <tr> <td class="h" > <a name="7030">7030</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7031">7031</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7032">7032</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Communication strategy: </td> </tr> <tr> <td class="h" > <a name="7033">7033</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7034">7034</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Since we're using open3() we have to be careful to avoid </td> </tr> <tr> <td class="h" > <a name="7035">7035</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### deadlock. Also, gnuplot is a little brittle in some </td> </tr> <tr> <td class="h" > <a name="7036">7036</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### situations. Fortunately, we don't keep much state in gnuplot </td> </tr> <tr> <td class="h" > <a name="7037">7037</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### itself, so we can more or less treat the gnuplot process as </td> </tr> <tr> <td class="h" > <a name="7038">7038</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### disposable. It's inconvenient to restart or reset it, </td> </tr> <tr> <td class="h" > <a name="7039">7039</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### especially if there is a display device like x11, wxt, or aqua </td> </tr> <tr> <td class="h" > <a name="7040">7040</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### in place, since that causes a new window to be launched. But </td> </tr> <tr> <td class="h" > <a name="7041">7041</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### for most communication exceptions we can simply drop-kick the </td> </tr> <tr> <td class="h" > <a name="7042">7042</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### subprocess and start it over. </td> </tr> <tr> <td class="h" > <a name="7043">7043</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7044">7044</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### POSIX IPC is pretty sane and we can use signals to control </td> </tr> <tr> <td class="h" > <a name="7045">7045</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### what's going on. Unfortunately, not all supported platforms </td> </tr> <tr> <td class="h" > <a name="7046">7046</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### are POSIX, so we have to switch some behavior based on the </td> </tr> <tr> <td class="h" > <a name="7047">7047</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### $MS_io_braindamage flag. </td> </tr> <tr> <td class="h" > <a name="7048">7048</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7049">7049</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Because not much data comes back from gnuplot over the pipe, we </td> </tr> <tr> <td class="h" > <a name="7050">7050</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### are pretty careless about how we pull it through -- one </td> </tr> <tr> <td class="h" > <a name="7051">7051</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### character at a time, which is pretty inefficient. </td> </tr> <tr> <td class="h" > <a name="7052">7052</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7053">7053</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### Dealing with exceptions and interrupts is difficult, since </td> </tr> <tr> <td class="h" > <a name="7054">7054</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### gnuplot doesn't seem to respond well over the pipe in the most </td> </tr> <tr> <td class="h" > <a name="7055">7055</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### common case (while receiving binary data). In that particular </td> </tr> <tr> <td class="h" > <a name="7056">7056</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### case we simply dropkick gnuplot and restart it. </td> </tr> <tr> <td class="h" > <a name="7057">7057</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ##### </td> </tr> <tr> <td class="h" > <a name="7058">7058</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7059">7059</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7060">7060</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7061">7061</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## _load_alien_gnuplot -- load up the local caches of terminal support and color names. </td> </tr> <tr> <td class="h" > <a name="7062">7062</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## This is necessary because Alien::Gnuplot doesn't know which terminals we support, </td> </tr> <tr> <td class="h" > <a name="7063">7063</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## and is in a separate subroutine so we can call it to reload the cached terminal </td> </tr> <tr> <td class="h" > <a name="7064">7064</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## database. </td> </tr> <tr> <td class="h" > <a name="7065">7065</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7066">7066</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> _load_alien_gnuplot(); # Execute this during module load! </td> </tr> <tr> <td class="h" > <a name="7067">7067</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7068">7068</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _load_alien_gnuplot { </td> </tr> <tr> <td class="h" > <a name="7069">7069</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7069-1"> 3 </a> </td> <td >   </td> <td > 11 </td> <td class="s"> our %valid_terms = (); </td> </tr> <tr> <td class="h" > <a name="7070">7070</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s"> our $valid_terms = \%valid_terms; </td> </tr> <tr> <td class="h" > <a name="7071">7071</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s"> our $unknown_terms = {}; </td> </tr> <tr> <td class="h" > <a name="7072">7072</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7073">7073</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 20 </td> <td class="s"> for ( @Alien::Gnuplot::terms ) { </td> </tr> <tr> <td class="h" > <a name="7074">7074</a> </td> <td class="c3" > 78 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7074-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 161 </td> <td class="s"> if(exists($termTab->{$_})) { </td> </tr> <tr> <td class="h" > <a name="7075">7075</a> </td> <td class="c3" > 36 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 86 </td> <td class="s"> $valid_terms->{$_} = 1; </td> </tr> <tr> <td class="h" > <a name="7076">7076</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7077">7077</a> </td> <td class="c3" > 42 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7077-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 178 </td> <td class="s"> $unknown_terms->{$_} = $termTabSource->{$_} // "Unknown but reported by gnuplot"; </td> </tr> <tr> <td class="h" > <a name="7078">7078</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7079">7079</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7080">7080</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7081">7081</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 85 </td> <td class="s"> our @colornames = @Alien::Gnuplot::colors; </td> </tr> <tr> <td class="h" > <a name="7082">7082</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 333 </td> <td class="s"> our %colornames = %Alien::Gnuplot::colors; </td> </tr> <tr> <td class="h" > <a name="7083">7083</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 34 </td> <td class="s"> our $colornames = \%colornames; </td> </tr> <tr> <td class="h" > <a name="7084">7084</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7085">7085</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7086">7086</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7087">7087</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7088">7088</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7089">7089</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7090">7090</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7091">7091</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7092">7092</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7093">7093</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## _startGnuplot - fire off a gnuplot process, and pull in some information from it about what it can do. </td> </tr> <tr> <td class="h" > <a name="7094">7094</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## </td> </tr> <tr> <td class="h" > <a name="7095">7095</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _startGnuplot </td> </tr> <tr> <td class="h" > <a name="7096">7096</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7097">7097</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Object code handles gnuplot in-place. </td> </tr> <tr> <td class="h" > <a name="7098">7098</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7098-1"> 45 </a> </td> <td >   </td> <td > 135 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="7099">7099</a> </td> <td class="c3" > 45 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7099-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 233 </td> <td class="s"> my $suffix = shift || "main"; </td> </tr> <tr> <td class="h" > <a name="7100">7100</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7101">7101</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7101-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 309 </td> <td class="s"> if($this->{"pid-$suffix"}) { </td> </tr> <tr> <td class="h" > <a name="7102">7102</a> </td> <td class="c0" > <a href="#7108"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _killGnuplot($this,$suffix); </td> </tr> <tr> <td class="h" > <a name="7103">7103</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7104">7104</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7105">7105</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 187 </td> <td class="s"> $this->{options}{multiplot} = 0; </td> </tr> <tr> <td class="h" > <a name="7106">7106</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7107">7107</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7107-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 189 </td> <td class="s"> if( $this->{options}{dump} ) { </td> </tr> <tr> <td class="h" > <a name="7108">7108</a> </td> <td class="c0" > <a href="#7109"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{"in-$suffix"} = \*STDOUT; </td> </tr> <tr> <td class="h" > <a name="7109">7109</a> </td> <td class="c0" > <a href="#7110"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{"pid-$suffix"} = undef; </td> </tr> <tr> <td class="h" > <a name="7110">7110</a> </td> <td class="c0" > <a href="#7111"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{dumping} = $this->{options}{dump}; </td> </tr> <tr> <td class="h" > <a name="7111">7111</a> </td> <td class="c0" > <a href="#7127"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $this; </td> </tr> <tr> <td class="h" > <a name="7112">7112</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7113">7113</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 160 </td> <td class="s"> $this->{dumping} = 0; </td> </tr> <tr> <td class="h" > <a name="7114">7114</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7115">7115</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7116">7116</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We don't actually want the --persist option, but gnuplot crashes on some platforms without it. </td> </tr> <tr> <td class="h" > <a name="7117">7117</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (I'm looking at you, Microsoft Windows...) </td> </tr> <tr> <td class="h" > <a name="7118">7118</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Instead, we default the "persist" plot option to be 0, if unspecified. </td> </tr> <tr> <td class="h" > <a name="7119">7119</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7119-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 309 </td> <td class="s"> my @gnuplot_options = $gnuplotFeatures{persist} ? qw(--persist) : (); </td> </tr> <tr> <td class="h" > <a name="7120">7120</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7121">7121</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 505 </td> <td class="s"> my $in = gensym(); </td> </tr> <tr> <td class="h" > <a name="7122">7122</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1797 </td> <td class="s"> my $err = gensym(); </td> </tr> <tr> <td class="h" > <a name="7123">7123</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7124">7124</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 666 </td> <td class="s"> my $XDG_RUNTIME_DIR_global = $ENV{XDG_RUNTIME_DIR}; </td> </tr> <tr> <td class="h" > <a name="7125">7125</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 791 </td> <td class="s"> local $ENV{XDG_RUNTIME_DIR} = $XDG_RUNTIME_DIR_global; </td> </tr> <tr> <td class="h" > <a name="7126">7126</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7126-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7126-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 214 </td> <td class="s"> if( exists $ENV{DISPLAY} && ! $XDG_RUNTIME_DIR_global ) { </td> </tr> <tr> <td class="h" > <a name="7127">7127</a> </td> <td class="c0" > <a href="#7128"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{"_XDG_RUNTIME_DIR-tempdir-$suffix"} = File::Temp->newdir(); </td> </tr> <tr> <td class="h" > <a name="7128">7128</a> </td> <td class="c0" > <a href="#7133"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $ENV{XDG_RUNTIME_DIR} = '' . $this->{"_XDG_RUNTIME_DIR-tempdir-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7129">7129</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7130">7130</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 481 </td> <td class="s"> my $pid = open3($in,$err,$err, $Alien::Gnuplot::executable, @gnuplot_options); </td> </tr> <tr> <td class="h" > <a name="7131">7131</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7132">7132</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7132-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 515532 </td> <td class="s"> unless($pid) { </td> </tr> <tr> <td class="h" > <a name="7133">7133</a> </td> <td class="c0" > <a href="#7160"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf("PDL::Graphics::Gnuplot: Couldn't run the '$Alien::Gnuplot::executable' backend that was found by Alien::Gnuplot"); </td> </tr> <tr> <td class="h" > <a name="7134">7134</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7135">7135</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7136">7136</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 245 </td> <td class="s"> my $errSelector; </td> </tr> <tr> <td class="h" > <a name="7137">7137</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 696 </td> <td class="s"> $this->{"in-$suffix"} = $in; </td> </tr> <tr> <td class="h" > <a name="7138">7138</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 547 </td> <td class="s"> $this->{"err-$suffix"} = $err; </td> </tr> <tr> <td class="h" > <a name="7139">7139</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1697 </td> <td class="s"> $this->{"errSelector-$suffix"} = $errSelector = IO::Select->new($err); </td> </tr> <tr> <td class="h" > <a name="7140">7140</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6257 </td> <td class="s"> $this->{"pid-$suffix"} = $pid; </td> </tr> <tr> <td class="h" > <a name="7141">7141</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7142">7142</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Make sure the executable is working as expected. We do this by </td> </tr> <tr> <td class="h" > <a name="7143">7143</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## telling it to emit a version number. (Alien::Gnuplot did this at </td> </tr> <tr> <td class="h" > <a name="7144">7144</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## load time, so we can check both that the gnuplot works, and also </td> </tr> <tr> <td class="h" > <a name="7145">7145</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## that it is probably the same executable that Alien::Gnuplot reported.) </td> </tr> <tr> <td class="h" > <a name="7146">7146</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7147">7147</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 481 </td> <td class="s"> my $s = ""; </td> </tr> <tr> <td class="h" > <a name="7148">7148</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 141 </td> <td class="s"> our $gp_version; </td> </tr> <tr> <td class="h" > <a name="7149">7149</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 195 </td> <td class="s"> our $gp_pl; </td> </tr> <tr> <td class="h" > <a name="7150">7150</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7151">7151</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7151-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 259 </td> <td class="s"> if(!$this->{dumping}) { </td> </tr> <tr> <td class="h" > <a name="7152">7152</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1330 </td> <td class="s"> print $in "show version\n\nprint \"FfFinished\"\n\n"; </td> </tr> <tr> <td class="h" > <a name="7153">7153</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 119 </td> <td class="s"> my $byte; </td> </tr> <tr> <td class="h" > <a name="7154">7154</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 132 </td> <td class="s"> my $zcount = 0; </td> </tr> <tr> <td class="h" > <a name="7155">7155</a> </td> <td class="c3" > 45 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7155-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 242 </td> <td class="s"> do { </td> </tr> <tr> <td class="h" > <a name="7156">7156</a> </td> <td class="c3" > 16380 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7156-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7156-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 35888 </td> <td class="s"> if($errSelector->can_read(1) or $MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="7157">7157</a> </td> <td class="c3" > 16380 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 655050 </td> <td class="s"> sysread $err, $byte, 1; </td> </tr> <tr> <td class="h" > <a name="7158">7158</a> </td> <td class="c3" > 16380 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 28043 </td> <td class="s"> $s .= $byte; </td> </tr> <tr> <td class="h" > <a name="7159">7159</a> </td> <td class="c3" > 16380 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7159-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 28340 </td> <td class="s"> if(length($byte)==0) { </td> </tr> <tr> <td class="h" > <a name="7160">7160</a> </td> <td class="c0" > <a href="#7165"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $zcount++; </td> </tr> <tr> <td class="h" > <a name="7161">7161</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7162">7162</a> </td> <td class="c3" > 16380 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 60365 </td> <td class="s"> $zcount = 0; </td> </tr> <tr> <td class="h" > <a name="7163">7163</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7164">7164</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7165">7165</a> </td> <td class="c0" > <a href="#7175"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp <<"EOM"; </td> </tr> <tr> <td class="h" > <a name="7166">7166</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> WARNING: Hmmm, gnuplot didn\'t respond promptly. I was expecting to read </td> </tr> <tr> <td class="h" > <a name="7167">7167</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a version number. Carry on, but don\'t be surprised if it doesn\'t work. </td> </tr> <tr> <td class="h" > <a name="7168">7168</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7169">7169</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> - </td> </tr> <tr> <td class="h" > <a name="7170">7170</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $s </td> </tr> <tr> <td class="h" > <a name="7171">7171</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> - </td> </tr> <tr> <td class="h" > <a name="7172">7172</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7173">7173</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOM </td> </tr> <tr> <td class="h" > <a name="7174">7174</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ; </td> </tr> <tr> <td class="h" > <a name="7175">7175</a> </td> <td class="c0" > <a href="#7192"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $this; </td> </tr> <tr> <td class="h" > <a name="7176">7176</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7177">7177</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } until($s =~ m/^FfFinished$/m || $zcount > 100); </td> </tr> <tr> <td class="h" > <a name="7178">7178</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7179">7179</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7180">7180</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Parse version number. If the version or pl changed, try reloading Alien::Gnuplot </td> </tr> <tr> <td class="h" > <a name="7181">7181</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # to get them in sync. </td> </tr> <tr> <td class="h" > <a name="7182">7182</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7182-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 882 </td> <td class="s"> if( $s =~ m/Version ((\d+)\.(\d+)(\.(\d+))?) (patchlevel (\w+))?/i ) { </td> </tr> <tr> <td class="h" > <a name="7183">7183</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 737 </td> <td class="s"> $gp_version = $1; </td> </tr> <tr> <td class="h" > <a name="7184">7184</a> </td> <td class="c3" > 45 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7184-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 1241 </td> <td class="s"> $gp_numversion = $2 + 0.001*$3 + 0.000001*($5||0); </td> </tr> <tr> <td class="h" > <a name="7185">7185</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 381 </td> <td class="s"> $gp_pl = $7; </td> </tr> <tr> <td class="h" > <a name="7186">7186</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 448 </td> <td class="s"> $this->{gp_version} = $1; </td> </tr> <tr> <td class="h" > <a name="7187">7187</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 266 </td> <td class="s"> $this->{gp_numversion} = $gp_numversion; </td> </tr> <tr> <td class="h" > <a name="7188">7188</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 265 </td> <td class="s"> $this->{gp_pl} = $7; </td> </tr> <tr> <td class="h" > <a name="7189">7189</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7190">7190</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7191">7191</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Something went wrong with i/o. See if the process still exists. </td> </tr> <tr> <td class="h" > <a name="7192">7192</a> </td> <td class="c0" > <a href="#7194"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7192-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="7193">7193</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7193-1"> 3 </a> </td> <td >   </td> <td > 36 </td> <td class="s"> use POSIX ":sys_wait_h"; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 97 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7194">7194</a> </td> <td class="c0" > <a href="#7195"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $wp = waitpid($pid, WNOHANG); </td> </tr> <tr> <td class="h" > <a name="7195">7195</a> </td> <td class="c0" > <a href="#7196"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7195-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($wp == $pid) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7196">7196</a> </td> <td class="c0" > <a href="#7197"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7196-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if((($?+0) & 255)==11) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7197">7197</a> </td> <td class="c0" > <a href="#7199"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "ERROR: the gnuplot subprocess died with a segmentation fault!\n (Could happen before exec'ing '$Alien::Gnuplot::executable'...)\n"; </td> </tr> <tr> <td class="h" > <a name="7198">7198</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif((($?+0) & 255)==7) { </td> </tr> <tr> <td class="h" > <a name="7199">7199</a> </td> <td class="c0" > <a href="#7201"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "ERROR: the gnuplot subprocess died with a bus error!\n (Could happen before exec'ing '$Alien::Gnuplot::executable'...)\n"; </td> </tr> <tr> <td class="h" > <a name="7200">7200</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7201">7201</a> </td> <td class="c0" > <a href="#7203"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "ERROR: The gnuplot subprocess died! Its exit code was $?.\n I hope that helps.\n"; </td> </tr> <tr> <td class="h" > <a name="7202">7202</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif($wp < 0) { </td> </tr> <tr> <td class="h" > <a name="7203">7203</a> </td> <td class="c0" > <a href="#7212"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "ERROR: The gnuplot process mysteriously vanished and was also reaped.\nBizarre.\n"; </td> </tr> <tr> <td class="h" > <a name="7204">7204</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7205">7205</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7206">7206</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7207">7207</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp <<"EOM" </td> </tr> <tr> <td class="h" > <a name="7208">7208</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> WARNING: I couldn\'t parse a version number from gnuplot\'s output. I\'m </td> </tr> <tr> <td class="h" > <a name="7209">7209</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> returning the object anyway - but don\'t be surprised if it doesn\'t work. </td> </tr> <tr> <td class="h" > <a name="7210">7210</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> I\'m marking it with an internal \"obsolete\" flag, which may help. </td> </tr> <tr> <td class="h" > <a name="7211">7211</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOM </td> </tr> <tr> <td class="h" > <a name="7212">7212</a> </td> <td class="c0" > <a href="#7213"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> ; </td> </tr> <tr> <td class="h" > <a name="7213">7213</a> </td> <td class="c0" > <a href="#7214"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{early_gnuplot} = 1; </td> </tr> <tr> <td class="h" > <a name="7214">7214</a> </td> <td class="c0" > <a href="#7215"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $PDL::Graphics::Gnuplot::raw_output = $s; </td> </tr> <tr> <td class="h" > <a name="7215">7215</a> </td> <td class="c0" > <a href="#7219"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return $this; </td> </tr> <tr> <td class="h" > <a name="7216">7216</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7217">7217</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7218">7218</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7218-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 215 </td> <td class="s"> if($gp_pl =~ m/[a-z]+/) { </td> </tr> <tr> <td class="h" > <a name="7219">7219</a> </td> <td class="c0" > <a href="#7220"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7219-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7219-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless($PDL::Graphics::Gnuplot::non_numeric_patch_warned || $ENV{PGG_RC_OK}) { </td> </tr> <tr> <td class="h" > <a name="7220">7220</a> </td> <td class="c0" > <a href="#7221"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "WARNING: your gnuplot has a non-numeric patchlevel '$gp_pl'. Use with caution.\n(warning will not be repeated; set env. var. PGG_RC_OK to suppress)\n"; </td> </tr> <tr> <td class="h" > <a name="7221">7221</a> </td> <td class="c0" > <a href="#7226"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $PDL::Graphics::Gnuplot::non_numeric_patch_warned = 1; </td> </tr> <tr> <td class="h" > <a name="7222">7222</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7223">7223</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7224">7224</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 268 </td> <td class="s"> $PDL::Graphics::Gnuplot::non_numeric_patch_warned = 0; </td> </tr> <tr> <td class="h" > <a name="7225">7225</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7225-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7225-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 535 </td> <td class="s"> if( $gp_version ne $Alien::Gnuplot::version or $gp_pl ne $Alien::Gnuplot::pl ) { </td> </tr> <tr> <td class="h" > <a name="7226">7226</a> </td> <td class="c0" > <a href="#7230"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp <<"EOM"; </td> </tr> <tr> <td class="h" > <a name="7227">7227</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> WARNING: we found gnuplot version '$gp_version' pl '$gp_pl' but Alien::Gnuplot reported </td> </tr> <tr> <td class="h" > <a name="7228">7228</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> a different version ('$Alien::Gnuplot::version' pl '$Alien::Gnuplot::pl'). Reloading Alien::Gnuplot... </td> </tr> <tr> <td class="h" > <a name="7229">7229</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOM </td> </tr> <tr> <td class="h" > <a name="7230">7230</a> </td> <td class="c0" > <a href="#7231"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> Alien::Gnuplot::load_gnuplot(); </td> </tr> <tr> <td class="h" > <a name="7231">7231</a> </td> <td class="c0" > <a href="#7232"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _load_alien_gnuplot(); </td> </tr> <tr> <td class="h" > <a name="7232">7232</a> </td> <td class="c0" > <a href="#7233"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7232-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7232-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if( $gp_version ne $Alien::Gnuplot::version or $gp_pl ne $Alien::Gnuplot::pl ) { </td> </tr> <tr> <td class="h" > <a name="7233">7233</a> </td> <td class="c0" > <a href="#7243"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp <<"EOM" </td> </tr> <tr> <td class="h" > <a name="7234">7234</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Hmmm, that\'s funny. Reloading Alien::Gnuplot gave version '$Alien::Gnuplot::version' pl '$Alien::Gnuplot::pl', </td> </tr> <tr> <td class="h" > <a name="7235">7235</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> which still doesn\'t match. Proceed with caution! </td> </tr> <tr> <td class="h" > <a name="7236">7236</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7237">7237</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOM </td> </tr> <tr> <td class="h" > <a name="7238">7238</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7239">7239</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7240">7240</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7241">7241</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # On windows, gnuplot versions 4.6.5 and older echo back commands. </td> </tr> <tr> <td class="h" > <a name="7242">7242</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7242-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7242-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 242 </td> <td class="s"> if ( $gp_numversion <= '4.006' && $gp_pl <= 5 ) { </td> </tr> <tr> <td class="h" > <a name="7243">7243</a> </td> <td class="c0" > <a href="#7248"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $echo_eating = 1; </td> </tr> <tr> <td class="h" > <a name="7244">7244</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7245">7245</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7246">7246</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7247">7247</a> </td> <td class="c3" > 45 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7247-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7247-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 221 </td> <td class="s"> if( $gp_numversion < $gnuplot_dep_v and !$PDL::Graphics::Gnuplot::deprecated_this_session ) { </td> </tr> <tr> <td class="h" > <a name="7248">7248</a> </td> <td class="c0" > <a href="#7249"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $PDL::Graphics::Gnuplot::deprecated_this_session = 1; </td> </tr> <tr> <td class="h" > <a name="7249">7249</a> </td> <td class="c0" > <a href="#7250"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7249-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> unless($ENV{GNUPLOT_DEPRECATED}){ </td> </tr> <tr> <td class="h" > <a name="7250">7250</a> </td> <td class="c0" > <a href="#7260"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp <<"EOM"; </td> </tr> <tr> <td class="h" > <a name="7251">7251</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7252">7252</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *************************************************************************** </td> </tr> <tr> <td class="h" > <a name="7253">7253</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> WARNING: Your gnuplot version ($gp_version) is deprecated and may cause </td> </tr> <tr> <td class="h" > <a name="7254">7254</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> plotting errors or random behavior. It is suggested you upgrade to v$gnuplot_dep_v. </td> </tr> <tr> <td class="h" > <a name="7255">7255</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> To silence this warning, set the GNUPLOT_DEPRECATED environment variable. </td> </tr> <tr> <td class="h" > <a name="7256">7256</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> *************************************************************************** </td> </tr> <tr> <td class="h" > <a name="7257">7257</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7258">7258</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOM </td> </tr> <tr> <td class="h" > <a name="7259">7259</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7260">7260</a> </td> <td class="c0" > <a href="#7265"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{early_gnuplot} = 1; </td> </tr> <tr> <td class="h" > <a name="7261">7261</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7262">7262</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7263">7263</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7264">7264</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7265">7265</a> </td> <td class="c0" > <a href="#7269"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp <<"EOM" </td> </tr> <tr> <td class="h" > <a name="7266">7266</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> WARNING: Gnuplot commands are being dumped to stdout. </td> </tr> <tr> <td class="h" > <a name="7267">7267</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOM </td> </tr> <tr> <td class="h" > <a name="7268">7268</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ; </td> </tr> <tr> <td class="h" > <a name="7269">7269</a> </td> <td class="c0" > <a href="#7308"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{early_gnuplot} = 0; </td> </tr> <tr> <td class="h" > <a name="7270">7270</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7271">7271</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7272">7272</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ## Stash these in the object (legacy) </td> </tr> <tr> <td class="h" > <a name="7273">7273</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 61 </td> <td class="s"> our $valid_terms; # defined in _load_alien_gnuplot. </td> </tr> <tr> <td class="h" > <a name="7274">7274</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 74 </td> <td class="s"> our $unknown_terms; # ditto </td> </tr> <tr> <td class="h" > <a name="7275">7275</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 352 </td> <td class="s"> $this->{valid_terms} = $valid_terms; </td> </tr> <tr> <td class="h" > <a name="7276">7276</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 294 </td> <td class="s"> $this->{unknown_terms} = $unknown_terms; </td> </tr> <tr> <td class="h" > <a name="7277">7277</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7278">7278</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 761 </td> <td class="s"> _checkpoint($this, "main"); </td> </tr> <tr> <td class="h" > <a name="7279">7279</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7280">7280</a> </td> <td class="c3" > 45 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1448 </td> <td class="s"> $this; </td> </tr> <tr> <td class="h" > <a name="7281">7281</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7282">7282</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7283">7283</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7284">7284</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7285">7285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _killGnuplot - clean up the mess! </td> </tr> <tr> <td class="h" > <a name="7286">7286</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7287">7287</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _killGnuplot { </td> </tr> <tr> <td class="h" > <a name="7288">7288</a> </td> <td class="c3" > 88 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7288-1"> 88 </a> </td> <td >   </td> <td > 163 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="7289">7289</a> </td> <td class="c3" > 88 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 230 </td> <td class="s"> my $suffix = shift; </td> </tr> <tr> <td class="h" > <a name="7290">7290</a> </td> <td class="c3" > 88 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 155 </td> <td class="s"> my $kill_it_dead = shift; </td> </tr> <tr> <td class="h" > <a name="7291">7291</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7292">7292</a> </td> <td class="c3" > 88 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7292-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 287 </td> <td class="s"> unless(defined($suffix)) { </td> </tr> <tr> <td class="h" > <a name="7293">7293</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 987 </td> <td class="s"> for my $k(keys %$this) { </td> </tr> <tr> <td class="h" > <a name="7294">7294</a> </td> <td class="c3" > 865 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7294-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2088 </td> <td class="s"> next unless $k =~ m/^pid\-(.*)$/; </td> </tr> <tr> <td class="h" > <a name="7295">7295</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 190 </td> <td class="s"> _killGnuplot($this,$1, $kill_it_dead); </td> </tr> <tr> <td class="h" > <a name="7296">7296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7297">7297</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1544 </td> <td class="s"> return; </td> </tr> <tr> <td class="h" > <a name="7298">7298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7299">7299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7300">7300</a> </td> <td class="c3" > 44 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7300-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 263 </td> <td class="s"> if( defined $this->{"pid-$suffix"}) </td> </tr> <tr> <td class="h" > <a name="7301">7301</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7302">7302</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 230 </td> <td class="s"> my $goner = $this->{"pid-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7303">7303</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7304">7304</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 76 </td> <td class="s"> my $z; </td> </tr> <tr> <td class="h" > <a name="7305">7305</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7306">7306</a> </td> <td class="c3" > 44 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7306-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 128 </td> <td class="s"> if($kill_it_dead) { </td> </tr> <tr> <td class="h" > <a name="7307">7307</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Just want it dead. </td> </tr> <tr> <td class="h" > <a name="7308">7308</a> </td> <td class="c0" > <a href="#7309"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> kill 'KILL', $goner; </td> </tr> <tr> <td class="h" > <a name="7309">7309</a> </td> <td class="c0" > <a href="#7322"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $z = waitpid($goner,0); </td> </tr> <tr> <td class="h" > <a name="7310">7310</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7311">7311</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7312">7312</a> </td> <td class="c3" > 44 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7312-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 186 </td> <td class="s"> _printGnuplotPipe($this,$suffix,"unset multiplot\n") if $this->{options}{multiplot}; </td> </tr> <tr> <td class="h" > <a name="7313">7313</a> </td> <td class="c3" > 44 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7313-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7313-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 209 </td> <td class="s"> _printGnuplotPipe($this,$suffix,"set term qt 0 close\n") if ($this->{terminal}//'') eq 'qt'; </td> </tr> <tr> <td class="h" > <a name="7314">7314</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 160 </td> <td class="s"> _printGnuplotPipe($this,$suffix,"exit\n"); </td> </tr> <tr> <td class="h" > <a name="7315">7315</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7316">7316</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Give it 2 seconds to quit, then interrupt it again. </td> </tr> <tr> <td class="h" > <a name="7317">7317</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If that doesn't work kill it dead. </td> </tr> <tr> <td class="h" > <a name="7318">7318</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 103 </td> <td class="s"> my $countdown = 2; </td> </tr> <tr> <td class="h" > <a name="7319">7319</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7320">7320</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # In case of ^C, give up and kill the process dead. </td> </tr> <tr> <td class="h" > <a name="7321">7321</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> local($SIG{INT}) = sub { </td> </tr> <tr> <td class="h" > <a name="7322">7322</a> </td> <td class="c0" > <a href="#7323"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7322-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> kill 'KILL', $goner; </td> </tr> <tr> <td class="h" > <a name="7323">7323</a> </td> <td class="c0" > <a href="#7324"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> alarm(0); </td> </tr> <tr> <td class="h" > <a name="7324">7324</a> </td> <td class="c0" > <a href="#7328"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $countdown = -5; </td> </tr> <tr> <td class="h" > <a name="7325">7325</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 840 </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="7326">7326</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7327">7327</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> local($SIG{ALRM}) = sub { </td> </tr> <tr> <td class="h" > <a name="7328">7328</a> </td> <td class="c0" > <a href="#7329"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7328-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> $countdown--; </td> </tr> <tr> <td class="h" > <a name="7329">7329</a> </td> <td class="c0" > <a href="#7330"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7329-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($countdown <= 2) { </td> </tr> <tr> <td class="h" > <a name="7330">7330</a> </td> <td class="c0" > <a href="#7332"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> kill 'HUP',$goner; </td> </tr> <tr> <td class="h" > <a name="7331">7331</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7332">7332</a> </td> <td class="c0" > <a href="#7333"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7332-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($countdown > 0) { </td> </tr> <tr> <td class="h" > <a name="7333">7333</a> </td> <td class="c0" > <a href="#7335"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> alarm(1); </td> </tr> <tr> <td class="h" > <a name="7334">7334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7335">7335</a> </td> <td class="c0" > <a href="#7336"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7335-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7335-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> kill 'KILL', $goner unless($countdown > 0 or $countdown < -4); </td> </tr> <tr> <td class="h" > <a name="7336">7336</a> </td> <td class="c0" > <a href="#7347"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> alarm(0); </td> </tr> <tr> <td class="h" > <a name="7337">7337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7338">7338</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 683 </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="7339">7339</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 310 </td> <td class="s"> alarm(1); </td> </tr> <tr> <td class="h" > <a name="7340">7340</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7341">7341</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 32240 </td> <td class="s"> $z = waitpid($goner, 0); </td> </tr> <tr> <td class="h" > <a name="7342">7342</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1357 </td> <td class="s"> alarm(0); </td> </tr> <tr> <td class="h" > <a name="7343">7343</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7344">7344</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7345">7345</a> </td> <td class="c3" > 44 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7345-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 191 </td> <td class="s"> unless($z == $goner) { </td> </tr> <tr> <td class="h" > <a name="7346">7346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If for some reason it didn't die, fire and forget. </td> </tr> <tr> <td class="h" > <a name="7347">7347</a> </td> <td class="c0" > <a href="#7348"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> kill 'KILL', $goner; </td> </tr> <tr> <td class="h" > <a name="7348">7348</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> waitpid( $goner, 0 ) ; </td> </tr> <tr> <td class="h" > <a name="7349">7349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7350">7350</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7351">7351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This clears the status bits from the killed process, so </td> </tr> <tr> <td class="h" > <a name="7352">7352</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we don't report anomalous error when we finally exit. </td> </tr> <tr> <td class="h" > <a name="7353">7353</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 306 </td> <td class="s"> $? = 0; </td> </tr> <tr> <td class="h" > <a name="7354">7354</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7355">7355</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7356">7356</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 152 </td> <td class="s"> for (map { $_."-$suffix" } qw/in err errSelector pid/) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 176 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 653 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7357">7357</a> </td> <td class="c3" > 176 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7357-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 3098 </td> <td class="s"> delete $this->{$_} if(exists $this->{$_}); </td> </tr> <tr> <td class="h" > <a name="7358">7358</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7359">7359</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7360">7360</a> </td> <td class="c3" > 44 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 186 </td> <td class="s"> $this; </td> </tr> <tr> <td class="h" > <a name="7361">7361</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7362">7362</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7363">7363</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7364">7364</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7365">7365</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7366">7366</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _printGnuplotPipe - output stuff to the pipe. </td> </tr> <tr> <td class="h" > <a name="7367">7367</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="7368">7368</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Used for both commands and data. </td> </tr> <tr> <td class="h" > <a name="7369">7369</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="7370">7370</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _printGnuplotPipe </td> </tr> <tr> <td class="h" > <a name="7371">7371</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7372">7372</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7372-1"> 703 </a> </td> <td >   </td> <td > 1449 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="7373">7373</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1500 </td> <td class="s"> my $suffix = shift; </td> </tr> <tr> <td class="h" > <a name="7374">7374</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1343 </td> <td class="s"> my $string = shift; </td> </tr> <tr> <td class="h" > <a name="7375">7375</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7376">7376</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7376-1"> 0 </a> </td> <td >   </td> <td > 10768 </td> <td class="s"> local($SIG{PIPE}) = sub { _killGnuplot($this,undef,1); die "PDL::Graphics::Gnuplot: subproc died.\n";}; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#7379"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7377">7377</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7378">7378</a> </td> <td class="c3" > 703 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7378-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 3098 </td> <td class="s"> unless(defined($this->{"in-$suffix"})) { </td> </tr> <tr> <td class="h" > <a name="7379">7379</a> </td> <td class="c0" > <a href="#7393"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _startGnuplot($this,$suffix); </td> </tr> <tr> <td class="h" > <a name="7380">7380</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7381">7381</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7382">7382</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # hashref </td> </tr> <tr> <td class="h" > <a name="7383">7383</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $flags->{data} if this is data, not a command; </td> </tr> <tr> <td class="h" > <a name="7384">7384</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $flags->{binary} if $string has binary data </td> </tr> <tr> <td class="h" > <a name="7385">7385</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1298 </td> <td class="s"> my $flags = shift; </td> </tr> <tr> <td class="h" > <a name="7386">7386</a> </td> <td class="c3" > 703 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7386-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2025 </td> <td class="s"> $flags = {} unless defined $flags; </td> </tr> <tr> <td class="h" > <a name="7387">7387</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7388">7388</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Autodetect the dump option </td> </tr> <tr> <td class="h" > <a name="7389">7389</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If it gets set or unset, restart gnuplot </td> </tr> <tr> <td class="h" > <a name="7390">7390</a> </td> <td class="c3" > 703 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7390-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7390-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 4301 </td> <td class="s"> if(($this->{options}{dump} && !$this->{dumping}) or </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-3"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7391">7391</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ($this->{dumping} && !$this->{options}{dump}) </td> </tr> <tr> <td class="h" > <a name="7392">7392</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) { </td> </tr> <tr> <td class="h" > <a name="7393">7393</a> </td> <td class="c0" > <a href="#7395"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->restart(1); </td> </tr> <tr> <td class="h" > <a name="7394">7394</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7395">7395</a> </td> <td class="c0" > <a href="#7396"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7395-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($this->{dumping}) { </td> </tr> <tr> <td class="h" > <a name="7396">7396</a> </td> <td class="c0" > <a href="#7398"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "(killed gnuplot)\n"; </td> </tr> <tr> <td class="h" > <a name="7397">7397</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7398">7398</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp "(restarted gnuplot)\n"; </td> </tr> <tr> <td class="h" > <a name="7399">7399</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7400">7400</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7401">7401</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7402">7402</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1577 </td> <td class="s"> my $pipein = $this->{"in-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7403">7403</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7404">7404</a> </td> <td class="c3" > 703 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7404-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1810 </td> <td class="s"> unless($this->{dumping}) { </td> </tr> <tr> <td class="h" > <a name="7405">7405</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Feed the pipe robustly. Some platforms can only ship 640kB at a time, so keep sending chunks. </td> </tr> <tr> <td class="h" > <a name="7406">7406</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1408 </td> <td class="s"> my $int_flag = 0; </td> </tr> <tr> <td class="h" > <a name="7407">7407</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1177 </td> <td class="s"> my $of = 0; </td> </tr> <tr> <td class="h" > <a name="7408">7408</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1065 </td> <td class="s"> my $len; </td> </tr> <tr> <td class="h" > <a name="7409">7409</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1962 </td> <td class="s"> my $s = $SIG{INT}; </td> </tr> <tr> <td class="h" > <a name="7410">7410</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7410-1"> 0 </a> </td> <td >   </td> <td > 6798 </td> <td class="s"> local $SIG{INT} = sub { $int_flag = 1; }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#7417"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7411">7411</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7412">7412</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Write out the string in 640kiB chunks to enable interruption </td> </tr> <tr> <td class="h" > <a name="7413">7413</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1903 </td> <td class="s"> my $pipeerr = $this->{"err-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7414">7414</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1715 </td> <td class="s"> my $pipeselector = $this->{"errSelector-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7415">7415</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7416">7416</a> </td> <td class="c3" > 703 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7416-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2127 </td> <td class="s"> if($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="7417">7417</a> </td> <td class="c0" > <a href="#7419"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $chunksize= 655360; </td> </tr> <tr> <td class="h" > <a name="7418">7418</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7419">7419</a> </td> <td class="c0" > <a href="#7420"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7419-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(length($string)) { # Only write nonempty strings :-) </td> </tr> <tr> <td class="h" > <a name="7420">7420</a> </td> <td class="c0" > <a href="#7422"> 0 </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7420-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> do { </td> </tr> <tr> <td class="h" > <a name="7421">7421</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Send the next block out. </td> </tr> <tr> <td class="h" > <a name="7422">7422</a> </td> <td class="c0" > <a href="#7423"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $len = syswrite($pipein,substr($string,$of),$chunksize); </td> </tr> <tr> <td class="h" > <a name="7423">7423</a> </td> <td class="c0" > <a href="#7424"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7423-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7423-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(!defined($len) or $len==0) { </td> </tr> <tr> <td class="h" > <a name="7424">7424</a> </td> <td class="c0" > <a href="#7425"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7424-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7424-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $err = defined($len) ? "(No error but 0 bytes written)" : $! // "(Huh - no error code in \$!)"; </td> </tr> <tr> <td class="h" > <a name="7425">7425</a> </td> <td class="c0" > <a href="#7429"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "PDL::Graphics::Gnuplot: Error while writing ". </td> </tr> <tr> <td class="h" > <a name="7426">7426</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> length($string). </td> </tr> <tr> <td class="h" > <a name="7427">7427</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> " bytes to the gnuplot pipe.\nError was:\n\t$err"; </td> </tr> <tr> <td class="h" > <a name="7428">7428</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7429">7429</a> </td> <td class="c0" > <a href="#7432"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $of += $len; </td> </tr> <tr> <td class="h" > <a name="7430">7430</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } while $of < length($string) and !$int_flag; </td> </tr> <tr> <td class="h" > <a name="7431">7431</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7432">7432</a> </td> <td class="c0" > <a href="#7434"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7432-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($int_flag) { </td> </tr> <tr> <td class="h" > <a name="7433">7433</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We were interrupted, which hoses up gnuplot. Restart gnuplot. </td> </tr> <tr> <td class="h" > <a name="7434">7434</a> </td> <td class="c0" > <a href="#7435"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _killGnuplot($this,undef,1); </td> </tr> <tr> <td class="h" > <a name="7435">7435</a> </td> <td class="c0" > <a href="#7436"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _startGnuplot($this,'main'); </td> </tr> <tr> <td class="h" > <a name="7436">7436</a> </td> <td class="c0" > <a href="#7437"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7436-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _startGnuplot($this,'syntax') if($check_syntax); </td> </tr> <tr> <td class="h" > <a name="7437">7437</a> </td> <td class="c0" > <a href="#7438"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $str = "PDL::Graphics::Gnuplot: interrupted while sending data; restarted gnuplot.\n"; </td> </tr> <tr> <td class="h" > <a name="7438">7438</a> </td> <td class="c0" > <a href="#7439"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7438-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(ref($s) eq 'CODE') { </td> </tr> <tr> <td class="h" > <a name="7439">7439</a> </td> <td class="c0" > <a href="#7440"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp $str; </td> </tr> <tr> <td class="h" > <a name="7440">7440</a> </td> <td class="c0" > <a href="#7442"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> &$s; </td> </tr> <tr> <td class="h" > <a name="7441">7441</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7442">7442</a> </td> <td class="c0" > <a href="#7448"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die $str; </td> </tr> <tr> <td class="h" > <a name="7443">7443</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7444">7444</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7445">7445</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7446">7446</a> </td> <td class="c3" > 703 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 473498 </td> <td class="s"> $len = syswrite($pipein, $string); </td> </tr> <tr> <td class="h" > <a name="7447">7447</a> </td> <td class="c3" > 703 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7447-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 7771 </td> <td class="s"> if( $int_flag ) { </td> </tr> <tr> <td class="h" > <a name="7448">7448</a> </td> <td class="c0" > <a href="#7449"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _killGnuplot($this, undef, 1); </td> </tr> <tr> <td class="h" > <a name="7449">7449</a> </td> <td class="c0" > <a href="#7450"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _startGnuplot($this, 'main'); </td> </tr> <tr> <td class="h" > <a name="7450">7450</a> </td> <td class="c0" > <a href="#7451"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7450-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _startGnuplot($this, 'syntax') if($check_syntax); </td> </tr> <tr> <td class="h" > <a name="7451">7451</a> </td> <td class="c0" > <a href="#7452"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $str = "PDL::Graphics::Gnuplot: interrupted while sending data; restarted gnuplot.\n"; </td> </tr> <tr> <td class="h" > <a name="7452">7452</a> </td> <td class="c0" > <a href="#7453"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7452-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(ref($s) eq 'CODE') { </td> </tr> <tr> <td class="h" > <a name="7453">7453</a> </td> <td class="c0" > <a href="#7454"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp $str; </td> </tr> <tr> <td class="h" > <a name="7454">7454</a> </td> <td class="c0" > <a href="#7456"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> &$s; </td> </tr> <tr> <td class="h" > <a name="7455">7455</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7456">7456</a> </td> <td class="c0" > <a href="#7463"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die $str; </td> </tr> <tr> <td class="h" > <a name="7457">7457</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7458">7458</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7459">7459</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7460">7460</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7461">7461</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Mockup for half-duplex pty and pty mockups (e.g. testing Windows support) </td> </tr> <tr> <td class="h" > <a name="7462">7462</a> </td> <td class="c3" > 703 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7462-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1801 </td> <td class="s"> if($debug_echo) { </td> </tr> <tr> <td class="h" > <a name="7463">7463</a> </td> <td class="c0" > <a href="#7464"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $k = "echobuffer-$suffix"; </td> </tr> <tr> <td class="h" > <a name="7464">7464</a> </td> <td class="c0" > <a href="#7465"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7464-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{$k} = "" unless(defined($this->{$k})); </td> </tr> <tr> <td class="h" > <a name="7465">7465</a> </td> <td class="c0" > <a href="#7466"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $s = $string; </td> </tr> <tr> <td class="h" > <a name="7466">7466</a> </td> <td class="c0" > <a href="#7467"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7466-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $s =~ s/^/gnuplot> /msg unless($flags->{data}); </td> </tr> <tr> <td class="h" > <a name="7467">7467</a> </td> <td class="c0" > <a href="#7473"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{$k} .= $s; </td> </tr> <tr> <td class="h" > <a name="7468">7468</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7469">7469</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7470">7470</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Various debugging options. </td> </tr> <tr> <td class="h" > <a name="7471">7471</a> </td> <td class="c3" > 703 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7471-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7471-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 9348 </td> <td class="s"> if( $this->{dumping} || $this->{options}{tee} ) </td> </tr> <tr> <td class="h" > <a name="7472">7472</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7473">7473</a> </td> <td class="c0" > <a href="#7474"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $debug_display_string; </td> </tr> <tr> <td class="h" > <a name="7474">7474</a> </td> <td class="c0" > <a href="#7481"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7474-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7474-1"> 0 </a> </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if ( $flags->{binary} && </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7475">7475</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ( </td> </tr> <tr> <td class="h" > <a name="7476">7476</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $this->{options}{tee} && $this->{options}{tee} eq 'nobinary' || </td> </tr> <tr> <td class="h" > <a name="7477">7477</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $this->{dumping} && $this->{dumping} eq 'nobinary' </td> </tr> <tr> <td class="h" > <a name="7478">7478</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) </td> </tr> <tr> <td class="h" > <a name="7479">7479</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) </td> </tr> <tr> <td class="h" > <a name="7480">7480</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7481">7481</a> </td> <td class="c0" > <a href="#7485"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $debug_display_string = sprintf('< %d bytes of binary data suppressed >',length($string)); </td> </tr> <tr> <td class="h" > <a name="7482">7482</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7483">7483</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else </td> </tr> <tr> <td class="h" > <a name="7484">7484</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7485">7485</a> </td> <td class="c0" > <a href="#7488"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $debug_display_string = $string; </td> </tr> <tr> <td class="h" > <a name="7486">7486</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7487">7487</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7488">7488</a> </td> <td class="c0" > <a href="#7489"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7488-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if($this->{dumping}) { </td> </tr> <tr> <td class="h" > <a name="7489">7489</a> </td> <td class="c0" > <a href="#7492"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> print $debug_display_string; </td> </tr> <tr> <td class="h" > <a name="7490">7490</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7491">7491</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7492">7492</a> </td> <td class="c0" > <a href="#7494"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7492-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if( $this->{options}{tee} ) </td> </tr> <tr> <td class="h" > <a name="7493">7493</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7494">7494</a> </td> <td class="c0" > <a href="#7495"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $len = length $string; </td> </tr> <tr> <td class="h" > <a name="7495">7495</a> </td> <td class="c0" > <a href="#7547"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _logEvent($this, </td> </tr> <tr> <td class="h" > <a name="7496">7496</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "Sent to child process (suffix $suffix) $len bytes==========\n" . $debug_display_string . "\n=========================" ); </td> </tr> <tr> <td class="h" > <a name="7497">7497</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7498">7498</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7499">7499</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7500">7500</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7501">7501</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7502">7502</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7503">7503</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _checkpoint -- synchronize the child and parent processes. After </td> </tr> <tr> <td class="h" > <a name="7504">7504</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _checkpoint() returns, we know that we have read all the data from </td> </tr> <tr> <td class="h" > <a name="7505">7505</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # the child. Extra data that represents errors is returned. Warnings </td> </tr> <tr> <td class="h" > <a name="7506">7506</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # are explicitly stripped out </td> </tr> <tr> <td class="h" > <a name="7507">7507</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> our $cp_serial = 0; </td> </tr> <tr> <td class="h" > <a name="7508">7508</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7509">7509</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $graphics_re = qr/^(?:qt\.|XType:|MESA:|QSocketNotifier:|glx:|failed to load).*/m; </td> </tr> <tr> <td class="h" > <a name="7510">7510</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _checkpoint { </td> </tr> <tr> <td class="h" > <a name="7511">7511</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7511-1"> 307 </a> </td> <td >   </td> <td > 728 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="7512">7512</a> </td> <td class="c3" > 307 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7512-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 1689 </td> <td class="s"> my $suffix = shift || "main"; </td> </tr> <tr> <td class="h" > <a name="7513">7513</a> </td> <td class="c3" > 307 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7513-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 1121 </td> <td class="s"> my $opt = shift() // {}; </td> </tr> <tr> <td class="h" > <a name="7514">7514</a> </td> <td class="c3" > 307 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7514-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 1685 </td> <td class="s"> my $notimeout = $opt->{notimeout} // 0; </td> </tr> <tr> <td class="h" > <a name="7515">7515</a> </td> <td class="c3" > 307 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7515-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 1411 </td> <td class="s"> my $printwarnings = $opt->{printwarnings} && !$this->{options}{silent}; </td> </tr> <tr> <td class="h" > <a name="7516">7516</a> </td> <td class="c3" > 307 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7516-1"> 50 </a> </td> <td >   </td> <td >   </td> <td > 1378 </td> <td class="s"> my $ignore_errors = $opt->{ignore_errors} // 0; </td> </tr> <tr> <td class="h" > <a name="7517">7517</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7518">7518</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1053 </td> <td class="s"> my $pipeerr = $this->{"err-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7519">7519</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7520">7520</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # string containing various options to this function </td> </tr> <tr> <td class="h" > <a name="7521">7521</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 505 </td> <td class="s"> my $flags = shift; </td> </tr> <tr> <td class="h" > <a name="7522">7522</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7523">7523</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # I have no way of knowing if the child process has sent its error data </td> </tr> <tr> <td class="h" > <a name="7524">7524</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # yet. It may be that an error has already occurred, but the message hasn't </td> </tr> <tr> <td class="h" > <a name="7525">7525</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # yet arrived. I thus print out a checkpoint message and keep reading the </td> </tr> <tr> <td class="h" > <a name="7526">7526</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # child's STDERR pipe until I get that message back. Any errors would have </td> </tr> <tr> <td class="h" > <a name="7527">7527</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # been printed before this </td> </tr> <tr> <td class="h" > <a name="7528">7528</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 913 </td> <td class="s"> $cp_serial++; </td> </tr> <tr> <td class="h" > <a name="7529">7529</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 925 </td> <td class="s"> my $checkpoint = "xxxxxxx Synchronizing gnuplot i/o $cp_serial xxxxxxx"; </td> </tr> <tr> <td class="h" > <a name="7530">7530</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7531">7531</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1608 </td> <td class="s"> _printGnuplotPipe( $this, $suffix, "\n\nprint \"$checkpoint\"\n" ); </td> </tr> <tr> <td class="h" > <a name="7532">7532</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7533">7533</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7534">7534</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if no error pipe exists, we can't check for errors, so we're done. Usually </td> </tr> <tr> <td class="h" > <a name="7535">7535</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # happens if($dump) </td> </tr> <tr> <td class="h" > <a name="7536">7536</a> </td> <td class="c3" > 307 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7536-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 981 </td> <td class="s"> return "" unless defined $pipeerr; </td> </tr> <tr> <td class="h" > <a name="7537">7537</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7538">7538</a> </td> <td class="c3" > 307 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7538-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 754 </td> <td class="s"> return "" if $this->{dumping}; # dumping - never generate an error. </td> </tr> <tr> <td class="h" > <a name="7539">7539</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7540">7540</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 754 </td> <td class="s"> my $int = $SIG{INT}; </td> </tr> <tr> <td class="h" > <a name="7541">7541</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2346 </td> <td class="s"> local $SIG{INT} = $int; </td> </tr> <tr> <td class="h" > <a name="7542">7542</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7543">7543</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Queue up a SIGINT handler, with passthrough... </td> </tr> <tr> <td class="h" > <a name="7544">7544</a> </td> <td class="c3" > 307 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7544-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1055 </td> <td class="s"> unless($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="7545">7545</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $SIG{INT} = </td> </tr> <tr> <td class="h" > <a name="7546">7546</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub { </td> </tr> <tr> <td class="h" > <a name="7547">7547</a> </td> <td class="c0" > <a href="#7548"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7547-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> kill 'INT', $this->{"pid-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7548">7548</a> </td> <td class="c0" > <a href="#7549"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7548-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> if(ref $int eq 'CODE') { </td> </tr> <tr> <td class="h" > <a name="7549">7549</a> </td> <td class="c0" > <a href="#7551"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> &$int; </td> </tr> <tr> <td class="h" > <a name="7550">7550</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7551">7551</a> </td> <td class="c0" > <a href="#7562"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "^C received during PDL::Graphics::Gnuplot checkpoint operation\n"; </td> </tr> <tr> <td class="h" > <a name="7552">7552</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3282 </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="7553">7553</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7554">7554</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7555">7555</a> </td> <td class="c3" > 307 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7555-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1105 </td> <td class="s"> _logEvent($this, "Trying to read from gnuplot (suffix $suffix)") if $this->{options}{tee}; </td> </tr> <tr> <td class="h" > <a name="7556">7556</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7557">7557</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 945 </td> <td class="s"> my $terminal = $this->{options}{terminal}; </td> </tr> <tr> <td class="h" > <a name="7558">7558</a> </td> <td class="c3" > 307 </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7558-1"> 100 </a> </td> <td >   </td> <td >   </td> <td > 2230 </td> <td class="s"> my $delay = (($this->{wait} // 0) + 0) || 10; </td> </tr> <tr> <td class="h" > <a name="7559">7559</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 671 </td> <td class="s"> my $fromerr = ''; </td> </tr> <tr> <td class="h" > <a name="7560">7560</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7561">7561</a> </td> <td class="c3" > 307 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7561-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1028 </td> <td class="s"> if($this->{"echobuffer-$suffix"}) { </td> </tr> <tr> <td class="h" > <a name="7562">7562</a> </td> <td class="c0" > <a href="#7563"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $fromerr = $this->{"echobuffer-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7563">7563</a> </td> <td class="c0" > <a href="# "> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $this->{"echobuffer-$suffix"} = ""; </td> </tr> <tr> <td class="h" > <a name="7564">7564</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7565">7565</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7566">7566</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 559 </td> <td class="s"> my $subproc_gone = 0 ; </td> </tr> <tr> <td class="h" > <a name="7567">7567</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7568">7568</a> </td> <td class="c3" > 307 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7568-1"> 0 </a> </td> <td >   </td> <td > 3272 </td> <td class="s"> local($SIG{PIPE}) = sub { $subproc_gone = 1; }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > <a href="#7592"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7569">7569</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7570">7570</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> do </td> </tr> <tr> <td class="h" > <a name="7571">7571</a> </td> <td class="c3" > 307 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7571-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 607 </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7572">7572</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if no data received in a few seconds, the gnuplot </td> </tr> <tr> <td class="h" > <a name="7573">7573</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # process is stuck. This usually happens if the gnuplot </td> </tr> <tr> <td class="h" > <a name="7574">7574</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # process is not in a command mode, but in a </td> </tr> <tr> <td class="h" > <a name="7575">7575</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # data-receiving mode. I'm careful to avoid this </td> </tr> <tr> <td class="h" > <a name="7576">7576</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # situation, but bugs in this module and/or in gnuplot </td> </tr> <tr> <td class="h" > <a name="7577">7577</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # itself can make this happen </td> </tr> <tr> <td class="h" > <a name="7578">7578</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="7579">7579</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Note that the nice asynchronous part of this loop won't </td> </tr> <tr> <td class="h" > <a name="7580">7580</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # work on Microsoft Windows, since that OS doesn't have a </td> </tr> <tr> <td class="h" > <a name="7581">7581</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # working asynchronous read, and can_read doesn't work </td> </tr> <tr> <td class="h" > <a name="7582">7582</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # either. </td> </tr> <tr> <td class="h" > <a name="7583">7583</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7584">7584</a> </td> <td class="c3" > 325 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7584-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7584-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 2773 </td> <td class="s"> if( $MS_io_braindamage or </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7585">7585</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $this->{"errSelector-$suffix"}->can_read($notimeout ? undef : $delay ) </td> </tr> <tr> <td class="h" > <a name="7586">7586</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) </td> </tr> <tr> <td class="h" > <a name="7587">7587</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7588">7588</a> </td> <td class="c3" > 324 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 522629 </td> <td class="s"> my $byte; </td> </tr> <tr> <td class="h" > <a name="7589">7589</a> </td> <td class="c3" > 324 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7589-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 3845 </td> <td class="s"> sysread $pipeerr, $byte, ($MS_io_braindamage ? 1 : 100); </td> </tr> <tr> <td class="h" > <a name="7590">7590</a> </td> <td class="c3" > 324 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1120 </td> <td class="s"> $fromerr .= $byte; </td> </tr> <tr> <td class="h" > <a name="7591">7591</a> </td> <td class="c3" > 324 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7591-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7591-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 12217 </td> <td class="s"> if($byte eq \004 or $byte eq \000 or !length($byte)) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7592">7592</a> </td> <td class="c0" > <a href="#7611"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $subproc_gone = 1; </td> </tr> <tr> <td class="h" > <a name="7593">7593</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7594">7594</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7595">7595</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else </td> </tr> <tr> <td class="h" > <a name="7596">7596</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7597">7597</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7597-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1001714 </td> <td class="s"> _logEvent($this, "Gnuplot $suffix read timed out") if $this->{options}{tee}; </td> </tr> <tr> <td class="h" > <a name="7598">7598</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 24 </td> <td class="s"> $this->{"stuck-$suffix"} = 1; </td> </tr> <tr> <td class="h" > <a name="7599">7599</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 46 </td> <td class="s"> kill 'INT', $this->{"pid-$suffix"}; </td> </tr> <tr> <td class="h" > <a name="7600">7600</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 19 </td> <td class="s"> barf <<"EOM"; </td> </tr> <tr> <td class="h" > <a name="7601">7601</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Hmmm, my $suffix Gnuplot process didn't respond for $delay seconds. </td> </tr> <tr> <td class="h" > <a name="7602">7602</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> I've kicked it with an interrupt signal, which should help with the </td> </tr> <tr> <td class="h" > <a name="7603">7603</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> next thing you try to do. If you expect slow response from gnuplot, </td> </tr> <tr> <td class="h" > <a name="7604">7604</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> you can adjust the timeout with the "wait" terminal option. </td> </tr> <tr> <td class="h" > <a name="7605">7605</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOM </td> </tr> <tr> <td class="h" > <a name="7606">7606</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7607">7607</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } until ($fromerr =~ m/^$checkpoint/ms or $subproc_gone); </td> </tr> <tr> <td class="h" > <a name="7608">7608</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7609">7609</a> </td> <td class="c3" > 306 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7609-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 901 </td> <td class="s"> if($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="7610">7610</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Fix newline braindamage too </td> </tr> <tr> <td class="h" > <a name="7611">7611</a> </td> <td class="c0" > <a href="#7615"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $fromerr =~ s/\r\n/\n/g; </td> </tr> <tr> <td class="h" > <a name="7612">7612</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7613">7613</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7614">7614</a> </td> <td class="c3" > 306 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7614-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 634 </td> <td class="s"> if($subproc_gone) { </td> </tr> <tr> <td class="h" > <a name="7615">7615</a> </td> <td class="c0" > <a href="#7616"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> _killGnuplot($this, undef, 1); </td> </tr> <tr> <td class="h" > <a name="7616">7616</a> </td> <td class="c0" > <a href="#7627"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "PDL::Graphics::Gnuplot: the gnuplot process seems to have died.\n"; </td> </tr> <tr> <td class="h" > <a name="7617">7617</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7618">7618</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7619">7619</a> </td> <td class="c3" > 306 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7619-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1136 </td> <td class="s"> _logEvent($this, "Read string '$fromerr' from gnuplot $suffix process") if $this->{options}{tee}; </td> </tr> <tr> <td class="h" > <a name="7620">7620</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7621">7621</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Discard prompt-and-command lines up to the last prompt seen. </td> </tr> <tr> <td class="h" > <a name="7622">7622</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is necessary for MS Windows support: MS Windows doesn't have </td> </tr> <tr> <td class="h" > <a name="7623">7623</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # a notion of a tty versus other kind of pipe, so gnuplot always </td> </tr> <tr> <td class="h" > <a name="7624">7624</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # prints prompts and echoes commands. Since there isn't much in the </td> </tr> <tr> <td class="h" > <a name="7625">7625</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # way of error syntax, we might miss a few errors this way. Oh well. </td> </tr> <tr> <td class="h" > <a name="7626">7626</a> </td> <td class="c3" > 306 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7626-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 897 </td> <td class="s"> if($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="7627">7627</a> </td> <td class="c0" > <a href="#7628"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $fromerr =~ s/[\s\n\r]*(gnu|multi)plot\>[^\n\r]*$//msg; </td> </tr> <tr> <td class="h" > <a name="7628">7628</a> </td> <td class="c0" > <a href="#7647"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $fromerr =~ s/[\s\n\r]*input data \(\'e\' ends\) \>[^\n\r]*$//msg; </td> </tr> <tr> <td class="h" > <a name="7629">7629</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7630">7630</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7631">7631</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Strip the checkpoint message. </td> </tr> <tr> <td class="h" > <a name="7632">7632</a> </td> <td class="c3" > 306 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 20879 </td> <td class="s"> $fromerr =~ s/\s*(.*?)\s*$checkpoint.*$/$1/ms; </td> </tr> <tr> <td class="h" > <a name="7633">7633</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7634">7634</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Replace non-printable ASCII characters with '?' </td> </tr> <tr> <td class="h" > <a name="7635">7635</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (preserve ^I [tab], ^J [newline], and ^M [return]) </td> </tr> <tr> <td class="h" > <a name="7636">7636</a> </td> <td class="c3" > 306 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1379 </td> <td class="s"> $fromerr =~ s/[\000-\010\013-\014\016-\037\200-\377]/\?/g; </td> </tr> <tr> <td class="h" > <a name="7637">7637</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7638">7638</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Find, report, and strip warnings. This is complicated by the fact </td> </tr> <tr> <td class="h" > <a name="7639">7639</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # that some warnings come with a line specifier and others don't. </td> </tr> <tr> <td class="h" > <a name="7640">7640</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7641">7641</a> </td> <td class="c3" > 306 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7641-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 3560 </td> <td class="s"> WARN: while( $fromerr =~ m/^(\s*(line \d+\:\s*)?[wW]arning\:.*)$/m or </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7642">7642</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $fromerr =~ m/$graphics_re/ or </td> </tr> <tr> <td class="h" > <a name="7643">7643</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $fromerr =~ m/^Populating font family aliases took/m # CED - Quicktime on MacOS Catalina throws a warning marked as an error. Stupid. </td> </tr> <tr> <td class="h" > <a name="7644">7644</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) { </td> </tr> <tr> <td class="h" > <a name="7645">7645</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7645-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s"> if ($2) { </td> </tr> <tr> <td class="h" > <a name="7646">7646</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # it's a warning with a line specifier. Break off two more lines before it. </td> </tr> <tr> <td class="h" > <a name="7647">7647</a> </td> <td class="c0" > <a href="#7648"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7647-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> last WARN unless($fromerr =~ s/^((gnu|multi)plot\>.*\n\s*\^\s*\n\s*(line \d+\:\s*)?[wW]arning\:.*(\n|$))//m); </td> </tr> <tr> <td class="h" > <a name="7648">7648</a> </td> <td class="c0" > <a href="#7649"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $a = $1; </td> </tr> <tr> <td class="h" > <a name="7649">7649</a> </td> <td class="c0" > <a href="#7650"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $a =~ s/^\s*line \d+\:/Gnuplot:/m; </td> </tr> <tr> <td class="h" > <a name="7650">7650</a> </td> <td class="c0" > <a href="#7662"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7650-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> carp $a if($printwarnings); </td> </tr> <tr> <td class="h" > <a name="7651">7651</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7652">7652</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 13 </td> <td class="s"> $fromerr =~ s/$graphics_re//; </td> </tr> <tr> <td class="h" > <a name="7653">7653</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7653-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 21 </td> <td class="s"> last WARN unless $fromerr =~ s/^(\s*(line \d+\:\s*)?[wW](arning\:.*(\n|$)))//m; </td> </tr> <tr> <td class="h" > <a name="7654">7654</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7654-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 497 </td> <td class="s"> carp "Gnuplot w$3\n" if($printwarnings); </td> </tr> <tr> <td class="h" > <a name="7655">7655</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7656">7656</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7657">7657</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7658">7658</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7659">7659</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Anything else is an error -- except on Microsoft Windows where we </td> </tr> <tr> <td class="h" > <a name="7660">7660</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # get additional chaff on the channel. Try to take it out. </td> </tr> <tr> <td class="h" > <a name="7661">7661</a> </td> <td class="c3" > 306 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7661-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 682 </td> <td class="s"> if($MS_io_braindamage) { </td> </tr> <tr> <td class="h" > <a name="7662">7662</a> </td> <td class="c0" > <a href="#7679"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> $fromerr =~ s/^\s*Terminal type set to \'[^\']*\'.*Options are \'[^\']*\'//s; </td> </tr> <tr> <td class="h" > <a name="7663">7663</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7664">7664</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Hack to avoid spurious the pdfcairo errors in MacOS 10.5 - strip out obsolete-function errors. </td> </tr> <tr> <td class="h" > <a name="7665">7665</a> </td> <td class="c3" > 306 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7665-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 1448 </td> <td class="s"> while( $fromerr =~ s/^.*obsolete\s*function.*system\s*performance.\s*//s or </td> </tr> <tr> <td class="h" > <a name="7666">7666</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $fromerr =~ s/^.*Populating font family aliases took.*cost\.//s </td> </tr> <tr> <td class="h" > <a name="7667">7667</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) { </td> </tr> <tr> <td class="h" > <a name="7668">7668</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # do nothing </td> </tr> <tr> <td class="h" > <a name="7669">7669</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7670">7670</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7671">7671</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7672">7672</a> </td> <td class="c3" > 306 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7672-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7672-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 2379 </td> <td class="s"> if((!$ignore_errors) and (($fromerr =~ m/^\s+\^\s*$/ms or $fromerr=~ m/^\s*line/ms) or </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7673">7673</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # This is really stupid -- many error messages from gnuplot aren't labeled as such, so we can't mark </td> </tr> <tr> <td class="h" > <a name="7674">7674</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # them as errors. Try some common keywords for genuine error messages. </td> </tr> <tr> <td class="h" > <a name="7675">7675</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $fromerr =~ m/(fail(ed|s)?)|(error)|(expected \w+ driver)/io </td> </tr> <tr> <td class="h" > <a name="7676">7676</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) </td> </tr> <tr> <td class="h" > <a name="7677">7677</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) { </td> </tr> <tr> <td class="h" > <a name="7678">7678</a> </td> <td class="c3" > 1 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7678-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s"> if($this->{early_gnuplot}) { </td> </tr> <tr> <td class="h" > <a name="7679">7679</a> </td> <td class="c0" > <a href="#7741"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> barf "PDL::Graphics::Gnuplot: ERROR: the deprecated pre-v$gnuplot_dep_v gnuplot backend issued an error:\n$fromerr\n"; </td> </tr> <tr> <td class="h" > <a name="7680">7680</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7681">7681</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s"> barf "PDL::Graphics::Gnuplot: ERROR: the gnuplot backend issued an error:\n$fromerr\n"; </td> </tr> <tr> <td class="h" > <a name="7682">7682</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7683">7683</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7684">7684</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7685">7685</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # strip whitespace </td> </tr> <tr> <td class="h" > <a name="7686">7686</a> </td> <td class="c3" > 305 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1668 </td> <td class="s"> $fromerr =~ s/^\s*//s; </td> </tr> <tr> <td class="h" > <a name="7687">7687</a> </td> <td class="c3" > 305 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1090 </td> <td class="s"> $fromerr =~ s/\s*$//s; </td> </tr> <tr> <td class="h" > <a name="7688">7688</a> </td> <td class="c3" > 305 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 8030 </td> <td class="s"> return $fromerr; </td> </tr> <tr> <td class="h" > <a name="7689">7689</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7690">7690</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7691">7691</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7692">7692</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Get gnuplot to report its own supported feature-set. </td> </tr> <tr> <td class="h" > <a name="7693">7693</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="7694">7694</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # NOTE this needs to be fixed-up to just copy the featuresets from Alien::Gnuplot! </td> </tr> <tr> <td class="h" > <a name="7695">7695</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7696">7696</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _getGnuplotFeatures </td> </tr> <tr> <td class="h" > <a name="7697">7697</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7698">7698</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # I could use qx{} to talk to gnuplot here, but I don't want to use a </td> </tr> <tr> <td class="h" > <a name="7699">7699</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # tty. gnuplot messes with the tty settings where it should NOT. For example </td> </tr> <tr> <td class="h" > <a name="7700">7700</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # it turns on the local echo </td> </tr> <tr> <td class="h" > <a name="7701">7701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7702">7702</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7702-1"> 3 </a> </td> <td >   </td> <td > 7 </td> <td class="s"> my %featureSet; </td> </tr> <tr> <td class="h" > <a name="7703">7703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7704">7704</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # first, I run 'gnuplot --help' to extract all the cmdline options as features </td> </tr> <tr> <td class="h" > <a name="7705">7705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7706">7706</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 5 </td> <td class="s"> my $in = ''; </td> </tr> <tr> <td class="h" > <a name="7707">7707</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 5 </td> <td class="s"> my $out = ''; </td> </tr> <tr> <td class="h" > <a name="7708">7708</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s"> my $err = ''; </td> </tr> <tr> <td class="h" > <a name="7709">7709</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 5 </td> <td class="s"> eval{ IPC::Run::run([ $Alien::Gnuplot::executable, "--help"], \$in, \$out, \$err) }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 48 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7710">7710</a> </td> <td class="c3" > 3 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7710-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 42360 </td> <td class="s"> barf $@ if $@; </td> </tr> <tr> <td class="h" > <a name="7711">7711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7712">7712</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 116 </td> <td class="s"> foreach ( "$out\n$err\n" =~ /--([a-zA-Z0-9_]+)/g ) </td> </tr> <tr> <td class="h" > <a name="7713">7713</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7714">7714</a> </td> <td class="c3" > 15 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 170 </td> <td class="s"> $featureSet{$_} = 1; </td> </tr> <tr> <td class="h" > <a name="7715">7715</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7716">7716</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7717">7717</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7718">7718</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # then I try to set a square aspect ratio for 3D to see if it works </td> </tr> <tr> <td class="h" > <a name="7719">7719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7720">7720</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s"> my $in = <<EOM; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 15 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 20 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7721">7721</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> set view equal </td> </tr> <tr> <td class="h" > <a name="7722">7722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> exit </td> </tr> <tr> <td class="h" > <a name="7723">7723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> EOM </td> </tr> <tr> <td class="h" > <a name="7724">7724</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s"> my $out = ''; </td> </tr> <tr> <td class="h" > <a name="7725">7725</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 40 </td> <td class="s"> my $err = ''; </td> </tr> <tr> <td class="h" > <a name="7726">7726</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7727">7727</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7728">7728</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s"> eval{ IPC::Run::run([ $Alien::Gnuplot::executable ], \$in, \$out, \$err) }; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 48 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7729">7729</a> </td> <td class="c3" > 3 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7729-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 49050 </td> <td class="s"> barf $@ if $@; </td> </tr> <tr> <td class="h" > <a name="7730">7730</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7731">7731</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # no output if works; some output if error </td> </tr> <tr> <td class="h" > <a name="7732">7732</a> </td> <td class="c3" > 3 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7732-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7732-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 92 </td> <td class="s"> $featureSet{equal_3d} = 1 unless ($out || $err); </td> </tr> <tr> <td class="h" > <a name="7733">7733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7734">7734</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7735">7735</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7736">7736</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 101 </td> <td class="s"> return %featureSet; </td> </tr> <tr> <td class="h" > <a name="7737">7737</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7738">7738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7739">7739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _logEvent </td> </tr> <tr> <td class="h" > <a name="7740">7740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7741">7741</a> </td> <td class="c0" > <a href="#7742"> 0 </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7741-1"> 0 </a> </td> <td >   </td> <td > 0 </td> <td class="s"> my $this = shift; </td> </tr> <tr> <td class="h" > <a name="7742">7742</a> </td> <td class="c0" > <a href="#7744"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $event = shift; </td> </tr> <tr> <td class="h" > <a name="7743">7743</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7744">7744</a> </td> <td class="c0" > <a href="#7746"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7744-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> return unless $this->{options}{tee}; # only log when asked. </td> </tr> <tr> <td class="h" > <a name="7745">7745</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7746">7746</a> </td> <td class="c0" > <a href="#7747"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> my $t1 = tv_interval( $this->{t0}, [gettimeofday] ); </td> </tr> <tr> <td class="h" > <a name="7747">7747</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> printf STDERR "==== PDL::Graphics::Gnuplot t=%.4f: %s\n", $t1, $event; </td> </tr> <tr> <td class="h" > <a name="7748">7748</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7749">7749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7750">7750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7751">7751</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7752">7752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Helper routine detects method call vs. function call </td> </tr> <tr> <td class="h" > <a name="7753">7753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # syntax, and initializes the global object if necessary. </td> </tr> <tr> <td class="h" > <a name="7754">7754</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="7755">7755</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _obj_or_global { </td> </tr> <tr> <td class="h" > <a name="7756">7756</a> </td> <td class="c3" > 198 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7756-1"> 198 </a> </td> <td >   </td> <td > 552 </td> <td class="s"> my $arglist = shift; </td> </tr> <tr> <td class="h" > <a name="7757">7757</a> </td> <td class="c3" > 198 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 366 </td> <td class="s"> my $this; </td> </tr> <tr> <td class="h" > <a name="7758">7758</a> </td> <td class="c3" > 198 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7758-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1038 </td> <td class="s"> if( $arglist->[0]->$_isa("PDL::Graphics::Gnuplot") ) { </td> </tr> <tr> <td class="h" > <a name="7759">7759</a> </td> <td class="c3" > 193 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3939 </td> <td class="s"> $this = shift @$arglist; </td> </tr> <tr> <td class="h" > <a name="7760">7760</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="7761">7761</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 77 </td> <td class="s"> undef $@; </td> </tr> <tr> <td class="h" > <a name="7762">7762</a> </td> <td class="c3" > 5 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7762-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 18 </td> <td class="s"> unless( $globalPlot->$_isa("PDL::Graphics::Gnuplot") ) { </td> </tr> <tr> <td class="h" > <a name="7763">7763</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s"> undef $@; </td> </tr> <tr> <td class="h" > <a name="7764">7764</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6 </td> <td class="s"> $globalPlot = new("PDL::Graphics::Gnuplot") ; </td> </tr> <tr> <td class="h" > <a name="7765">7765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7766">7766</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 103 </td> <td class="s"> $globalPlot->{options}{globalPlot} = 1; </td> </tr> <tr> <td class="h" > <a name="7767">7767</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 22 </td> <td class="s"> $this = $globalPlot; </td> </tr> <tr> <td class="h" > <a name="7768">7768</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7769">7769</a> </td> <td class="c3" > 198 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 671 </td> <td class="s"> return $this; </td> </tr> <tr> <td class="h" > <a name="7770">7770</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7771">7771</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7772">7772</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7773">7773</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7774">7774</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### Prefrobnicators - preprocess data before plotting, for custom plot styles </td> </tr> <tr> <td class="h" > <a name="7775">7775</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### </td> </tr> <tr> <td class="h" > <a name="7776">7776</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### Currently there is only one - used for FITS image plotting. It's </td> </tr> <tr> <td class="h" > <a name="7777">7777</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### necessary because FITS images often have nonlinear mappings </td> </tr> <tr> <td class="h" > <a name="7778">7778</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ### between pixel and scientific coordinates. </td> </tr> <tr> <td class="h" > <a name="7779">7779</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7780">7780</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _make_fits_hdr { </td> </tr> <tr> <td class="h" > <a name="7781">7781</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7781-1"> 3 </a> </td> <td >   </td> <td > 1105 </td> <td class="s"> my ($x, $y, $x_pix, $y_pix, $x_min, $y_min, $x_max, $y_max, $x_type, $y_type, $x_unit, $y_unit) = @_; </td> </tr> <tr> <td class="h" > <a name="7782">7782</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="7783">7783</a> </td> <td class="c3" > 3 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 38 </td> <td class="s"> NAXIS=>2, </td> </tr> <tr> <td class="h" > <a name="7784">7784</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> NAXIS1=> $x, NAXIS2=> $y, </td> </tr> <tr> <td class="h" > <a name="7785">7785</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> CRPIX1=> $x_pix, CRPIX2=> $y_pix, </td> </tr> <tr> <td class="h" > <a name="7786">7786</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> CRVAL1=> $x_min, CRVAL2=> $y_min, </td> </tr> <tr> <td class="h" > <a name="7787">7787</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> CDELT1=> ($x_max-$x_min)/$x, </td> </tr> <tr> <td class="h" > <a name="7788">7788</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> CDELT2=> ($y_max-$y_min)/$y, </td> </tr> <tr> <td class="h" > <a name="7789">7789</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> CTYPE1=> $x_type, CTYPE2=> $y_type, </td> </tr> <tr> <td class="h" > <a name="7790">7790</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> CUNIT1=> $x_unit, CUNIT2=> $x_unit </td> </tr> <tr> <td class="h" > <a name="7791">7791</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> }; </td> </tr> <tr> <td class="h" > <a name="7792">7792</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7793">7793</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7794">7794</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ############################## </td> </tr> <tr> <td class="h" > <a name="7795">7795</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # _with_fits_prefrobnicator </td> </tr> <tr> <td class="h" > <a name="7796">7796</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="7797">7797</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # We support a "with fits" image style that produces output in scientific </td> </tr> <tr> <td class="h" > <a name="7798">7798</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # coordinates from a FITS file. Ideally, we would simply produce an (x,y) grid </td> </tr> <tr> <td class="h" > <a name="7799">7799</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # that supplies scientific coordinates for each pixel -- but that doesn't work </td> </tr> <tr> <td class="h" > <a name="7800">7800</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # in the general case due to shortcomings with gnuplot itself: the three-element </td> </tr> <tr> <td class="h" > <a name="7801">7801</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # tuple form of "with image" only works for affine transformations between </td> </tr> <tr> <td class="h" > <a name="7802">7802</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # pixel coordinates and scientific plane coordinates. </td> </tr> <tr> <td class="h" > <a name="7803">7803</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="7804">7804</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _with_fits_prefrobnicator { </td> </tr> <tr> <td class="h" > <a name="7805">7805</a> </td> <td class="c3" > 6 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7805-1"> 6 </a> </td> <td >   </td> <td > 18 </td> <td class="s"> my ($with, $this, $chunk, @data ) = @_; </td> </tr> <tr> <td class="h" > <a name="7806">7806</a> </td> <td class="c3" > 6 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7806-1"> 1 </a> </td> <td >   </td> <td > 707 </td> <td class="s"> eval "use PDL::Transform"; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#-2"> 1 </a> </td> <td >   </td> <td > 31 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#-3"> 1 </a> </td> <td >   </td> <td > 4 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#-4"> 1 </a> </td> <td >   </td> <td > 32 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#-5"> 1 </a> </td> <td >   </td> <td > 6 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#-6"> 1 </a> </td> <td >   </td> <td > 2 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 9 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 30 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 9 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 58 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7807">7807</a> </td> <td class="c3" > 6 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7807-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1750 </td> <td class="s"> barf "PDL::Graphics::Gnuplot: couldn't load PDL::Transform for 'with fits' option: $@" if $@; </td> </tr> <tr> <td class="h" > <a name="7808">7808</a> </td> <td class="c3" > 6 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7808-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 21 </td> <td class="s"> barf "PDL::Graphics::Gnuplot: 'with fits' special option requires a single FITS image\n" if @data != 1; </td> </tr> <tr> <td class="h" > <a name="7809">7809</a> </td> <td class="c3" > 6 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 14 </td> <td class="s"> my $data = $data[0]; </td> </tr> <tr> <td class="h" > <a name="7810">7810</a> </td> <td class="c3" > 6 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7810-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7810-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 87 </td> <td class="s"> barf "PDL::Graphics::Gnuplot: 'with fits' needs an image, RGB triplet, or RGBA quad\n" unless $data->ndims==2 || ($data->ndims==3 && ($data->dim(2)==4 || $data->dim(2)==3 || $data->dim(2)==1)); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-3"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7811">7811</a> </td> <td class="c3" > 6 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 25 </td> <td class="s"> my $h = $data->gethdr; </td> </tr> <tr> <td class="h" > <a name="7812">7812</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> barf "PDL::Graphics::Gnuplot: 'with fits' expected a FITS header\n" </td> </tr> <tr> <td class="h" > <a name="7813">7813</a> </td> <td class="c3" > 6 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7813-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7813-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 155 </td> <td class="s"> unless $h && ref $h eq 'HASH' && !grep !$h->{$_}, qw(NAXIS NAXIS1 NAXIS2); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 66 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7814">7814</a> </td> <td class="c3" > 5 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7814-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 538 </td> <td class="s"> if (my $resample = $chunk->{options}{resample}) { </td> </tr> <tr> <td class="h" > <a name="7815">7815</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now find the dataspace boundaries for the map, so we don't waste pixels. </td> </tr> <tr> <td class="h" > <a name="7816">7816</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7816-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 26 </td> <td class="s"> my ($xmin, $xmax) = @{$this->{options}{xrange}||[]}; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 20 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7817">7817</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7817-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 3 </td> <td class="s"> my ($ymin, $ymax) = @{$this->{options}{yrange}||[]}; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 17 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7818">7818</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7818-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7818-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 8 </td> <td class="s"> unless (defined($xmin) && defined($xmax) && defined($ymin) && defined($ymax)) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-2"> 33 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#-3"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7819">7819</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12 </td> <td class="s"> my $pix_corners = pdl([0,0],[0,1],[1,0],[1,1]) * pdl($data->dim(0),$data->dim(1)) - 0.5; </td> </tr> <tr> <td class="h" > <a name="7820">7820</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 402 </td> <td class="s"> my $corners = $pix_corners->apply(t_fits($h)); </td> </tr> <tr> <td class="h" > <a name="7821">7821</a> </td> <td class="c3" > 2 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7821-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 6235 </td> <td class="s"> $xmin //= $corners->slice("(0)")->min; </td> </tr> <tr> <td class="h" > <a name="7822">7822</a> </td> <td class="c3" > 2 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7822-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 171 </td> <td class="s"> $xmax //= $corners->slice("(0)")->max; </td> </tr> <tr> <td class="h" > <a name="7823">7823</a> </td> <td class="c3" > 2 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7823-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 58 </td> <td class="s"> $ymin //= $corners->slice("(1)")->min; </td> </tr> <tr> <td class="h" > <a name="7824">7824</a> </td> <td class="c3" > 2 </td> <td >   </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7824-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 66 </td> <td class="s"> $ymax //= $corners->slice("(1)")->max; </td> </tr> <tr> <td class="h" > <a name="7825">7825</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7826">7826</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7826-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 91 </td> <td class="s"> ($xmin, $xmax) = ($xmax, $xmin) if $xmin > $xmax; </td> </tr> <tr> <td class="h" > <a name="7827">7827</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7827-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 98 </td> <td class="s"> ($ymin, $ymax) = ($ymax, $ymin) if $ymin > $ymax; </td> </tr> <tr> <td class="h" > <a name="7828">7828</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 88 </td> <td class="s"> my $d1 = $data->double; </td> </tr> <tr> <td class="h" > <a name="7829">7829</a> </td> <td class="c3" > 2 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7829-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 65 </td> <td class="s"> $d1->sethdr($h) if !$d1->gethdr; # ie converted and no hdrcpy </td> </tr> <tr> <td class="h" > <a name="7830">7830</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 10 </td> <td class="s"> $h = _make_fits_hdr(@$resample, 0.5, 0.5, $xmin, $ymin, $xmax, $ymax, @$h{qw(CTYPE1 CTYPE2 CUNIT1 CUNIT2)}); </td> </tr> <tr> <td class="h" > <a name="7831">7831</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 101 </td> <td class="s"> $data = $d1->map( t_identity(), $h, {method=>'h'} ); # Rescale into coordinates proportional to the scientific ones </td> </tr> <tr> <td class="h" > <a name="7832">7832</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7833">7833</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Now update plot options to set the axis labels, if they haven't been updated already... </td> </tr> <tr> <td class="h" > <a name="7834">7834</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1982634 </td> <td class="s"> for ([qw(xlabel CTYPE1 X CUNIT1 (pixels))], </td> </tr> <tr> <td class="h" > <a name="7835">7835</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> [qw(ylabel CTYPE2 Y CUNIT2 (pixels))], </td> </tr> <tr> <td class="h" > <a name="7836">7836</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> [qw(cblabel BTYPE Value BUNIT), ''], </td> </tr> <tr> <td class="h" > <a name="7837">7837</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ) { </td> </tr> <tr> <td class="h" > <a name="7838">7838</a> </td> <td class="c3" > 15 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 828 </td> <td class="s"> my ($label, $type, $typel, $unit, $unitdef) = @$_; </td> </tr> <tr> <td class="h" > <a name="7839">7839</a> </td> <td class="c3" > 15 </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7839-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 68 </td> <td class="s"> next if defined $this->{options}{$label}; </td> </tr> <tr> <td class="h" > <a name="7840">7840</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $this->{tmp_options}{$label} = [join(" ", </td> </tr> <tr> <td class="h" > <a name="7841">7841</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $h->{$type} || $typel, </td> </tr> <tr> <td class="h" > <a name="7842">7842</a> </td> <td class="c3" > 15 </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--branch.html#7842-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--condition.html#7842-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 141 </td> <td class="s"> $h->{$unit} ? "($h->{$unit})" : $unitdef </td> </tr> <tr> <td class="h" > <a name="7843">7843</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> )]; </td> </tr> <tr> <td class="h" > <a name="7844">7844</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7845">7845</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 343 </td> <td class="s"> $with->[0] = 'image'; </td> </tr> <tr> <td class="h" > <a name="7846">7846</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 77 </td> <td class="s"> (ndcoords(map $data->dim($_), 0,1)->apply(t_fits($h, {ignore_rgb=>1}))->mv(0,-1)->dog, $data); </td> </tr> <tr> <td class="h" > <a name="7847">7847</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7848">7848</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7849">7849</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ########## </td> </tr> <tr> <td class="h" > <a name="7850">7850</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # Helper routine to escape backslashes and such for gnuplot double-quote strings </td> </tr> <tr> <td class="h" > <a name="7851">7851</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub quote_escape { </td> </tr> <tr> <td class="h" > <a name="7852">7852</a> </td> <td class="c3" > 111 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7852-1"> 111 </a> </td> <td class="c0" > <a href="blib-lib-PDL-Graphics-Gnuplot-pm--subroutine.html#7852-1"> 0 </a> </td> <td > 303 </td> <td class="s"> my $s = shift; </td> </tr> <tr> <td class="h" > <a name="7853">7853</a> </td> <td class="c3" > 111 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 327 </td> <td class="s"> $s =~ s/\\/\\\\/g; </td> </tr> <tr> <td class="h" > <a name="7854">7854</a> </td> <td class="c3" > 111 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 222 </td> <td class="s"> $s =~ s/\"/\\\"/g; </td> </tr> <tr> <td class="h" > <a name="7855">7855</a> </td> <td class="c3" > 111 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 296 </td> <td class="s"> $s =~ s/\012/\\n/g; </td> </tr> <tr> <td class="h" > <a name="7856">7856</a> </td> <td class="c3" > 111 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 352 </td> <td class="s"> $s =~ s/\013/\\r/g; </td> </tr> <tr> <td class="h" > <a name="7857">7857</a> </td> <td class="c3" > 111 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 347 </td> <td class="s"> return $s; </td> </tr> <tr> <td class="h" > <a name="7858">7858</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="7859">7859</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7860">7860</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7861">7861</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 COMPATIBILITY </td> </tr> <tr> <td class="h" > <a name="7862">7862</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7863">7863</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Everything should work on all platforms that support Gnuplot and Perl. </td> </tr> <tr> <td class="h" > <a name="7864">7864</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Currently, MacOS, Fedora and Debian Linux, Cygwin, and Microsoft </td> </tr> <tr> <td class="h" > <a name="7865">7865</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Windows (under both Active State Strawberry Perl) have been tested to </td> </tr> <tr> <td class="h" > <a name="7866">7866</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> work, although the interprocess control link is not as reliable under </td> </tr> <tr> <td class="h" > <a name="7867">7867</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Microsoft Windows as under POSIX systems. Please report successes or </td> </tr> <tr> <td class="h" > <a name="7868">7868</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> failures on other platforms to the authors. A transcript of a failed </td> </tr> <tr> <td class="h" > <a name="7869">7869</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> run with {tee => 1} would be most helpful. </td> </tr> <tr> <td class="h" > <a name="7870">7870</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7871">7871</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 REPOSITORY </td> </tr> <tr> <td class="h" > <a name="7872">7872</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7873">7873</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> L<https://github.com/drzowie/PDL-Graphics-Gnuplot> </td> </tr> <tr> <td class="h" > <a name="7874">7874</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7875">7875</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 AUTHOR </td> </tr> <tr> <td class="h" > <a name="7876">7876</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7877">7877</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Craig DeForest, C<< <craig@deforest.org> >> and Dima Kogan, C<< <dima@secretsauce.net> >> </td> </tr> <tr> <td class="h" > <a name="7878">7878</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7879">7879</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 STILL TO DO </td> </tr> <tr> <td class="h" > <a name="7880">7880</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7881">7881</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="7882">7882</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7883">7883</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item some plot and curve options need better parsing: </td> </tr> <tr> <td class="h" > <a name="7884">7884</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7885">7885</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =over 3 </td> </tr> <tr> <td class="h" > <a name="7886">7886</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7887">7887</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item - labels need attention (plot option labels) </td> </tr> <tr> <td class="h" > <a name="7888">7888</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7889">7889</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> They need to be handled as hashes, not just as array refs. Also, they don't seem to be working with timestamps. </td> </tr> <tr> <td class="h" > <a name="7890">7890</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Further, deeply nested options (e.g. "at" for labels) need attention. </td> </tr> <tr> <td class="h" > <a name="7891">7891</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7892">7892</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="7893">7893</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7894">7894</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =item - new plot styles </td> </tr> <tr> <td class="h" > <a name="7895">7895</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7896">7896</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> The "boxplot" plot style (new to gnuplot 4.6?) requires a different using </td> </tr> <tr> <td class="h" > <a name="7897">7897</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> syntax and will require some hacking to support. </td> </tr> <tr> <td class="h" > <a name="7898">7898</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7899">7899</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =back </td> </tr> <tr> <td class="h" > <a name="7900">7900</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7901">7901</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 LICENSE AND COPYRIGHT </td> </tr> <tr> <td class="h" > <a name="7902">7902</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7903">7903</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Copyright 2011-2013 Craig DeForest and Dima Kogan </td> </tr> <tr> <td class="h" > <a name="7904">7904</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7905">7905</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> This program is free software; you can redistribute it and/or modify it </td> </tr> <tr> <td class="h" > <a name="7906">7906</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> under the terms of either: the GNU General Public License as published </td> </tr> <tr> <td class="h" > <a name="7907">7907</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> by the Free Software Foundation; or the Perl Artistic License included with </td> </tr> <tr> <td class="h" > <a name="7908">7908</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> the Perl language. </td> </tr> <tr> <td class="h" > <a name="7909">7909</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7910">7910</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> See http://dev.perl.org/licenses/ for more information. </td> </tr> <tr> <td class="h" > <a name="7911">7911</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7912">7912</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="7913">7913</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="7914">7914</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 1; </td> </tr> </table> </body> </html>