safeLog Scale (GPL)

Syntax

safeLog(dim(<numeric>), <function>)

or

safeLog(aesthetic(aesthetic.<aesthetic type>), <function>)

<numeric>. A numeric value indicating the dimension to which the scale applies. See the topic dim Function (GPL) for more information.

<function>. One or more valid functions. These are optional.

<aesthetic type>. An aesthetic type indicating the aesthetic to which the scale applies. This is an aesthetic created as the result of an aesthetic function (such as size) in the ELEMENT statement.

Description

Creates a "safe" logarithmic-transformed scale. Unlike a regular log scale, the safe log scale uses a modified function to handle 0 and negative values. If a base is not explicitly specified, the default is base 10.

Formula for Safe Log Transformation

The safe log formula is:

sign(x) * log(1 + abs(x))

So if you assume that the axis value is –99, the result of the transformation is:

sign(-99) * log(1 + abs(-99)) = -1 * log(1 + 99) = -1 * 2 = -2

Example

Figure 1. Example: Specifying the scale and a base
SCALE: safeLog(dim(2), base(2))