13

I'm new to gnuplot. I am reading the manual but am having a hard time finding explanations for some of the abbreviations people use in their scripts. For example, I am working with an script that says:

f(x)=invnorm(x)
g(x)=norm(x)

plot \
    "file.curve" u (f($3)):(f($2)) ti "Curve 1" ls 1 lw 3, \
    "file.curve" u (f($3)):(f($2)) ti "Curve 2" ls 2 lw 3, \
    "file.curve" u (f($3)):(f($2)) ti "Curve 3" ls 3 lw 3, \
    f(1-g(x)) noti lt rgb "#FF0000" lw 0.75, \
    f(12.5*g(x)) noti lt rgb "#808080" lw 0.75

I think I understand that ti stands for title, ls for line style, and lw for line width, but what about lt and noti? (where can I look this up)?

With this, what do these last two lines do?

3 Answers3

14

Gnuplot 5.0.3

Auto extracted list of the abbreviations with a variant of the code posted in the other answer.

        ra - raise  
       low - lower  
        bi - bind  
        ca - call  
        cl - clear  
      eval - evaluate  
        ex - exit  
         f - fit  
         h - help  
        hi - history  
         l - load  
        pa - pause  
         p - plot  
        pr - print  
  printerr - printerror  
         q - quit  
       ref - refresh  
       rep - replot  
        re - reread  
       res - reset  
        sa - save  
       scr - screendump  
        se - set  
       she - shell  
        sh - show  
        sp - splot  
        st - stats  
        sy - system  
       und - undefine  
       uns - unset  
        up - update
     a - acsplines  
     b - bezier  
     c - csplines  
     s - sbezier  
     u - unique  
     f - frequency  
   cum - cumulative  
     k - kdensity  
    cn - cnormal  
   mcs - mcsplines  
spline - splines  
     f - functions  
     s - set  
     t - terminal  
     v - variables  
     a - all  
    ac - action_table  
    an - angles  
    ar - arrow  
    au - autoscale  
     b - bars  
   bor - border  
   box - boxwidth  
    cl - clabel  
     c - clip  
 cntrp - cntrparam  
 cntrl - cntrlabel  
  cont - contours  
 dasht - dashtype  
    da - data  
  data - datafile  
    dg - dgrid3d  
    du - dummy  
   enc - encoding  
   dec - decimalsign  
  font - fontpath  
    fo - format  
    fu - function  
    fu - functions  
     g - grid  
   hid - hidden3d  
   his - history  
    is - isosamples  
     k - key  
  keyt - keytitle  
    la - label  
 lines - linestyle  

linetype - linetypes
loa - loadpath
loc - locale
log - logscale
mac - macros
map - mapping
map - mapping3d
mar - margins
lmar - lmargin
rmar - rmargin
tmar - tmargin
bmar - bmargin
mo - mouse
mono - monochrome
multi - multiplot
mxt - mxtics
nomxt - nomxtics
mx2t - mx2tics
nomx2t - nomx2tics
myt - mytics
nomyt - nomytics
my2t - my2tics
nomy2t - nomy2tics
mzt - mztics
nomzt - nomztics
mrt - mrtics
nomrt - nomrtics
mcbt - mcbtics
nomcbt - nomcbtics
of - offsets
or - origin
o - output
pa - parametric
pm - pm3d
pal - palette
colorb - colorbox
colorn - colornames
colors - colorsequence
p - plot
pointint - pointintervalbox
poi - pointsize
pol - polar
pr - print
obj - object
sa - samples
si - size
st - style
su - surface
t - terminal
termopt - termoptions
ti - tics
ticsc - ticscale
ticsl - ticslevel
timef - timefmt
tim - timestamp
tit - title
v - variables
ve - version
vi - view
xyp - xyplane
xda - xdata
x2da - x2data
yda - ydata
y2da - y2data
zda - zdata
cbda - cbdata
xl - xlabel
x2l - x2label
yl - ylabel
y2l - y2label
zl - zlabel
cbl - cblabel
xti - xtics
noxti - noxtics
x2ti - x2tics
nox2ti - nox2tics
yti - ytics
noyti - noytics
y2ti - y2tics
noy2ti - noy2tics
zti - ztics
nozti - noztics
rti - rtics
norti - nortics
cbti - cbtics
nocbti - nocbtics
xdti - xdtics
noxdti - noxdtics
x2dti - x2dtics
nox2dti - nox2dtics
ydti - ydtics
noydti - noydtics
y2dti - y2dtics
noy2dti - noy2dtics
zdti - zdtics
nozdti - nozdtics
cbdti - cbdtics
nocbdti - nocbdtics
xmti - xmtics
noxmti - noxmtics
x2mti - x2mtics
nox2mti - nox2mtics
ymti - ymtics
noymti - noymtics
y2mti - y2mtics
noy2mti - noy2mtics
zmti - zmtics
nozmti - nozmtics
cbmti - cbmtics
nocbmti - nocbmtics
xr - xrange
x2r - x2range
yr - yrange
y2r - y2range
zr - zrange
cbr - cbrange
rr - rrange
tr - trange
ur - urange
vr - vrange
xzeroa - xzeroaxis
x2zeroa - x2zeroaxis
yzeroa - yzeroaxis
y2zeroa - y2zeroaxis
zzeroa - zzeroaxis
zeroa - zeroaxis
rax - raxis
z - zero
def - defaults
off - offset
nooff - nooffset
tri - trianglepattern
undef - undefined
nound - noundefined
alt - altdiagonal
noalt - noaltdiagonal
bent - bentover
nobent - nobentover
def - default
t - top
b - bottom
l - left
r - right
c - center
ver - vertical
hor - horizontal
ov - over
ab - above
u - under
be - below
ins - inside
o - outside
tm - tmargin
bm - bmargin
lm - lmargin
rm - rmargin
L - Left
R - Right
rev - reverse
norev - noreverse
inv - invert
noinv - noinvert
enh - enhanced
noenh - noenhanced
b - box
nob - nobox
sa - samplen
sp - spacing
w - width
h - height
a - autotitles
noa - noautotitles
ti - title
noti - notitle
text - textcolor
maxcol - maxcols
maxcolu - maxcolumns
maxrow - maxrows
term - terminal
pal - palette
v - vertical
h - horizontal
def - default
u - user
bo - border
bd - bdefault
nobo - noborder
o - origin
s - size
fr - front
ba - back
pos - positive
neg - negative
gray - grayscale
grey - greyscale
col - color
rgb - rgbformulae
def - defined
func - functions
mo - model
maxc - maxcolors
gam - gamma
interp - interpolate
scansfor - scansforward
scansback - scansbackward
scansauto - scansautomatic dep - depthorder
fl - flush
ftr - ftriangles
noftr - noftriangles
clip1 - clip1in
clip4 - clip4in
bo - border
nobo - noborder
hi - hidden3d
nohi - nohidden3d
so - solid
notr - notransparent
noso - nosolid
tr - transparent
i - implicit
noe - noexplicit
noi - noimplicit
e - explicit
corners2c - corners2color d - data
f - function
l - lines
ar - arrow
incr - increment
hist - histogram
circ - circle
ell - ellipse
rect - rectangle
parallel - parallelaxis
l - lines
i - impulses
p - points
linesp - linespoints
d - dots
yerrorl - yerrorlines
errorl - errorlines
xerrorl - xerrorlines
xyerrorl - xyerrorlines
ye - yerrorbars
e - errorbars
xe - xerrorbars
xye - xyerrorbars
hist - histograms
filledc - filledcurves
boxer - boxerrorbars
boxx - boxxyerrorbars
st - steps
fillst - fillsteps
fs - fsteps
his - histeps
vec - vectors
fin - financebars
can - candlesticks
pm - pm3d
ima - image
rgbima - rgbimage
rgba - rgbalpha
cir - circles
ell - ellipses
sur - surface
parallel - parallelaxes
c - closed
x - x1

Hastur
  • 19,483
  • 9
  • 55
  • 99
9

gnuplot has a set of commands and a set of options for each command. The name of each command and option can be abbreviated to the shortest unique string that describes it, e.g. p for the plot command, sp for the splot command, t for the title option to plot. Note that you can't, for example, use s for splot because it conflicts with set.

The two-letter abbreviations in gnuplot starting with l are usually for a line characteristic, like lt for linetype, lw for linewidth. These are actually unique flags which can be used interchangeably with the long form: lw, linew and linewidth specify the same option. You can see this in the command-line documentation for the set style line command:

help set style line

This gives

 Syntax:
       set style line <index> default
       set style line <index> {{linetype  | lt} <line_type> | <colorspec>}
                              {{linecolor | lc} <colorspec>}
                              {{linewidth | lw} <line_width>}
                              {{pointtype | pt} <point_type>}
                              {{pointsize | ps} <point_size>}
                              {{pointinterval | pi} <interval>}
                              {palette}
       unset style line
       show style line

and you can see that the options separated by a pipe ('|') are equivalent.

To be safe when starting with gnuplot, I recommend typing out the full commands, and when you get more experienced/lazy you can start abbreviating more.

[EDIT] to finish answering your questions:

1) lt stands for linetype. You can see what the line types are for the current terminal with the test command.

2) noti stands for notitle, which does what you think.

3) The last two lines draw f(1-g(x)) with no title and a 0.75pt wide red line; and f(12.5*g(x)) with no title and a 0.75pt gray line.

andyras
  • 191
8

Here

gnuplot 5.0.3 List of Abbreviations

The above one is the alphabetically sorted List of abbreviations for gnuplot 5.0.3.
I think it is a useful resource and I put there after I decided to follow my own suggestion (see below) :-).
Sometimes I found more useful the not sorted version where the abbreviation are grouped in commands, and then in options relative to the commands.

Two ways

As far as I am aware there is not a complete list of abbreviations, at least it is not so simple to find it. Moreover it will be updated at each new version.

The assertion that gnuplot accepts the shorten unambiguous string for good is NOT TRUE.
I have to admit that it is a good rule of thumb to guess, but on which you cannot blindly rely: for example p is used for plot but it is ambiguous with print. So what to do?

  • Ask help to gnuplot itself
    In case of ambiguity you can ask for help to the CLI (command line interface) of gnuplot itself.

    gnuplot> help ti
    Ambiguous request 'ti'; possible matches:
           tics
           tikz
           time
           tips
           title
    
  • "If you want something doing, do it yourself!"
    Download from the gnuplot site the source code of your version.
    Extract the archive. Enter in the src directory and search for the tables.c file.
    Now your fortune depends from the tools you have on your system.
    It is a text file so you can read it with every word processor (but even notepad).
    Reading inside you will find a lot (e.g. 349 for the 5.0.3 version) of lines as the following:

    { "e$rrorbars", YERRORBARS }
    { "errorl$ines", YERRORLINES },
    { "eval$uate", eval_command },
    

    From the above you can understand that when you use e the CLI will understand errorbars, with errorl instead errorlines (here is the first unambiguous match different from the other just chosen) and so on...

    More down in the file you will find again an abbreviation for e

    { "e$rrorbars", YERRORBARS },
    

    but there is no ambiguity because it will be parsed not as command but as option of a command.

  • Ask a bash to work for you...

    If you are under Linux or a bash shell you can ask to your shell to work for you:

    grep '\$' tables.c  | sed 's/{//g ; s/}//g ; s/,//g ; s/"//g'
    

    that you can clean even more

    grep '\$' tables.c  | sed 's/{//g ; s/}//g ; s/,//g ; s/"//g' \
    | awk '{split ($1,a, "$"); printf ("%10s - %s \n", a[1],a[1]a[2] ) }'
    

    that gives those and other 345 lines...

         p - plot 
       rep - replot 
        sp - splot 
     multi - multiplot 
    

    still not perfect but, IMHO, acceptable.
    enter image description here

Hastur
  • 19,483
  • 9
  • 55
  • 99