bidirection {ggplot2}R Documentation

Utilities for working with bidirectional layers

Description

These functions are what underpins the ability of certain geoms to work automatically in both directions. See the Extending ggplot2 vignette for how they are used when implementing Geom, Stat, and Position classes.

Usage

has_flipped_aes(
  data,
  params = list(),
  main_is_orthogonal = NA,
  range_is_orthogonal = NA,
  group_has_equal = FALSE,
  ambiguous = FALSE,
  main_is_continuous = FALSE,
  main_is_optional = FALSE
)

flip_data(data, flip = NULL)

flipped_names(flip = FALSE)

Arguments

data

The layer data

params

The parameters of the Stat/Geom. Only the orientation parameter will be used.

main_is_orthogonal

If only x or y are present do they correspond to the main orientation or the reverse. E.g. If TRUE and y is present it is not flipped. If NA this check will be ignored.

range_is_orthogonal

If xmin/xmax or ymin/ymax is present do they correspond to the main orientation or reverse. If NA this check will be ignored.

group_has_equal

Is it expected that grouped data has either a single x or y value that will correspond to the orientation.

ambiguous

Is the layer ambiguous in its mapping by nature. If so, it will only be flipped if params$orientation == "y"

main_is_continuous

If there is a discrete and continuous axis, does the continuous one correspond to the main orientation?

main_is_optional

Is the main axis aesthetic optional and, if not given, set to 0

flip

Logical. Is the layer flipped.

Details

has_flipped_aes() is used to sniff out the orientation of the layer from the data. It has a range of arguments that can be used to finetune the sniffing based on what the data should look like. flip_data() will switch the column names of the data so that it looks like x-oriented data. flipped_names() provides a named list of aesthetic names that corresponds to the orientation of the layer.

Value

has_flipped_aes() returns TRUE if it detects a layer in the other orientation and FALSE otherwise. flip_data() will return the input unchanged if flip = FALSE and the data with flipped aesthetic names if flip = TRUE. flipped_names() returns a named list of strings. If flip = FALSE the name of the element will correspond to the element, e.g. flipped_names(FALSE)$x == "x" and if flip = TRUE it will correspond to the flipped name, e.g. flipped_names(FALSE)$x == "y"

Controlling the sniffing

How the layer data should be interpreted depends on its specific features. has_flipped_aes() contains a range of flags for defining what certain features in the data correspond to:


[Package ggplot2 version 3.3.6 Index]