Gri: The Gri resource file

Chapters: 1: Introduction 2: Simple example 3: Invocation 4: Finer Control 5: X-Y Plots 6: Contour Plots 7: Image Plots 8: Examples 9: Gri Commands 10: Programming 11: Environment 12: Emacs Mode 13: History 14: Installation 15: Gri Bugs 16: Test Suite 17: Gri in Press 18: Acknowledgments 19: License Indices: Concepts Commands Variables | ## 10.17: Sample Resource File The following shows a sample ``~/.grirc`' resource file. Much of the code here is adding new commands (see Adding New Commands.)

    # Some folks like tics to point inwards ...
    set tics in

    # Hey, I'm bored with Helvetica font, and
    # Palatino is a bit prettier than Times
    set font to PalatinoRoman

    # Now for something a bit less trivial.
    # This lets me draw a set of y-values
    # against a single x-value, by e.g.
    #    open xyyy.dat
    #    draw curves time T1 T2 T3
    # where the first column of the file is
    # time, and the others are temperatures
    # at various sensors.
    `draw curves \xname \y1name ...'
    Draw multiple y columns versus an x column.  Assumes
    that the datafile is open, and that x is in the first
    column, with the y values in one or more following
    columns.

    The number of columns is figured out from the options,
    as is the name of the x-axis, and the labels to be
    used on each of the y curves.
    {
      # NB. the 3 below lets us skip the words 'draw'
      # and 'curves', and the name of the x-column.
      .num_of_y_columns. = {rpn wordc 3 -}
      if {rpn .num_of_y_columns. 1 >}
        show "ERROR: `draw curves' needs at least 1 y column!"
        quit
      end if

      set x name {rpn 2 wordv}
      set y name ""

      # Loop through the columns.
      .col. = 0
      while {rpn .num_of_y_columns. .col. <}
        # The x-values will be in column 1, with y-values
        # in columns 2, 3, ..., of the file.
        .ycol. = {rpn .col. 2 +}
        rewind
        read columns x=1 y=.ycol.
        # At this point, you may want to change line thickness,
        # thickness, color, dash-type, etc.  For illustration,
        # let's set dash type to the column number.
        set dash .col.
        draw curve
        draw label for last curve {rpn .col. 3 + wordv}
        .col. += 1
      end while
    }