Skip to contents

Creates a continuous log1p scale, where input values are transformed with symlog_trans() before calculating the output. Unlike scale_log(), limits may cross 0.

Symlog scales can be useful in transforming positively skewed data.

Usage

scale_color_symlog(
  col,
  palette = scales::viridis_pal(),
  na_color = "#000000",
  limits = NULL,
  breaks = NULL,
  n_ticks = NULL,
  tick_format = format_number,
  col_label = "{.col}",
  legend = TRUE
)

scale_symlog(
  col,
  range = 0:1,
  na_value = 0,
  limits = NULL,
  breaks = NULL,
  col_label = "{.col}",
  legend = TRUE
)

Arguments

col

<name | string> The name of the column containing data to be scaled. Must be a valid input to rlang::ensym(); either a named column (non-standard evaluation), a string. Supports tidy-eval.

palette

<color|function> The colour palette of the colour scale. Must be a:

  • vector of RGBA hex colours,

  • a palette generator function, taking a length parameter, or

  • a palette ramp created from scales::colour_ramp()

A scales::colour_ramp() interpolator is created from the input palette.

na_color

<color> The colour value for NA input values.

limits

<c(min, max)> The limits of the scale's input. If NULL, limits are computed from layer data. Values outside the range of limits are clamped.

breaks

<numeric | function> The breaks of the scale, allowing to define a piecewise scale. The scale palette or numeric range are linearly interpolated (by length) and mapped onto breaks. Breaks outside the limits of the scale are discarded.

If not NULL, breaks must be either:

  • a numeric vector

  • a breaks function, taking a numeric vector argument (e.g. breaks_linear())

Defaults to breaks_trans() where trans is the scale's transformer.

n_ticks

<number> The number of ticks to display on the legend. Must be >= 2. The legend size will grow and shrink depending on this value.

tick_format

<function> A label function taking a vector of ticks returning formatted ticks.

col_label

<string | function> A template string or a label function for customising the column name in the legend.

  • if col_label is a string, {.col} may be used to represent the col name

  • if col_label is a function, the function must take a single argument: the col name

legend

<boolean> Indicate whether the legend should be displayed for this scale.

range

<numeric> The output range of the numeric scale. Must be length >= 2. A stats::approxfun() interpolator is created from the input range.

na_value

<number> The output value for NA input values.