Annotation of lucent/sys/man/1/grap, revision 1.1.1.1

1.1       root        1: .TH GRAP 1
                      2: .SH NAME
                      3: grap \- pic preprocessor for drawing graphs
                      4: .SH SYNOPSIS
                      5: .B grap
                      6: [
                      7: .I file ...
                      8: ]
                      9: .SH DESCRIPTION
                     10: .I Grap
                     11: is a
                     12: .IR pic (1)
                     13: preprocessor for drawing graphs on a typesetter.
                     14: Graphs are surrounded by the
                     15: .I troff
                     16: `commands'
                     17: .B \&.G1
                     18: and
                     19: .BR  \&.G2 .
                     20: Data are scaled and plotted,
                     21: with tick marks supplied automatically.
                     22: Commands exist to modify the frame,
                     23: add labels, override the default ticks,
                     24: change the plotting style,
                     25: define coordinate ranges and transformations,
                     26: and include data from files.
                     27: In addition,
                     28: .I grap
                     29: provides the same loops, conditionals, and macro processing that
                     30: .I pic
                     31: does.
                     32: .PP
                     33: .BI frame
                     34: .B ht
                     35: .I e
                     36: .B wid
                     37: .I e
                     38: .B top
                     39: .B dotted
                     40: .IR ... :
                     41: Set the frame around the graph to specified
                     42: .B ht
                     43: and
                     44: .BR wid ;
                     45: default is 2 by 3 (inches).
                     46: The line
                     47: .I styles
                     48: .RB ( dotted ,
                     49: .BR dashed ,
                     50: .BR invis ,
                     51: .BR solid
                     52: (default))
                     53: of the 
                     54: .I sides
                     55: .RB ( top ,
                     56: .BR bot ,
                     57: .BR left ,
                     58: .BR right )
                     59: of the frame can be set
                     60: independently.
                     61: .PP
                     62: .B label
                     63: .I side
                     64: .B \&"a label"
                     65: .B \&"as a set of strings"
                     66: .IR adjust :
                     67: Place label on specified side; default side is bottom.
                     68: .I adjust
                     69: is
                     70: .B up
                     71: (or
                     72: .B down
                     73: .B left
                     74: .BR right )
                     75: .I expr
                     76: to shift default position;
                     77: .B width
                     78: .I expr
                     79: sets the width explicitly.
                     80: .PP
                     81: .BI ticks
                     82: .I side
                     83: .B in
                     84: .B at
                     85: .IR "optname expr, expr, ..." :
                     86: Put ticks on
                     87: .I side
                     88: at
                     89: .I "expr, ...,
                     90: and label with
                     91: .I \&"expr"\f1.
                     92: If any
                     93: .I expr
                     94: is followed by "...", label tick with "...",
                     95: and turn off all automatic labels.
                     96: If "..." contains
                     97: .BR %f 's,
                     98: they will be interpreted as
                     99: .B printf
                    100: formatting instructions for the tick value.
                    101: Ticks point
                    102: .B in
                    103: or
                    104: .B out
                    105: (default out).
                    106: Tick iterator: instead of
                    107: .B at
                    108: .IR \&... ,
                    109: use
                    110: .BI from
                    111: .I expr
                    112: .B to
                    113: .I expr
                    114: .B by
                    115: .I "op expr
                    116: where
                    117: .I op
                    118: is optionally
                    119: .B +-*/
                    120: for additive or multiplicative steps.
                    121: .B by
                    122: can be omitted, to give steps of size 1.
                    123: If no ticks are requested, they are supplied automatically;
                    124: suppress this with
                    125: .B ticks
                    126: .BR off .
                    127: Automatic ticks normally
                    128: leave a margin of 7% on each side; set this to anything by
                    129: .B margin
                    130: .B =
                    131: .IR expr .
                    132: .PP
                    133: .B grid
                    134: .I "side linedesc"
                    135: .B at
                    136: .IR "optname expr, expr, ..." :
                    137: Draw grids perpendicular to
                    138: .I side
                    139: in style
                    140: .I linedesc
                    141: at
                    142: .I "expr, ....\&
                    143: Iterators and labels work as with ticks.
                    144: .PP
                    145: .B coord
                    146: .I optname
                    147: .B x
                    148: .I "min, max"
                    149: .B y
                    150: .I "min, max"
                    151: .B "log x
                    152: .BR " log y" :
                    153: Set range of coords and optional log scaling on either or both.
                    154: This overrides computation of data range.
                    155: Default value of
                    156: .I optname
                    157: is current coordinate system
                    158: (each
                    159: .B coord
                    160: defines a new coordinate system).
                    161: .PP
                    162: .B plot
                    163: .I \&"str"
                    164: .B at
                    165: .IR point ;
                    166: .B
                    167: .I \&"str"
                    168: .B at
                    169: .IR point :
                    170: Put
                    171: .I str
                    172: at
                    173: .IR point .
                    174: Text position can be qualified with
                    175: .BR rjust ,
                    176: .BR ljust ,
                    177: .BR above ,
                    178: .BR below
                    179: after "...".
                    180: .PP
                    181: .B line
                    182: .B from
                    183: .I point
                    184: .B to
                    185: .IR "point linedesc" :
                    186: Draw line from here to there.
                    187: .B arrow
                    188: works in place of
                    189: .BR line .
                    190: .PP
                    191: .B next
                    192: .I optname
                    193: .B at
                    194: .IR "point linedesc" :
                    195: Continue plot of data in
                    196: .I optname to
                    197: .IR point ;
                    198: default is current.
                    199: .PP
                    200: .BI draw
                    201: .IR "optname linedesc ..." :
                    202: Set mode for
                    203: .BR next :
                    204: use this style from now on,
                    205: and plot "..." at each point (if given).
                    206: .PP
                    207: .BI new
                    208: .IR "optname linedesc ..." :
                    209: Set mode for
                    210: .BR next ,
                    211: but disconnect from previous.
                    212: .PP
                    213: A list of numbers
                    214: .I "x y1 y2 y3 ...
                    215: is treated as 
                    216: .B plot
                    217: .B bullet
                    218: .B at
                    219: .IR x,y1 ;
                    220: .B plot
                    221: .B bullet
                    222: .B at
                    223: .IR x,y2 ;
                    224: etc., or as
                    225: .B next
                    226: .B at
                    227: .I x,y1
                    228: etc., if
                    229: .B draw
                    230: is specified.
                    231: Abscissae of 1,2,3,... are provided if there is only one input number per line.
                    232: .PP
                    233: A
                    234: point
                    235: .I "optname expr, expr
                    236: maps the point to the named coordinate system.
                    237: A
                    238: .I linedesc
                    239: is one of
                    240: .B dot
                    241: .B dash
                    242: .B invis
                    243: .B solid
                    244: optionally followed by an expression.
                    245: .PP
                    246: .BI define
                    247: .I name
                    248: .BI { whatever } \f1:
                    249: Define a macro.
                    250: There are macros already defined for standard plotting
                    251: symbols like
                    252: .BR bullet ,
                    253: .BR circle ,
                    254: .BR star ,
                    255: .BR plus ,
                    256: etc., in
                    257: .BR /sys/lib/grap.defines ,
                    258: which is included if it exists.
                    259: .PP
                    260: .I var
                    261: .B =
                    262: .IR expr :
                    263: Evaluate an expression.
                    264: Operators are
                    265: .B=
                    266: .B +
                    267: .B -
                    268: .B *
                    269: and
                    270: .BR / .
                    271: Functions are
                    272: .B log
                    273: and
                    274: .B exp
                    275: (both base 10),
                    276: .BR sin ,
                    277: .BR cos ,
                    278: .BR sqrt ;
                    279: .B rand
                    280: returns random number on [0,1);
                    281: .BI max( e , e )\f1,
                    282: .BI min( e , e )\f1,
                    283: .BI int( e )\f1.
                    284: .PP
                    285: .B print
                    286: .IR expr ;
                    287: .B print
                    288: \fL"\f2...\fL"\f1:
                    289: As a debugging aid, print
                    290: .I expr
                    291: or
                    292: .I string
                    293: on the standard error.
                    294: .PP
                    295: .B copy
                    296: \fL"\fIfile name\fL"\fR:
                    297: Include this file right here.
                    298: .PP
                    299: .B copy
                    300: .B thru
                    301: .IR macro :
                    302: Pass rest of input (until
                    303: .BR \&.G2 )
                    304: through
                    305: .IR macro ,
                    306: treating each field (non-blank, or "...") as an argument.
                    307: .I macro
                    308: can be the name of a macro previously defined,
                    309: or the body of one in place, like
                    310: .BR "/plot $1 at $2,$3/" .
                    311: .PP
                    312: .B copy
                    313: .B thru
                    314: .I macro
                    315: .B until
                    316: \fL"\fIstring\fL"\fR:
                    317: Stop copy when input is
                    318: .I string
                    319: (left-justified).
                    320: .PP
                    321: .BI pic
                    322: .IR "remainder of line" :
                    323: Copy to output with leading blanks removed.
                    324: .PP
                    325: .BI graph
                    326: .IR "Name pic-position" :
                    327: Start a new frame, place it at specified position,
                    328: e.g.,
                    329: .B graph
                    330: .B Thing2
                    331: .BR "with .sw at Thing1.se + (0.1,0)" .
                    332: .I Name
                    333: must be capitalized to keep
                    334: .I pic
                    335: happy.
                    336: .PP
                    337: .BI \&. "anything at beginning of
                    338: .IR line :
                    339: Copied verbatim.
                    340: .PP
                    341: .B sh
                    342: .BI % anything
                    343: .BR % :
                    344: Pass everything between the
                    345: .BR % 's
                    346: to the shell;
                    347: as with macros,
                    348: .B %
                    349: may be any character and
                    350: .I anything
                    351: may include newlines.
                    352: .PP
                    353: .B #
                    354: .IR anything :
                    355: A comment, which is discarded.
                    356: .PP
                    357: Order is mostly irrelevant; no category is mandatory.
                    358: Any arguments on the
                    359: .B \&.G1
                    360: line are placed on the generated
                    361: .B \&.PS
                    362: line for
                    363: .IR pic .
                    364: .SH EXAMPLES
                    365: .EX
                    366: .ps -1
                    367: .vs -1
                    368: \&.G1
                    369: frame ht 1 top invis right invis
                    370: coord x 0, 10 y 1, 3 log y
                    371: ticks left in at 1 "bottommost tick", 2,3 "top tick"
                    372: ticks bot in from 0 to 10 by 2
                    373: label bot "silly graph"
                    374: label left "left side label" "here"
                    375: grid left dashed at 2.5
                    376: copy thru / circle at $1,$2 /
                    377: 1 1
                    378: 2 1.5
                    379: 3 2
                    380: 4 1.5
                    381: 10 3
                    382: \&.G2
                    383: .G1
                    384: frame ht 1 top invis right invis
                    385: coord x 0, 10 y 1, 3 log y
                    386: ticks left in at 1 "bottommost tick", 2,3 "top tick"
                    387: ticks bot in from 0 to 10 by 2
                    388: label bot "silly graph"
                    389: label left "left side label" "here"
                    390: grid left dashed at 2.5
                    391: copy thru / circle at $1,$2 /
                    392: 1 1
                    393: 2 1.5
                    394: 3 2
                    395: 4 1.5
                    396: 10 3
                    397: .G2
                    398: .ps
                    399: .vs
                    400: .EE
                    401: .SH FILES
                    402: .TF /sys/lib/grap.defines
                    403: .TP
                    404: .B /sys/lib/grap.defines
                    405: definitions of standard plotting characters, e.g., bullet
                    406: .SH SOURCE
                    407: .B /sys/src/cmd/grap
                    408: .SH "SEE ALSO"
                    409: .IR pic (1), 
                    410: .IR troff (1)
                    411: .br
                    412: J. L. Bentley and B. W. Kernighan,
                    413: ``GRAP\(emA Language for Typesetting Graphs'',
                    414: .I
                    415: Unix Research System Programmer's Manual,
                    416: Tenth Edition, Volume 2.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.