Publication quality 2D graphs with less manual effort due to explicit use of dual coordinate systems
Creating visually pleasing graphs in data visualization programs such as Matlab is surprisingly challenging. One common problem is that the positions and sizes of non-data elements such as textual annotations must typically be specified in either data coordinates or in absolute paper coordinates, whereas it would be more natural to specify them using a combination of these coordinate systems. I propose a framework in which it is easy to express, e.g., this label should appear 2 mm to the right of the data point at (3, 2) or this arrow should point to the datum at (2, 1) and be 5 mm long. I describe an algorithm for the correct layout of graphs of arbitrary complexity with automatic axis scaling within this framework. An implementation is provided in the form of a complete 2D plotting package that can be used to produce publication-quality graphs from within Matlab or Octave.
matlab data plotting typography