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