Automatic Legends for Proportional Symbol Maps

A self-adjusting legend for proportional symbol maps displays intermediate symbols for round values (for example, 100, 250, 500, 1000, 2500, etc.). The legend always displays a set of appropriate intermediate symbols, even when the minimum and the maximum values are very large or very small.

Rotate your device to landscape orientation to see the legend.

Maximum:
Minimum:
Size:
Font Size:
Distance:
Breaks:
  • The Maximum and the Minimum value define the value range shown by the legend. Fractional positive numbers can be entered.
  • The Size slider adjusts the legend size.
  • Font Size controls the size of the text labels.
  • The Distance slider defines the minimum distance between two symbols. The minimum distance is the value selected with this slider, multiplied by the type size. If two intermediate symbols are closer than this distance, the smaller symbol is removed. The default value is 1.25, which does not need to be be changed in most cases.
  • Intermediate symbols will be inserted at multiples of values entered in the Breaks field. Example: A break value of 5 will place symbols at 0.5, 5, 50, 500, etc. The symbols actually displayed also depend on the value specified by the Distance slider. The default break values are "5 2.5 1". These values do not need to be changed in most cases.

Paper


Jenny, B., Hutzler, E. and Hurni, L. (2009)
Self-adjusting legends for proportional symbol maps.
Cartographica, 44-4, p. 301–304.

The abstract of this paper was not printed by mistake. It is reproduced below.

Abstract

Legends for proportional symbol maps normally show the largest and the smallest symbols on the map, along with selected intermediate symbols. This short article presents automatic self-adjusting legends that show visually equally spaced symbols, if possible at round values. The number of intermediate symbols is automatically adjusted to the size of the legend. The method can be applied to any symbol size, to mathematical and perceptual scaling of the symbol size, to any geometric or pictographic symbols, and to arbitrary value ranges, including very large or very small minimum and maximum values. Self-adjusting legends are well suited to a variety of mapping applications that represent numerical data as graduated symbol maps, such as desktop GIS or online mapping systems and atlases.

Corrigendum (8 December 2010)

Due to the limited precision of floating point numbers, rounding errors may occasionally occur with the algorithm for finding candidate values in appendix 1. This issue can be avoided by replacing the line
values.add(v / scale)
with the following lines:
scaleExp = floor((-log10(min)))
v = bases[baseID] * 10^(ndigits - scaleExp)
values.add(v)


It is recommended to consult the JavaScript source code for these and other optimizations, even if the algorithm is implemented in another programming language.