GVIEW(1) GVIEW(1)
NAME
gview - interactive graph viewer
SYNOPSIS
gview [ -mp ] [ -l logfile ] [ files ]
DESCRIPTION
Gview reads polygonal lines or a polygonal line drawing from
an 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. (Multiple input files are
allowed if you want to overlay several line drawings.) 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.
Since the move and rotate commands are undesirable when just
viewing a graph, they are only enabled if gview is invoked
with the -m option.
The -p option plots only the vertices of the polygons.
Clicking on a polyline with button 1 displays the coordi-
nates and a t value that tells how far along the polyline.
(t=0 at the first vertex, t=1 at the first vertex, t=1.5
halfway between the second and third vertices, etc.) The -l
option generates a log file that lists all points selected
in this manner.
The most important interactive operations are to zoom in by
sweeping out a rectangle, or to zoom out so that everything
currently being displayed shrinks to fit in the swept-out
rectangle. Other options on the button 3 menu are unzoom
which restores the coordinate system to the default state
where everything fits on the screen, recenter which takes a
point and makes it the center of the window, and square up
which makes the horizontal and vertical scale factors equal.
To take a graph of a function where some part is almost lin-
ear and see how it deviates from a straight line, select two
points on this part of the graph (i.e., select one with but-
ton 1 and then select the other) and then use the slant com-
mand on the button 3 menu. This slants the coordinate sys-
tem so that the line between the two selected points appears
horizontal (but vertical still means positive y). Then the
zoom in command can be used to accentuate deviations from
horizontal. There is also an unslant command that undoes
Page 1 Plan 9 (printed 12/13/25)
GVIEW(1) GVIEW(1)
all of this and goes back to an unslanted coordinate system.
There is a recolor command on button 3 that lets you select
a color and change everything to have that color, and a sim-
ilar command on button 2 that only affects the selected
polyline. If the input file uses the Multi(...) feature
explained below, either flavor of recolor allows you to type
a digit in lieu of selecting a color.
The thick or thin command on button 2 changes the thickness
of the selected polyline and there is also an undo command
for such edits. Finally, button 3 has commands to read a
new input file and display it on top of everything else,
restack the drawing order (in case lines of different color
are drawn on top of each other), write everything into an
output file, or exit the program.
Each polyline in an input or output file is a space-
delimited x 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 con-
tain 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.) Under the -l option, a newline causes the selected
polyline's label to appear in the log file (where it could
be seen by invoking tail -f in another window).
If the label after a polyline contains the word Thick or a
color name (Red, Pink, Dkred, Orange, Yellow, Dkyellow,
Green, Dkgreen, Cyan, Blue, Ltblue, Magenta, Violet, Gray,
Black, White), whichever color name comes first will be used
to color the polyline. Alternatively, labels can contain
Multi followed by single-letter versions of these names: (R,
P, r, O, Y, y, G, g, C, B, b, M, V, A, K, W, each optionally
preceded by T). Then recolor followed by a nonzero digit n
selects the nth alternative for each polyline.
EXAMPLE
To see a graph of the function y=sin(x)/x generate input
with an awk script and pipe it into gview:
awk 'BEGIN{for(x=.1;x<500;x+=.1)print x,sin(x)/x}' | gview
SOURCE
/sys/src/cmd/gview.c
SEE ALSO
Page 2 Plan 9 (printed 12/13/25)
GVIEW(1) GVIEW(1)
awk(1), tail(1)
BUGS
The user interface for the slant command is counter-
intuitive. Perhaps it would be better to have a scheme for
sweeping out a parallelogram.
The -p option makes the interactive point selection feature
behave strangely, and is unnecessary since extra blank lines
in the input achieve essentially the same effect.
Page 3 Plan 9 (printed 12/13/25)