StreamTable: An Area Proportional Visualization for Tables with Flowing Streams
Let M be an r× c table with each cell weighted by a nonzero positive number. A StreamTable visualization of M represents the columns as non-overlapping vertical streams and the rows as horizontal stripes such that the area of intersection between a column and a row is equal to the weight of the corresponding cell. To avoid large wiggle of the streams, it is desirable to keep the consecutive cells in a stream to be adjacent. Let B be the smallest axis-aligned bounding box containing the StreamTable. Then the difference between the area of B and the sum of the weights is referred to as the excess area. We examine the complexity of optimizing various table aesthetics (minimizing excess area, or maximizing cell adjacencies in streams) in a StreamTable visualization. (A) If the row permutation is fixed and the row heights are given as a part of the input, then we provide an O(rc)-time algorithm that optimizes these aesthetics. (B) If the row permutation is fixed but the row heights can be chosen, then we discuss a technique to compute an aesthetic StreamTable by solving a quadratically constrained quadratic program, followed by iterative improvements. (C) If row permutations can be chosen, then we show that it is NP-hard to find a row permutation that optimizes the area or adjacency aesthetics.
READ FULL TEXT