gnuplot 4.6
31
<func-name>( <dummy1> {,<dummy2>} ... {,<dummy12>} ) = <expression>
where <expression> is dened in terms of <dummy1> through <dummy12>.
User-dened variable syntax:
<variable-name> = <constant-expression>
Examples:
w = 2
q = floor(tan(pi/2 - 0.1))
f(x) = sin(w*x)
sinc(x) = sin(pi*x)/(pi*x)
delta(t) = (t == 0)
ramp(t) = (t > 0) ? t : 0
min(a,b) = (a < b) ? a : b
comb(n,k) = n!/(k!*(n-k)!)
len3d(x,y,z) = sqrt(x*x+y*y+z*z)
plot f(x) = sin(x*a), a = 0.2, f(x), a = 0.4, f(x)
file = "mydata.inp"
file(n) = sprintf("run_%d.dat",n)
The nal two examples illustrate a user-dened string variable and a user-dened string function.
Note that the variables pi (3.14159...) and NaN (IEEE "Not a Number") are already dened. You can
redene these to something else if you really need to. The original values can be recovered by setting:
NaN = GPVAL_NaN
pi = GPVAL_pi
Other variables may be dened under various gnuplot operations like mousing in interactive terminals or
tting; see gnuplot-dened variables (p. 30) for details.
You can check for existence of a given variable V by the exists("V") expression. For example
a = 10
if (exists("a")) print "a is defined"
if (!exists("b")) print "b is not defined"
Valid names are the same as in most programming languages: they must begin with a letter, but subsequent
characters may be letters, digits, or "
".
Each function denition is made available as a special string-valued variable with the prex ’GPFUN
’.
Example:
set label GPFUN_sinc at graph .05,.95
See show functions (p.116), functions (p.88), gnuplot-dened variables (p.30), macros (p.40),
value (p.28).
Fonts
Gnuplot does not provide any fonts of its own. It relies on external font handling, the details of which
unfortunately vary from one terminal type to another. Brief documentation of font mechanisms that apply
to more than one terminal type is given here. For information on font use by other individual terminals, see
the documentation for that terminal.
Cairo (pdfcairo, pngcairo, epscairo, wxt terminals)
Sorry, this section is under construction. These terminals nd and access fonts using the external fontcong
tool set. Please see the
Converting pdf to powerpoint online - software control dll:C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
www.rasteredge.com
Converting pdf to powerpoint online - software control dll:VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
www.rasteredge.com
32
gnuplot 4.6
fontconfig user manual.
It is usually sucient in gnuplot to request a font by a generic name and size, letting fontcong substitute
asimilar font if necessary. The following will probably all work:
set term pdfcairo font "sans,12"
set term pdfcairo font "Times,12"
set term pdfcairo font "Times-New-Roman,12"
Gd (png, gif, jpeg terminals)
Font handling for the png, gif, and jpeg terminals is done by the external library libgd. Five basic fonts are
provided directly by libgd. These are tiny (5x8 pixels), small (6x12 pixels), medium, (7x13 Bold), large
(8x16) or giant (9x15 pixels). These fonts cannot be scaled or rotated. Use one of these keywords instead
of the font keyword. E.g.
set term png tiny
On most systems libgd also provides access to Adobe Type 1 fonts (*.pfa) and TrueType fonts (*.ttf). You
must give the name of the font le, not the name of the font inside it, in the form "<face> f,<pointsize>g".
<face> is either the full pathname to the font le, or the rst part of a lename in one of the directories
listed in the GDFONTPATH environmental variable. That is, ’set term png font "Face"’ will look for a font
le named either <somedirectory>/Face.ttf or <somedirectory>/Face.pfa. For example, if GDFONTPATH
contains /usr/local/fonts/ttf:/usr/local/fonts/pfa then the following pairs of commands are equivalent
set term png font "arial"
set term png font "/usr/local/fonts/ttf/arial.ttf"
set term png font "Helvetica"
set term png font "/usr/local/fonts/pfa/Helvetica.pfa"
To request a default font size at the same time:
set term png font "arial,11"
Both TrueType and Adobe Type 1 fonts are fully scalable and rotatable. If no specic font is requested in
the "set term" command, gnuplot checks the environmental variable GNUPLOT
DEFAULT
GDFONT to
see if there is a preferred default font.
Postscript (also encapsulated postscript *.eps)
PostScript font handling is done by the printer or viewing program. Gnuplot can create valid PostScript or
encapsulated PostScript (*.eps) even if no fonts at all are installed on your computer. Gnuplot simply refers
to the font by name in the output le, and assumes that the printer or viewing program will know how to
nd or approximate a font by that name.
All PostScript printers or viewers should know about the standard set of Adobe fonts Times-Roman,
Helvetica, Courier, and Symbol. It is likely that many additional fonts are also available, but the specic
set depends on your system or printer conguration. Gnuplot does not know or care about this; the output
*.ps or *.eps les that it creates will simply refer to whatever font names you request.
Thus
set term postscript eps font "Times-Roman,12"
will produce output that is suitable for all printers and viewers.
On the other hand
set term postscript eps font "Garamond-Premier-Pro-Italic"
will produce an output le that contains valid PostScript, but since it refers to a specialized font, only some
printers or viewers will be able to display the specic font that was requested. Most will substitute a dierent
font.
software control dll:Online Convert PowerPoint to PDF file. Best free online export
Then just wait until the conversion from Powerpoint to PDF is complete and download the file Creating a PDF from PPTX/PPT has never been so easy Easy converting!
www.rasteredge.com
software control dll:C# powerpoint - PowerPoint Conversion & Rendering in C#.NET
This PowerPoint document converting library component offers reliable C#.NET PowerPoint document rendering APIs for developers PowerPoint to PDF Conversion.
www.rasteredge.com
gnuplot 4.6
33
However, it is possible to embed a specic font in the output le so that all printers will be able to use it.
This requires that the a suitable font description le is available on your system. Note that some font les
require specic licensing if they are to be embedded in this way. See postscript fontle (p.214) for more
detailed description and examples.
Glossary
Throughout this document an attempt has been made to maintain consistency of nomenclature. This cannot
be wholly successful because as gnuplot has evolved over time, certain command and keyword names have
been adopted that preclude such perfection. This section contains explanations of the way some of these
terms are used.
A "page" or "screen" or "canvas" is the entire area addressable by gnuplot. On a desktop it is a full
window; on a plotter, it is a single sheet of paper; in svga mode it is the full monitor screen.
Ascreen may contain one or more "plots". A plot is dened by an abscissa and an ordinate, although these
need not actually appear on it, as well as the margins and any text written therein.
Aplot contains one "graph". A graph is dened by an abscissa and an ordinate, although these need not
actually appear on it.
Agraph may contain one or more "lines". A line is a single function or data set. "Line" is also a plotting
style. The word will also be usedin sense "a line of text". Presumably the context will remove any ambiguity.
The lines on a graph may have individual names. These may be listed together with a sample of the plotting
style used to represent them in the "key", sometimes also called the "legend".
The word "title" occurs with multiple meanings in gnuplot. In this document, it will always be preceded
by the adjective "plot", "line", or "key" to dierentiate among them. A 2D graph may have up to four
labelled axes. The names of the four axes are "x" for the axis along the bottom border of the plot, "y" for
the axis along the left border, "x2" for the top border, and "y2" for the right border. See axes (p. 73).
A3D graph may have up to three labelled axes { "x", "y" and "z". It is not possible to say where on the
graph any particular axis will fall because you can change the direction from which the graph is seen with
set view.
When discussing data les, the term "record" will be resurrected and used to denote a single line of text
in the le, that is, the characters between newline or end-of-record characters. A "point" is the datum
extracted from a single record. A "datablock" is a set of points from consecutive records, delimited by blank
records. A line, when referred to in the context of a data le, is a subset of a datablock.
Linetypes, colors, and styles
Each gnuplot terminal type provides a set of distinct "linetypes". These may dier in color, in thickness,
in dot/dash pattern, or in some combination of color and dot/dash. The default linetypes for a particular
terminal can be previewed by issuing the test command after setting the terminal type. The pre-dened
colors and dot/dash patterns are not guaranteed to be consistent for all terminal types, but all terminals use
the special linetype -1 to mean a solid line in the primary foreground color (normally black). Most terminals
also recognize the special linetype "bgnd" to mean a solid line in the background color.
You can redene the default linetype properties either interactively or via an initialization le. This allows
you to customize the colors and other properties of the lines used by all gnuplot plotting commands. See
set linetype (p.125).
By default, successive functions or datales plotted by a single commandwill be assignedsuccessive linetypes.
You can override this default sequence by specifying a particular linetype for any function, datale, or plot
element.
Examples:
plot "foo", "bar"
# plot two files using linetypes 1, 2
plot sin(x) linetype 4
# terminal-specific linetype color 4
software control dll:VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET VB.NET PDF- HTML5 PDF Viewer for VB.NET Online Guide for Viewing, Annotating And Converting PDF Document with
www.rasteredge.com
software control dll:C# powerpoint - Convert PowerPoint to PDF in C#.NET
C# PowerPoint - Convert PowerPoint to PDF in C#.NET. Online C# Tutorial for Converting PowerPoint to PDF (.pdf) Document. PowerPoint to PDF Conversion Overview.
www.rasteredge.com
34
gnuplot 4.6
plot sin(x) lt -1
# black
For many terminal types it is also possible to assign user-dened colors using explicit rgb (red, green, blue)
values, named colors, or color values that refer to the current pm3d palette.
Examples:
plot sin(x) lt rgb "violet"
# one of gnuplot’s named colors
plot sin(x) lt rgb "#FF00FF"
# explicit RGB triple in hexadecimal
plot sin(x) lt palette cb -45
# whatever color corresponds to -45
# in the current cbrange of the palette
plot sin(x) lt palette frac 0.3
# fractional value along the palette
See show colornames (p.106), set palette (p.139), cbrange (p.169).
For terminals that support dot/dash patterns, each default linetype has both a dot-dash pattern and a
default color. Gnuplot does not currently provide a mechanism for changing the dot-dash pattern, so if you
want both a particular dash pattern and a particular color you must rst choose a linetype that has the
required dash pattern, then override the default color using the keyword linecolor, abbreviated lc. For
example, the postscript terminal provides a dashed blue line as linetype 3. The plot commands below use
this same dash pattern for three plots, one in blue (the default), another in red (the default for linetype 1),
and a third in gold.
Example:
set term postscript dashed color
plot ’foo’ lt 3, ’baz’ lt 3 linecolor 1, ’bar’ lt 3 lc rgb ’gold’
Colorspec
Many commands allow you to specify a linetype with an explicit color. Terminal-independent color choice
is only possible for terminals that support RGB color or pm3d palettes.
Syntax:
... {linecolor | lc} {<colorspec> | <n>}
... {textcolor | tc} {<colorspec> | {linetype | lt} <n>}
where <colorspec> has one of the following forms:
rgbcolor "colorname"
rgbcolor "#RRGGBB"
rgbcolor variable
# color is read from input file
palette frac <val>
# <val> runs from 0 to 1
palette cb <value>
# <val> lies within cbrange
palette z
variable
# color index is read from input file
The "<n>" is the linetype number the color of which is used, see test (p.174).
"colorname" refers to one of the color names built in to gnuplot. For a list of the available names, see show
colornames (p.106).
"#RRGGBB" is a hexadecimal constant preceded by the "#" symbol. The RRGGBB represents the red,
green, and blue components of the color, each on a scale from 0 - 255. For example, magenta = full-scale
red + full-scale blue would be represented by #FF00FF, which is the hexadecimal representation of (255
<< 16) + (0 << 8) + (255).
The color palette is a linear gradient of colors that smoothly maps a single numerical value onto a particular
color. Two such mappings are always in eect. palette frac maps a fractional value between 0 and 1 onto
the full range of the color palette. palette cb maps the range of the color axis onto the same palette. See
set cbrange (p. 169). See also set colorbox (p.105). You can use either of these to select a constant
color from the current palette.
"palette z" maps the z value of each plot segment or plot element into the cbrange mapping of the palette.
This allows smoothly-varying color along a 3d line or surface. It also allows coloring 2D plots by palette
values read from an extra column of data (not all 2D plot styles allow an extra column).
software control dll:VB.NET PDF Converter Library SDK to convert PDF to other file
This guide give a series of demo code directly for converting MicroSoft Office Word, Excel and PowerPoint document to PDF file in VB.NET application.
www.rasteredge.com
software control dll:VB.NET PowerPoint: Complete PowerPoint Document Conversion in VB.
Converting PowerPoint document to PDF file can be quite simple provided that this VB.NET PowerPoint Converting SDK is correctly installed and utilized.
www.rasteredge.com
gnuplot 4.6
35
Background color
Most terminals now allow you to set an explicit background color for the plot. The special linetype bgnd
will draw in this color, and bgnd is also recognized as a color. Examples:
# This will erase a section of the canvas by writing over it in the
# background color
set term wxt background rgb "gray75"
set object 1 rectangle from x0,y0 to x1,y1 fillstyle solid fillcolor bgnd
# This will draw an "invisible" line along the x axis
plot 0 lt bgnd
Linecolor variable
lc variable tells the program to use the value read from one column of the input data as a linetype index,
and use the color belonging to that linetype. This requires a corresponding additional column in the using
specier. Text colors can be set similarly using tc variable.
Examples:
# Use the third column of data to assign colors to individual points
plot ’data’ using 1:2:3 with points lc variable
# A single data file may contain multiple sets of data, separated by two
# blank lines. Each data set is assigned as index value (see ‘index‘)
# that can be retrieved via the ‘using‘ specifier ‘column(-2)‘.
# See ‘pseudocolumns‘. This example uses to value in column -2 to
# draw each data set in a different line color.
plot ’data’ using 1:2:(column(-2)) with lines lc variable
Rgbcolor variable
Youcan assign a separate color for each data point, line segment, or label inyour plot. lc rgbcolor variable
tells the program to read RGB color information for each line in the data le. This requires a corresponding
additional column in the using specier. The extra column is interpreted as a 24-bit packed RGB triple.
If the value is provided directly in the data le it is easiest to give it as a hexidecimal value (see rgbcolor
(p. 34)). Alternatively, the using specier can contain an expression that evaluates to a 24-bit RGB color
as in the example below. Text colors are similarly set using tc rgbcolor variable.
Example:
# Place colored points in 3D at the x,y,z coordinates corresponding to
# their red, green, and blue components
rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
splot "data" using 1:2:3:(rgb($1,$2,$3)) with points lc rgb variable
Linestyles vs linetypes
Lines can have additional properties such as linewidth. You can associate these various properties, as well
as equivalent properties for point symbols, into user-dened "linestyles" using the command set style line.
Once you have dened a linestyle, you can use it in a plot command to control the appearance of one or
more plot elements.
Whereas linetypes are permanent (they last until you explicitly redene them), linestyles are temporary.
They only last until the next reset of the graphics state.
Examples:
# define a new line style with terminal-independent color cyan,
# linewidth 3, and associated point type 6 (a circle with a dot in it).
set style line 5 lt rgb "cyan" lw 3 pt 6
plot sin(x) with linespoints ls 5
# user-defined line style 5
software control dll:C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
Word in C#.NET. Online C#.NET Tutorial for Converting PDF to Word (.doc/ .docx) Document with .NET XDoc.PDF Library in C#.NET Class.
www.rasteredge.com
software control dll:VB.NET PDF - Convert PDF Online with VB.NET HTML5 PDF Viewer
Word, VB.NET Excel, VB.NET PowerPoint, VB.NET control as well as a powerful online PDF converter. file formats with high quality, support converting PDF to PNG
www.rasteredge.com
36
gnuplot 4.6
Mouse input
Many terminals allow interaction with the current plot using the mouse. Some also support the denition
of hotkeys to activate pre-dened functions by hitting a single key while the mouse focus is in the active
plot window. It is even possible to combine mouse input with batch command scripts, by invoking the
command pause mouse and then using the mouse variables returned by mouse clicking as parameters for
subsequent scripted actions. See bind (p.36) and mouse variables (p.37). See also the command set
mouse (p. 128).
Bind
Syntax:
bind {allwindows} [<key-sequence>] ["<gnuplot commands>"]
bind <key-sequence> ""
reset bind
The bind allows dening or redening a hotkey, i.e. a sequence of gnuplot commands which will be executed
when a certain key or key sequence is pressed while the driver’s window has the input focus. Note that bind
is only available if gnuplot was compiled with mouse support and it is used by all mouse-capable terminals.
Auser-specied binding supersedes any builtin bindings, except that <space> and ’q’ cannot normally be
rebound. For an exception, see bind space (p.37).
Only mouse button 1 can be bound, and only for 2D plots.
Youget the list of all hotkeys by typing show bind or bind or by typing the hotkey ’h’ inthe graph window.
Key bindings are restored to their default state by reset bind.
Note that multikey-bindings with modiers must be given in quotes.
Normally hotkeys are only recognized when the currently active plot window has focus. bind allwindows
<key> ... (short form: bind all <key> ...) causes the binding for <key> to apply to all gnuplot plot
windows, active or not. In this case gnuplot variable MOUSE
KEY
WINDOW is set to the ID of the
originating window, and may be used by the bound command.
Examples:
-set bindings:
bind a "replot"
bind "ctrl-a" "plot x*x"
bind "ctrl-alt-a" ’print "great"’
bind Home "set view 60,30; replot"
bind all Home ’print "This is window ",MOUSE_KEY_WINDOW’
-show bindings:
bind "ctrl-a"
# shows the binding for ctrl-a
bind
# shows all bindings
show bind
# show all bindings
-remove bindings:
bind "ctrl-alt-a" ""
# removes binding for ctrl-alt-a
(note that builtins cannot be removed)
reset bind
# installs default (builtin) bindings
bind!
# deprecated form of "reset bind"
-bind a key to toggle something:
v=0
bind "ctrl-r" "v=v+1;if(v%2)set term x11 noraise; else set term x11 raise"
Modiers (ctrl / alt) are case insensitive, keys not:
software control dll:C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
Turn multiple pages PDF into single jpg files respectively online. Support of converting from any single one PDF page and multiple pages.
www.rasteredge.com
gnuplot 4.6
37
ctrl-alt-a == CtRl-alT-a
ctrl-alt-a != ctrl-alt-A
List of modiers (alt == meta):
ctrl, alt
List of supported special keys:
"BackSpace", "Tab", "Linefeed", "Clear", "Return", "Pause", "Scroll_Lock",
"Sys_Req", "Escape", "Delete", "Home", "Left", "Up", "Right", "Down",
"PageUp", "PageDown", "End", "Begin",
"KP_Space", "KP_Tab", "KP_Enter", "KP_F1", "KP_F2", "KP_F3", "KP_F4",
"KP_Home", "KP_Left", "KP_Up", "KP_Right", "KP_Down", "KP_PageUp",
"KP_PageDown", "KP_End", "KP_Begin", "KP_Insert", "KP_Delete", "KP_Equal",
"KP_Multiply", "KP_Add", "KP_Separator", "KP_Subtract", "KP_Decimal",
"KP_Divide",
"KP_1" - "KP_9", "F1" - "F12"
The following are window events rather than actual keys
"Button1" "Close"
See also help for mouse (p.128).
Bind space
If gnuplot was built with conguration option {enable-raise-console, then typing <space> in the plot window
raises gnuplot’s command window. This hotkey can be changed to ctrl-space by starting gnuplot as ’gnuplot
-ctrlq’, or by setting the XResource ’gnuplot*ctrlq’. See x11 command-line-options (p.230).
Mouse variables
When mousing is active, clicking in the active window will set several user variables that can be accessed
from the gnuplot command line. The coordinates of the mouse at the time of theclick are stored in MOUSE
X
MOUSE
YMOUSE
X2 and MOUSE
Y2. The mouse button clicked, and any meta-keys active at that time,
are stored in MOUSE
BUTTON MOUSE
SHIFT MOUSE
ALT and MOUSE
CTRL. These variables are
set to undened at the start of every plot, and only become dened in the event of a mouse click in the
active plot window. To determine from a script if the mouse has been clicked in the active plot window, it
is sucient to test for any one of these variables being dened.
plot ’something’
pause mouse
if (defined(MOUSE_BUTTON)) call ’something_else’; \
else print "No mouse click."
It is also possible to track keystrokes in the plot window using the mousing code.
plot ’something’
pause mouse keypress
print "Keystroke ", MOUSE_KEY, " at ", MOUSE_X, " ", MOUSE_Y
When pause mouse keypress is terminated by a keypress, then MOUSE
KEY will contain the ascii
character value of the key that was pressed. MOUSE
CHAR will contain the character itself as a string
variable. If the pause command is terminated abnormally (e.g. by ctrl-C or by externally closing the plot
window) then MOUSE
KEY will equal -1.
Note that after a zoom by mouse, you can read the new ranges as GPVAL
X
MIN, GPVAL
X
MAX,
GPVAL
Y
MIN, and GPVAL
Y
MAX, see gnuplot-dened variables (p. 30).
38
gnuplot 4.6
Persist
Many gnuplot terminals (aqua, pm, qt, x11, windows, wxt, ...) open separate display windows on the screen
into which plots are drawn. The persist option tells gnuplot to leave these windows open when the main
program exits. It has no eect on non-interactive terminal output. For example if you issue the command
gnuplot -persist -e ’plot [-5:5] sinh(x)’
gnuplot will opena display window, draw the plot into it, andthen exit, leavingthe display windowcontaining
the plot on the screen. Depending on the terminal type, some mousing operations may still be possible in
the persistent window. However operations like zoom/unzoom that require redrawing the plot are generally
not possible because the main program has already exited.
You can also specify persist or nopersist at the time you set a new terminal type. For example
set term qt persist size 700,500
Plotting
There are three gnuplot commands which actually create a plot: plot, splot and replot. plot generates
2D plots, splot generates 3D plots (actually 2D projections, of course), and replot appends its arguments
to the previous plot or splot and executes the modied command.
Much of the general information about plotting can be found in the discussion of plot; information specic
to 3D can be found in the splot section.
plot operates in either rectangular or polar coordinates { see set polar (p. 144) for details of the latter.
splot operates only in rectangular coordinates, but the set mapping command allows for a few other
coordinate systems to be treated. In addition, the using option allows both plot and splot to treat almost
any coordinate system you’d care to dene.
plot also lets you use each of the four borders { x (bottom), x2 (top), y (left) and y2 (right) { as an
independent axis. The axes option lets you choose which pair of axes a given function or data set is plotted
against. A full complement of set commands exists to give you complete control over the scales and labelling
of each axis. Some commands have the name of an axis built into their names, such as set xlabel. Other
commands have one or more axis names as options, such as set logscale xy. Commands and options
controlling the z axis have no eect on 2D graphs.
splot can plot surfaces and contours in addition to points and/or lines. See set isosamples (p.119) for
information about dening the grid for a 3D function. See splot datale (p. 170) for information about
the requisite le structure for 3D data values, set contour (p. 106) and set cntrparam (p. 104) for
information about contours.
In splot, control over the scales and labels of the axes are the same as with plot, except that commands
and options controlling the x2 and y2 axes have no eect whereas of course those controlling the z axis do
take eect.
Start-up (initialization)
When gnuplot is run, it rst looks for a system-wide initialization le named gnuplotrc. The location of
this le is determined when the program is built and is reported by show loadpath. The program then
looks in the user’s HOME directory for a le called .gnuplot on Unix-like systems or GNUPLOT.INI
on other systems. (Windows and OS/2 will look for it in the directory named in the environment variable
GNUPLOT; Windows will use USERPROFILE if GNUPLOT is not dened). Note: The program can
be congured to look rst in the current directory, but this is not recommended because it is bad security
practice.
gnuplot 4.6
39
String constants and string variables
In addition to string constants, most gnuplot commands also accept a string variable, a string expression,
or a function that returns a string. For example, the following four methods of creating a plot all result in
the same plot title:
four = "4"
graph4 = "Title for plot #4"
graph(n) = sprintf("Title for plot #%d",n)
plot ’data.4’ title "Title for plot #4"
plot ’data.4’ title graph4
plot ’data.4’ title "Title for plot #".four
plot ’data.4’ title graph(4)
Since integers are promoted to strings when operated on by the string concatenation operator, the following
method also works:
N = 4
plot ’data.’.N title "Title for plot #".N
In general, elements on the command line will only be evaluated as possible string variables if they are not
otherwise recognizable as part of the normal gnuplot syntax. So the following sequence of commands is legal,
although probably should be avoided so as not to cause confusion:
plot = "my_datafile.dat"
title = "My Title"
plot plot title title
There are three binary operators that require string operands: the string concatenation operator ".", the
string equality operator "eq" and the string inequality operator "ne". The following example will print
TRUE.
if ("A"."B" eq "AB") print "TRUE"
See also the two string formatting functions gprintf (p.114) and sprintf (p.27).
Substrings can be specied by appending a range specier to any string, string variable, or string-valued
function. The range specier has the form [begin:end], where begin is the index of the rst character of the
substring and end is the index of the last character of the substring. The rst character has index 1. The
begin or end elds may be empty, or contain ’*’, to indicate the true start or end of the original string. E.g.
str[:] and str[*:*] both describe the full string str.
Substitution and Command line macros
When a command line to gnuplot is rst read, i.e. before it is interpreted or executed, two forms of lexical
substitution are performed. These are triggered by the presence of text in backquotes (ascii character 96) or
preceded by @ (ascii character 64).
Substitution of system commands in backquotes
Command-line substitution is specied by a system command enclosed in backquotes. This command is
spawned and the output it produces replaces the backquoted text on the command line. Some implementa-
tions also support pipes; see plot datale special-lenames (p.83).
Command-line substitution can be used anywhere on the gnuplot command line, except inside strings
delimited by single quotes.
Example:
This will run the program leastsq and replace leastsq (including backquotes) on the command line with
its output:
40
gnuplot 4.6
f(x) = ‘leastsq‘
or, in VMS
f(x) = ‘run leastsq‘
These will generate labels with the current time and userid:
set label "generated on ‘date +%Y-%m-%d‘ by ‘whoami‘" at 1,1
set timestamp "generated on %Y-%m-%d by ‘whoami‘"
Substitution of string variables as macros
Substitution of command line macros is disabled by default, but may be enabled using the set macros
command. If macro substitution is enabled, the character @ is used to trigger substitution of the current
value of a string variable into the command line. The text in the string variable may contain any number
of lexical elements. This allows string variables to be used as command line macros. Only string constants
may be expanded using this mechanism, not string-valued expressions. For example:
set macros
style1 = "lines lt 4 lw 2"
style2 = "points lt 3 pt 5 ps 2"
range1 = "using 1:3"
range2 = "using 1:5"
plot "foo" @range1 with @style1, "bar" @range2 with @style2
The line containing @ symbols is expanded on input, so that by the time it is executed the eect is identical
to having typed in full
plot "foo" using 1:3 with lines lt 4 lw 2, \
"bar" using 1:5 with points lt 3 pt 5 ps 2
The function exists() may be useful in connection with macro evaluation. The following example checks that
Ccan safely be expanded as the name of a user-dened variable:
C = "pi"
if (exists(C)) print C," = ", @C
Macro expansion does not occur inside either single or double quotes. However macro expansion does occur
inside backquotes.
Macro expansion is handled as the very rst thing the interpreter does when looking at a new line of
commands and is only done once. Therefore, code like the following will execute correctly:
A = "c=1"
@A
but this line will not, since the macro is dened on the same line and will not be expanded in time
A = "c=1"; @A
# will not expand to c=1
For execution of complete commands the evaluate command may also be handy.
String variables, macros, and command line substitution
The interaction of string variables, backquotes andmacro substitution is somewhat complicated. Backquotes
do not block macro substitution, so
filename = "mydata.inp"
lines = ‘ wc --lines @filename | sed "s/ .*//" ‘
results in the number of lines in mydata.inp being stored in the integer variable lines. And double quotes do
not block backquote substitution, so
Documents you may be interested
Documents you may be interested