Delila Program: genpic

genpic program

Documentation for the genpic program is below, with links to related programs in the "see also" section.

{   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}