groff 1.23.0 added .MR to its -man macro package. The NEWS file states
that the inclusion of the macro "was prompted by its introduction to
Plan 9 from User Space's troff in August 2020." From d32deab it seems
that the name for Plan 9 from User Space's implementation was suggested
by groff maintainer G. Brandon Robinson.
Not sure if the intention was to make these definitions compatible, but
it would be nice if they were.
Currently, Plan 9 from User Space's .MR expects its second argument to
be parenthesized. groff's .MR does not. This results in extra
parentheses appearing in manual references when viewing Plan 9 from User
Space's manual pages on a system using groff.
153 lines
4.1 KiB
Groff
153 lines
4.1 KiB
Groff
.TH GVIEW 1
|
|
.SH NAME
|
|
gview \- interactive graph viewer
|
|
.SH SYNOPSIS
|
|
.B gview
|
|
[
|
|
.B -l
|
|
.I logfile
|
|
]
|
|
[
|
|
.B -m
|
|
]
|
|
[
|
|
.I file
|
|
]
|
|
.SH DESCRIPTION
|
|
.I Gview
|
|
reads polygonal lines or a polygonal line drawing from an
|
|
.B ASCII
|
|
input file (which defaults to standard input), and views it interactively,
|
|
with commands to zoom in and out, perform simple editing operations, and
|
|
display information about points and polylines. The editing commands can
|
|
change the color and thickness of the polylines, delete (or undelete)
|
|
some of them, and optionally rotate and move them. It is also possible to
|
|
generate an output file that reflects these changes and is in the same format
|
|
as the input.
|
|
.PP
|
|
Since the
|
|
.B move
|
|
and
|
|
.B rotate
|
|
commands are undesirable when just viewing a graph, they are only enabled if
|
|
.I gview
|
|
is invoked with the
|
|
.B -m
|
|
option.
|
|
.PP
|
|
Clicking on a polyline with button 1 displays the coordinates and a
|
|
.I t
|
|
value that tells how far along the polyline.
|
|
.IR (t =0
|
|
at the first vertex,
|
|
.IR t =1
|
|
at the first vertex,
|
|
.IR t =1.5
|
|
halfway between the second and third vertices, etc.) The
|
|
.B -l
|
|
option generates a log file that lists all points selected in this manner.
|
|
.PP
|
|
The most important interactive operations are to
|
|
.I zoom in
|
|
by sweeping out a rectangle, or to
|
|
.I zoom out
|
|
so that everything currently being displayed shrinks to fit in the swept-out
|
|
rectangle. Other options on the button 3 menu are
|
|
.I unzoom
|
|
which restores the coordinate system to the default state where everything
|
|
fits on the screen,
|
|
.I recenter
|
|
which takes a point and makes it the center of the window, and
|
|
.I square up
|
|
which makes the horizontal and vertical scale factors equal.
|
|
.PP
|
|
To take a graph of a function where some part is almost linear and
|
|
see how it deviates from a straight line, select two points on this
|
|
part of the graph (i.e., select one with button 1 and then select the
|
|
other) and then use the
|
|
.I slant
|
|
command on the button 3 menu.
|
|
This slants the coordinate system so that the line between the two
|
|
selected points appears horizontal (but vertical still means positive
|
|
.IR y ).
|
|
Then the
|
|
.I zoom in
|
|
command can be used to accentuate deviations from horizontal.
|
|
There is also an
|
|
.I unslant
|
|
command that undoes all of this and goes back to an unslanted coordinate
|
|
system.
|
|
.PP
|
|
There is a
|
|
.I recolor
|
|
command on button 3 that lets you select a color and change everything
|
|
to have that color, and a similar command on button 2 that only affects
|
|
the selected polyline. The
|
|
.I thick
|
|
or
|
|
.I thin
|
|
command on button 2 changes the thickness of the selected polyline
|
|
and there is also an undo command for such edits.
|
|
.PP
|
|
Finally, button 3 had commands to
|
|
.I read
|
|
a new input file and display it on top of everything else,
|
|
.I restack
|
|
the drawing order (in case lines of different color are drawn on top of
|
|
each other),
|
|
.I write
|
|
everything into an output file, or
|
|
.I exit
|
|
the program.
|
|
.PP
|
|
Each polyline in an input or output file is a space-delimited
|
|
.I x
|
|
.I y
|
|
coordinate pair on a line by itself, and the polyline is a sequence
|
|
of such vertices followed by a label. The label could be just a
|
|
blank line or it could be a string in double
|
|
quotes, or virtually any text that does not contain spaces and is
|
|
on a line by itself. The label at the end of the last polyline is
|
|
optional. It is not legal to have two consecutive labels, since that
|
|
would denote a zero-vertex polyline and each polyline must have at least
|
|
one vertex. (One-vertex polylines are useful for scatter plots.)
|
|
|
|
If the label after a polyline can contains the word
|
|
.B "Thick"
|
|
or a color name
|
|
.BR (Red ,
|
|
.BR Pink ,
|
|
.BR Dkred ,
|
|
.BR Orange ,
|
|
.BR Yellow ,
|
|
.BR Dkyellow ,
|
|
.BR Green ,
|
|
.BR Dkgreen ,
|
|
.BR Cyan ,
|
|
.BR Blue ,
|
|
.BR Ltblue ,
|
|
.BR Magenta ,
|
|
.BR Violet ,
|
|
.BR Gray ,
|
|
.BR Black ,
|
|
.BR White ),
|
|
whichever color name comes first will be used to color the polyline.
|
|
.SH EXAMPLE
|
|
To see a graph of the function
|
|
.IR y = sin( x )/ x ,
|
|
generate input with an awk script and pipe it into
|
|
.IR gview :
|
|
.IP
|
|
.EX
|
|
awk 'BEGIN{for(x=.1;x<500;x+=.1)print x,sin(x)/x}' | gview
|
|
.EE
|
|
.SH SOURCE
|
|
.B \*9/src/cmd/draw/gview.c
|
|
.SH SEE ALSO
|
|
.MR awk 1
|
|
.SH BUGS
|
|
The user interface for the
|
|
.I slant
|
|
command is counter-intuitive. Perhaps it would be better to have a scheme
|
|
for sweeping out a parallelogram.
|