9

Я новичок в gnuplot. Я читаю руководство, но мне трудно найти объяснения некоторых аббревиатур, которые люди используют в своих сценариях. Например, я работаю со скриптом, который говорит:

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

Я думаю, что понимаю, что ti обозначает title , ls обозначает line style , а lw обозначает line width , но как насчет lt и noti? (где я могу это посмотреть)?

Что эти последние две строки делают?

3 ответа3

8

Гнуплот 5.0.3

Автоматически извлекается список сокращений с вариантом кода, размещенным в другом ответе.

        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  

8

У gnuplot есть набор команд и набор опций для каждой команды. Имя каждой команды и опции может быть сокращено до самой короткой уникальной строки, которая ее описывает, например, p для команды plot, sp для команды splot , t для опции title для plot . Обратите внимание, что вы не можете, например, использовать s для splot потому что это конфликтует с set .

Двухбуквенные сокращения в gnuplot, начинающиеся с l , обычно относятся к характеристике линии, например, lt для linetype , lw для linewidth . Это на самом деле уникальные флаги , которые могут быть использованы взаимозаменяемо с длинной формой: lw linew и linewidth указать один и тот же вариант. Вы можете увидеть это в документации командной строки для команды set style line :

help set style line

Это дает

 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

и вы можете видеть, что параметры, разделенные каналом ('|'), эквивалентны.

Для безопасности при запуске с gnuplot я рекомендую вводить полные команды, а когда вы станете более опытным / ленивым, вы можете начать сокращать больше.

[РЕДАКТИРОВАТЬ], чтобы закончить отвечать на ваши вопросы:

1) lt обозначает linetype Вы можете увидеть типы линий для текущего терминала с помощью команды test .

2) noti означает notitle , который делает то, что вы думаете.

3) Последние две линии рисуют f(1-g(x)) без заголовка и красной линии шириной 0,75pt; и f(12,5 * g(x)) без заголовка и серой линии 0,75pt.

6

Вот

gnuplot 5.0.3 Список сокращений

Вышеприведенный список отсортирован по алфавиту. Список сокращений для gnuplot 5.0.3.
Я думаю, что это полезный ресурс, и я разместил его после того, как решил последовать моему собственному предложению (см. Ниже) :-) .
Иногда мне показалась более полезной несортированная версия, в которой аббревиатура сгруппирована в командах, а затем в параметрах, относящихся к командам.

Два пути

Насколько я знаю, нет полного списка сокращений, по крайней мере, найти его не так просто. Более того, он будет обновляться при каждой новой версии.

Утверждение, что gnuplot принимает сокращенную однозначную строку навсегда, НЕ ИСТИННО.
Я должен признать, что это хорошее эмпирическое правило , но вы не можете слепо полагаться на него: например, p используется для plot но это неоднозначно с print . Так что делать?

  • Прошу помощи самому гнуплоту
    В случае неоднозначности вы можете обратиться за помощью к CLI (интерфейс командной строки) самого gnuplot.

    gnuplot> help ti
    Ambiguous request 'ti'; possible matches:
           tics
           tikz
           time
           tips
           title
    
  • «Если хочешь что-то делать, сделай это сам!"
    Загрузите с сайта gnuplot исходный код вашей версии.
    Распакуйте архив. Войдите в каталог src и найдите файл tables.c .
    Теперь ваше состояние зависит от инструментов, которые есть в вашей системе.
    Это текстовый файл, так что вы можете читать его с любым текстовым процессором (но даже блокнотом).
    Читая внутри, вы найдете много строк (например, 349 для версии 5.0.3):

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

    Из вышесказанного вы можете понять, что при использовании e CLI будет понимать errorbars , с errorl вместо errorlines (здесь первое однозначное совпадение отличается от другого только что выбранного) и так далее ...

    Более вниз в файле вы найдете снова сокращение для e

    { "e$rrorbars", YERRORBARS },
    

    но нет никакой двусмысленности, потому что это будет проанализировано не как команда, а как опция команды.

  • Попроси bash работать на тебя ...

    Если вы работаете в Linux или в оболочке bash вы можете попросить, чтобы ваша оболочка работала для вас:

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

    что вы можете убрать еще больше

    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] ) }'
    

    что дает те и другие 345 строк ...

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

    все еще не идеально но, ИМХО, приемлемо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .