By downloading this code you agree to the
Source Code Use License (PDF). |
{ version = 2.65; (* of genpic.p 2021 Aug 27} (* begin module describe.genpic *) (* name genpic: convert genhis output to pic input synopsis genpic(histog: in, genpicp: in, picout: out, output: out) files histog: the output of the genhis program genpicp: parameters to control the histogram are one per line. The first line must be the version number of the this program. This allows the program to recognize when the parameter file is old. If the version is less than 2.26, genpic will upgrade the genpicp file. x: x coordinate of graph start on the page (cm) y: y coordinate of graph start on the page (cm) rotation: angle to rotate the graph graphheight: height of the core graph (cm). When there is no y axis (original design of the program) this number determines the height of the highest histogram box ("boxheight"). When there is a y axis, it is the length of the y axis. boxwidth: width of the histogram boxes. (cm) intervalsize: the space for the interval number. (cm) histogramvalue: the space for the histogram value. (cm) boxshift: how much to shift the boxes up relative to the numbers. (cm) ifield: number of characters devoted to the interval idecimal: number of characters devoted to the interval's decimal places nfield: number of characters devoted to the number of numbers modulo: an integer that determines which interval numbers are shown. Modulo = 1 gives all numbers, modulo = 2 gives every even number, etc. If there is a second real number on the line, the modulomultiplier, then the interval numbers are first multiplied by this number. This allows one to control intervals below 1. (This doesn't work quite right yet.) FIRST COLUMN TITLE column name size (integer): the size in points of the column names relative column 1 name x coordinate adjustment (cm): real number relative column 1 name y coordinate adjustment (cm): real number first column name: the entire line defines the name SECOND COLUMN TITLE NEW PARAMETER as of 2002 Feb 21: column name size (integer): the size in points of the column names relative column 1 name x coordinate adjustment (cm): real number relative column 1 name y coordinate adjustment (cm): real number second column name: the entire line defines the name OTHER TITLES previously undocumented PARAMETER as of 2002 Feb 21: othertitles (integer): How many more titles to do title name size (integer): the size in points of the title title x coordinate relative adjustment (cm): real number title y coordinate relative adjustment (cm): real number title name: the entire line defines the title EDGE CONTROLS, on one line: edgecontrol edgeleft, edgeright, edgelow, edgehigh: edgecontrol is a single character that controls how the bounding box of the figure is handled. If it is 'n' then the initial bounding box will be the page parameters defined in constants inside the program (llx, lly, urx, ury and changes as set by the previous parameter line). Otherwise the program will attempt to determine a good starting bounding box. The next 4 parameters are four real numbers that define the edges around the figure in cm. To allow a graph to be imbedded into another figure, its size must be defined in PostScript (with %%BoundingBox). By setting these four numbers, the edges are defined. Negative values are allowed; this will move the edges *inward*. NEW PARAMETERS as of 2007 Aug 30: X-AXIS CONTROLS, on one line: xaxiscontrol: char; x means to plot an X axis xaxismax: integer; maximum count to plot x axis interval control: xaxisintervals: integer; interval size, counts xaxissubintervals: integer; number of sub-intervals x axis tic mark controls: xaxisticlength: real; length of tic mark xaxisticdx: real; x position of number relative to tic mark xaxisticdy: real; y position of number relative to tic mark Y-AXIS CONTROLS, on one line: yaxiscontrol: char; y means to plot a Y axis yaxismax: integer; maximum count to plot y axis interval control: yaxisintervals: integer; interval size, counts yaxissubintervals: integer; number of sub-intervals y axis tic mark controls: yaxisticlength: real; length of tic mark yaxisticdx: real; x position of number relative to tic mark yaxisticdy: real; y position of number relative to tic mark picout: the data in histog are converted to PostScript All lines describing the data are comments. output: messages to the user. description The genhis program generates a histogram in simple character format. The program genpic converts this simple histogram into PostScript commands. Therefore, one can imbed output from genhis in the text of a paper. A vertical line is given at coordinate zero. examples an example genpicp: 2.26 version of genpicp that this parameter file is designed for. 1.0 x cm 10.0 y cm 0 rotation 4 graphheight, height of the graph, cm 0.3 boxwidth, width of the histogram boxes, cm 0.6 intervalsize, space for interval number, cm 0.6 histogramvalue, space for histogram value, cm 0 boxshift, shift boxes up relative to numbers, cm 5 field: number of characters devoted to the interval 1 decimal: number of characters devoted to the interval's decimal places 5 field: number of characters devoted to the number of numbers 1 modulo: multiples of this number are shown 0 barlocation: where to put a vertical bar 12 column name size (points) 0 relative column 1 name x coordinate adjustment (cm) 0.20 relative column 1 name y coordinate adjustment (cm) second column name (values) 12 column name size (points) 0 relative column 2 name x coordinate adjustment (cm) 0.40 relative column 2 name y coordinate adjustment (cm) first column name (number) 14 title name size (points) -5.2 relative title x coordinate adjustment (cm) 0.0 relative title y coordinate adjustment (cm) overall title 1 How many more titles to do 12 other title name size (points) 0.0 relative title x coordinate adjustment (cm) -0.8 relative title y coordinate adjustment (cm) This is an additional title n 0 0 0 0 edgecontrol (p=page), edgeleft, edgeright, edgelow, edgehigh in cm x 17 5 5 0.1 -0.00 -0.35 xaxis: control max int subint ticlength ticdx ticdy y 15 5 5 0.1 -0.12 -0.12 yaxis: control max int subint ticlength ticdx ticdy see also program that produces input to this program: genhis.p example parameter file: genpicp author Thomas D. Schneider bugs 2003 Aug 21, 2.30: WARNING: ALL PARAMETER FILES WILL HAVE TO BE ADJUSTED. I discovered a bug in which the graph shifts right depending on number of '*' comment lines in the histog file. This bug was removed. This will ALTER the required x coordinate of ALL GRAPHS!!! It is a nasty bug because all parameter files depended on this and each one was adjusted (unintentionally) by hand to account for it. It is a holdover from some time (perhaps) when the comment lines were printed on the output. Since we don't do that anymore, it is not needed. The effect of having the bug was that if one generated graphs with different numbers of header line comments, the graphs would shift depending on the number of header lines and so the graphs would be different. technical note defaults for the page parameters are in module genpic.const. NEW PARAMETERs as of 2002 Feb 21: edgecontrol edgeleft, edgeright, edgelow, edgehigh *) (* end module describe.genpic *) {This manual page was created by makman 1.45}{created by htmlink 1.62}