Table of Contents


tabview - prototype dynamic query table viewer


tabview in=table_file [parameter=value]


tabview is an interactive program that displays numeric data from an ASCII table in a 2D plot (see also tabplot(1NEMO) ), while dynamically querying related columns from the same table. Dynamic Query (DQ) is an effective way to visualize an N-dimensional dataset in 2D. Two variables are selected to be plotted, they can either be directly taken as a column from the table, or computed via a fie(3NEMO) expression involving any column, e.g. "sqrt(%1**2+%2**2)".

Each selected ’column’ can be manipulated using sliders. Between the min (on the left) and max (on the right) of a column, two sliders, called lo and hi can be moved around independantly. lo is a lower limit, and hi the higher limit, for data to be included in the display:

      lo  <  hi                 MIN-------[lo=======hi]--------MAX
      lo  >  hi                 MIN=======hi]--------[lo=======MAX
The lo slider can also be moved to the right of the hi slider, as the diagram shows, in which case the sample will include data between min and hi as well as lo and max. This is like swapping the lo and hi sliders and corresponds to negating the logic of the first case.

Finally, only data are displayed for which the corresponding slider value of all values falls in the selected range. In SQL language, this means all queries are AND-ed.

Note: in this prototype the words slider and column can be used interchangebly.


The following parameters are recognized in any order if the keyword is also given:
Input table filename. No default.
col=name1, name2,..
Columns to be named and selected as sliders. The default column names are 1,2,3,... for ascii tables. The default is that all columns are selected to become sliders.
X-variable to plot. Any fie(3NEMO) expression involving input columns (see col=) can be given. The first extracted column given by col= is referred to as %1 etc. [Default: %1].
Y-variable to plot (see xvar=). [Default: %2].
Range in X from xmin to xmax [autoscale + 5% edges].
Range in Y from ymin to ymax [autoscale + 5% edges].
A fie(3NEMO) expression which is used to colorize the particles. Color will be an integer, 0 being invisible (actually: background color), 1 the foreground color, and 2,3,4... the colors your graphics device has. [Default: 1].

Size of points in cm. This is allowed to be a fie(3NEMO) expression, in terms of other columns. It must evaluate in cm. Default: 0 (dots - this is also the fastest and highly recommended) *** not implemented ***
Point type. This is allowed to be a fie(3NEMO) expression, in terms of other columns. After evaluation, is is converted to an integer, see yapp(3NEMO) for valid ptype’s. Default: 0 (a point) *** not implemented ***
Filename with layout(5NEMO) commands to be added to plot? Default: none.
Whenever output is requested (the o command, see below), it is written to this file. Warning: Any previously existing file will be overwritten. Default: none.
List of options, separated by comma’s, that determine the output when out= has been selected. Valid values are i: the ordinal (1 being the first in the original data) x,y: the plotted data, data: the original (cols= only) data from the input table. Note that the order is always i, x, y, data [Default: i,x,y,data]
maxstat=level Select a level of statistics output at startup of the program. At the lowest level (0) an overview of the read data is given, including min, max, mean, dispersion, skewness and kurtosis. At level 1 the Pearson correlation matrix is given. At level 2 all possible linear regressions are given. At level 3 at multiple regressions are given. [Default: 1]

Interactive Slider Commands

Although the final program will have (X-window) graphic sliders, the prototype has a simple command line interface to select and manipulate sliders which provide the dynamic query. Only the first character is matched, and for some commands the second parameter is also used.

The prompt

    Slider 2 [0.0387063 0.0387063 0.998341 0.998341]:
shows the slider name (normally numbers 1...nsliders), followed by the min, lo, hi and max along the slider. The min and max can currently not be modified. The following commands are recognized:
    l <val>    set lo slider to <val> [0]
    h <val>    set hi slider to <val> [0]
    l s <step>    set lo stepper to <step> [0]
    h s <step>    set hi stepper to <step> [0]
    b <step>    set both lo and hi stepper to <step> [0]
    q             quit
    [0-9]*         select a new slider by number (>0)
    r             force full redisplay
    s             show all sliders info
    o             (over)write output (needs out= keyword)
    !cmd    run (previous) unix command
    |cmd    run data through (previous) pipe
    ?              this help

Noteworthy are the ! and | commands. They both have an optional cmd argument, which allows the user to repeat a previously set cmd for this command. The ! simply runs the cmd command through the shell, whereas the | pipes all currently visible data into the cmd command. For example to do a linear least squares fit to the visible data,

        |tablsqfit -
would be needed (see tablsqfit(1NEMO) ), all subsequents fits can be done using the
command itself, since it remembers the last used |cmd.


Clearly updating the screen is the dominant factor in the dynamic nature of tabview. On a SPARC-1 a single average selection takes about 30ms for N=1000 rows and M=4 columns. Updating a dummy yapp display took 200ms in this case, but the dependance on N is highly nonlinear.


Recognize ASCII as well as FITS tables (TABLE and BINTABLE). See also fitstab(1NEMO) .

Need an improved yapp interface - PGPLOT is clearly too slow. Graphical user interface.

Maximum number of rows, columns and linelength are defined in the program, no dynamic memory allocation in this sense yet. Recompilation using -DMAXPOINTS, -DMAXSLIDERS and -DMAXLINE resp. would be required.

Improve selection algorithm.

See Also

tabplot(1NEMO) , fie(3NEMO) , layout(3NEMO) , xgobi(l)

Tukey’s "Four Essentials" (c.1972)


Peter Teuben
with ack to: Human-Computer Interaction Laboratory - Ben Schneiderman et
Univ.of Maryland

Update History

8-oct-92    V0.0 prototyped      PJT
11-oct-92    V0.1 added more commandline functionality    PJT
2-dec-92    V0.2 added | and ! commands - corrected doc    PJT
4-mar-94    V0.3 aded ’b’ command, more moment stats     PJT
1-nov-95    V0.4 documented new features                 PJT

Table of Contents