HTML automatically generated with rman
Table of Contents


tabzoom - dynamic query table viewer with interactive zoom and action


tabzoom in=table_file [parameter=value]


tabzoom is an interactive program that displays numeric data from an ASCII table in a 2D plot (see also tabplot(1NEMO) and tabview(1NEMO) ), while dynamically querying related columns from the same table, and allowing zooming and performing an action on a selected point. 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].
Label along the X-axis [default xcol]
Label along the Y-axis [default: ycol]

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)
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)
Filename with layout(5NEMO) commands to be added to plot? Default: none.
If given, this program is executed with a command line argument list which is the complete string that belongs to the selected point. By default no action is defined.
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]
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]
Go into cursor mode directly? [Default: t]
Random verbiage, will be plotted along right top of plot for id. [default: none].


tabzoom does everything tabview does, and more. The new interactive commands are ’c’, ’z’ and ’Z’. First create a simple table, and tabzoom it:
  nemoinp 1:100 | tabmath - - ’ranu(0,1),sqrt(%1)+%2,%1/%3’ > tab0
  tabzoom tab0 action=echo1

with this a simple action script that simply prints out the information belonging to the selected point:

  #! /bin/csh -f
  echo ECHO1 ::  $*

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)
    c            * cursor mode (NEW)
    z            * zoom with a box (NEW)
    Z            zoom reset to original setting
    f            * cursor flagging (EXPERIMENTAL)
    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.

See Also

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


Peter Teuben

Update History

1-jul-03    V1.0 cloned off tabview            PJT
22-oct-03    V1.2 added xlab, ylab, headline        PJT

Table of Contents