← Parallel Coordinates

Brushing Is Slicing

Axis brushing and angular brushing are geometric operations in the dual space. Each brush cuts a slice through the data, and the shape of that slice determines what you can select.

Brushing is the primary interaction for parallel coordinates: drag a range on an axis to select polylines. Geometrically, it slices the data space with hyperplanes and keeps the points that survive.

The shape of the region depends on the brush type. Axis brushing produces rectangles. Angular brushing, which selects by segment slope between axes, produces wedges.

Axis Brushing = Hyperplane Slice

Selecting a range on axis selects all data points where . Geometrically, this is slicing the data space with two parallel hyperplanes perpendicular to the axis. Every polyline that passes through the brushed range is a data point that lies between those two hyperplanes.

In two dimensions, the hyperplanes are just vertical or horizontal lines. In higher dimensions, each axis brush is a slab, an infinite region bounded by two parallel planes. The selected points are those inside the slab.

Click and drag on any axis to create a brush. Drag brush edges to resize, or click outside to remove.

Drag vertically on any axis to create a brush. Create multiple brushes on different axes.

Figure 1. A 5-axis parallel coordinates plot with 200 data points in 3 clusters. Brush on any axis to select polylines that pass through the range. Multiple simultaneous brushes narrow the selection by intersection.

Multi-Axis Brushing = Intersection of Slices

Brushing on multiple axes simultaneously takes the intersection. Each brush adds a constraint. If you brush axis to select and axis to select , the selected points satisfy both conditions. The region in data space is a hyperrectangle, the Cartesian product of the individual intervals.

In the scatterplot view, a brush on one axis is a band; a second axis adds a perpendicular band; the intersection is a rectangle. Axis brushing always produces axis-aligned selections.

Brush on the PC axes (left) and watch the corresponding selection region appear in the scatterplot (right).

Create brushes on axes X2 and X3 in the parallel coordinates plot. Watch the rectangular selection appear in the scatterplot.

Figure 2. Linked parallel coordinates and scatterplot. A brush on axis X2 highlights a horizontal band. A brush on X3 highlights a vertical band. Both together select a rectangle. Axis brushing can only select axis-aligned regions.

Angular Brushing = Slope Selection

Angular brushing selects by the slope of a segment between two axes, not by an individual value. Drawing a line between axes (a "strum") selects every polyline whose segment crosses it.

From the duality, segment slope encodes the two-variable relationship. A strum is a constraint on slope, not on values.

The segment-segment intersection test determines which polylines are selected. If the strum line and a polyline's segment between two axes cross each other, that data point is selected.

Click and drag between the two axes to draw a strum line. Click an existing strum line to remove it.

Click and drag in the space between the axes to draw a strum line. The strum selects polylines by segment slope.

Figure 3. A strum brush between two axes. The strum line (red) selects all polyline segments that cross it. This selects by the slope relationship between the two variables, not their individual values.

The Wedge: Two Strums Define a Region

A single strum line divides the segment space in two. Drawing a second strum line between the same pair of axes defines a wedge. The selected polylines are those whose segments pass between the two strum lines, whose slopes fall in a range.

In the dual Cartesian space (the scatterplot), the wedge selection corresponds to a wedge-shaped region, selecting points by angle rather than by axis-aligned range. This is something axis brushing cannot do.

Where is the axis spacing and encodes the slope of each polyline segment. Two strum lines at different angles bound a range of slopes, selecting a wedge in the scatterplot.

Draw two strum lines between the axes to define a wedge. The scatterplot (right) shows the wedge-shaped selection region.

Draw two strum lines to define a wedge. Compare the wedge selection (right) with what axis brushing would produce.

Figure 4. Two strum lines define a wedge selection. In the linked scatterplot (right), the wedge-shaped region selects by slope/angle. Axis brushing could only select rectangles.

Rectangles vs. wedges. Axis brushing selects by value range on individual axes, producing rectangular regions in any 2D projection of the data. Angular brushing selects by the ratio between variables, producing wedge-shaped regions. The wedge can isolate clusters that lie along diagonal directions, which rectangles cannot tightly bound.

Expressiveness. Any rectangular selection can be approximated by a pair of strum lines (by tilting them to near-vertical). But a diagonal wedge cannot be expressed as any combination of axis brushes. Angular brushing is strictly more expressive.

Combined Brushing

Combining the two brush types isolates regions neither alone can reach: axis brushes constrain individual variables; strum brushes constrain inter-variable relationships.

Brush axes and draw strum lines to isolate clusters. Axis brushes filter by value; strums filter by slope.

Figure 5. Full 5-axis plot supporting both axis brushes and strum brushes. Combine them to select complex regions in 5D space that no single brush type could isolate.

Every brush is a geometric operation. Axis brushes are hyperplane slices; strum brushes are wedge slices. Combined, they carve out polytope-shaped regions in high-dimensional space.