## Parallel coordinate graphics using MATLAB

Introduction

Multivariate or high-dimensional (HiD) systems are hard to visualize because we are wired for a 3D world. Many different systems have been suggested to help visualize HiD data. Most of them use some system of subspace selection to reduce the dimensionality to 2 or 3 (e.g. 1-4) or use some procedure to identify important axes (e.g. principal component analysis or projection pursuit).

The parallel coordinate (PC) scheme due to Inselberg and others (5-13) attempts to plot HiD systems in a different manner. Since plotting more than 3 orthogonal axis is impossible, parallel coordinate schemes plot all the axes parallel to each other in a plane. Amazingly enough, squashing the space in this manner does not destroy too much of the geometric structure. The geometric structure is however projected in such a fashion that most geometric intuition has to be relearned.

The plan here is to build up intuition for HiD representations in parallel coordinates:

• points -- The basic representation of points as lines in PC.
• lines -- The observation that lines map to points in PC.
• planes -- Hyperplanes can be detected visually.
• clusters of points and random distibutions.
• polytopes (HiD polyhedra) using envelopes and line-density plots.
• dynamic systems using an extrusion scheme.

Examples

• 3D Points in parallel coordinates.(matlab code)
• Each of the four 3D points becomes two line segments in PC. This projection onto parallel lines maintains most of the geometry, but in different form.
• Cluster in 3D (matlab code)
• The two clusters shown are separated along the x1 and x2 axes, but not on the x3 axis. The cluster centers are [0,0,0] and [5,5,0].

Such a plot rapidly gets cluttered with a large number of lines. If you squint at the PC plot, you get the feeling that density of lines might be important for determining the center of the cluster. The next plot shows an example of distinguishing cluster shape by computing line densities.

• A 2D cluster (matlab code)
• Two 2D clusters are shown in the middle panels. The left one is filled from about 50% to 100% radius. The right one from 10% to 100%. The top panels are the PC plots. There is visible difference between the two, but hard to see. The color code for the top two panels are color by distance of the point from the origin. The third panels are coutour plots of the density of lines in the PC plots. There is a clear difference between the hollow cluster and the solid cluster. The color code in the bottom panels is density, blue low, red high.
• A line in 3D. (matlab code)
• The line segment x1=t; x2=1-.5*t; x3=0.5-.1*t; with 0<t<1 is drawn in normal 3D coordinates and in PC. The color is relative t value. Note that each point on the line becomes two line segments in PC (x1-to-x2 and x2-to-x3). The obvious convergence of all the line segments between the x1 and x2 axis is a direct consequence of the linearity of the points and partly defines the line. A less obvious convergence of line segments to the right of x3 completes the definition of the line.

If the slope of the line relating one axis to another (e.g x1 to x2) is `m` and the intercept is `b` in normal coordinates, then the position of the convergence in PC is the point
`[ 1/(1-m) , b/(1-m) ]`,
asuming that the first axis (x1) is located at horiziontal position zero and x2 is located at horizontal position 1. For the line given above the slope from x1 to x2, `m=-0.5` and` b=1`. Thus the first convergence point should be` [0.67, 0.67]` as shown.
The slope from x2 to x3, `m=0.2` and` b=0.3`. Thus the second convergence point should be` [1.25, 0.375],` or just to the right of the x3 axis.

• A plane in 3D (matlab code)
• The middle panel show a plane in 3D space. The plane is given by
x1= t
x2=-.5*t+.5*u
x3 = 1.1*u
Where t and u are uniform random variables from 0 to 1. The color code is proportional to t.

The top panel shows the PC representation of the plane. There is clearly structure to the points, but it hard to see what it means, except of course that the color mapping is along x1.

We would like some way to detect a plane by a visual technique. The bottom panel shows one of two characteristic points of this plane plotted in PC according to the following scheme. Pairs of points in the plane define lines in the plane. For a large number of pairs of points (lines in the plane), compute the two points in PC which describe each 3D line (in the plane) as in the example above then connect them with a line. If all the constructed lines pass through a point, then the points fall on a plane. If the plane were noisy, then the lines would 'almost' pass through a common point.

• A dynamic system plotted as a surface with PC and time as axes (matlab code)
• A 2D line is rotated through 180 degrees (matlab code). The animation shows that a rotation in cartesian space becomes translation in PC space. The high density of points at the negative-slope intersection region moves from left to right from 90 to 180 degrees. The 2D line is now translated vertically (matlab code). The animation shows that translation in cartesian coordinates is a rotation in PC space.

A 2D square rotated through 90 degrees.(matlab code) The animation shows that rotation in cartesian space becomes translation in PC space. The top panel is PC space, the bottom is a line-density plot in PC space. You may need to click on the image to start the animation.
• A Four Dimensional parameter space with a color-coded scalar function. (matlab code) The following image results from a project in which we searched a 4D model parameter space for model output which matched experimental mepc data at the nmj. Of 1568 parameter sets, about 75 produced model output which was campatable with real data. The 75 cases are plotted below, with color indicating 'goodness of model fit' with blue indicating a close fit and red indicating a fit which was just compatable with experimental data. The most obvious feature is that two of the parameters (beta/2Km and Kp) are almost linearly related, a fact that we had not detected analytically.
• Other interesting uses
Visualizing the simplex algorithm
Air traffic control

References

(1) Calibrate you eyes to recognize high-dimensional objects from their projections. Diane Cook and Peter Sutherland. http://www.public.iastate.edu/~dicook/JSS/paper/paper.html

(2) Visualisation of High Dimensional Data. Dr. Carolina Cruz-Neira and Laura Arns

(3) Polytope visualization. Gordon Kindelmann.
http://www.graphics.cornell.edu/~gordon/peek/

(4) N-Land: a Graphical Tool for Exploring N-Dimensional Data. Matthew O. Ward Jeffrey T. LeBlanc and Rajeev Tipnis.
http://davis.wpi.edu/~matt/courses/nland/cgi93.html

(5) Don't panic ... just do it in parallel! Al Inselberg, COMPUTATION STAT 14: (1) 53-77 1999

(6) Visual data mining with parallel coordinates Al Inselberg, COMPUTATION STAT 13: (1) 47-63 1998

(7) MULTIDIMENSIONAL LINES .1. REPRESENTATION. INSELBERG A, DIMSDALE B, SIAM J APPL MATH 54: (2) 559-577 APR 1994

(8) MULTIDIMENSIONAL LINES .2. PROXIMITY AND APPLICATIONS. INSELBERG A, DIMSDALE B, SIAM J APPL MATH 54: (2) 578-596 APR 1994

(9) HYPERDIMENSIONAL DATA-ANALYSIS USING PARALLEL COORDINATES. WEGMAN EJ. J AM STAT ASSOC 85 (411): 664-675 SEP 1990

(10) THE ANALYSIS OF T48 LOW PRESSURE TURBINE INLET TEMPERATURES USING PARALLEL COORDINATES. Frank S. Budny.
http://www.che.ufl.edu/visualize/THESIS/thesis.html

(11) Visualizing the Behavior of Higher Dimensional Dynamical Systems. R. Wegenkittl, H. Löffelmann, and E. Gröller.
http://www.cg.tuwien.ac.at/research/vis/dynsys/ndim/

(12) Hierarchical Parallel Coordinates. Ying-Huey Fua.
http://davis.wpi.edu/~yingfua/cs563_1/hiervis.html

(13) High Dimensional Clustering Using Parallel Coordinates and the Grand Tour. Edward J. Wegman and Qiang Luo.
http://www.galaxy.gmu.edu/papers/inter96.html