scale_ordinal: Add a ordinal, nominal, or logical scale to a ggvis object.

View source: R/scales.R

scale_ordinalR Documentation

Add a ordinal, nominal, or logical scale to a ggvis object.

Description

Ordinal, nominal, and logical scales are all categorical, and are treated similarly by ggvis.

Usage

scale_ordinal(
  vis,
  property,
  domain = NULL,
  range = NULL,
  reverse = NULL,
  round = NULL,
  points = NULL,
  padding = NULL,
  sort = NULL,
  name = property,
  label = NULL,
  override = NULL
)

scale_nominal(
  vis,
  property,
  domain = NULL,
  range = NULL,
  reverse = NULL,
  round = NULL,
  points = NULL,
  padding = NULL,
  sort = NULL,
  name = property,
  label = NULL,
  override = NULL
)

scale_logical(
  vis,
  property,
  domain = NULL,
  range = NULL,
  reverse = NULL,
  round = NULL,
  points = NULL,
  padding = NULL,
  sort = NULL,
  name = property,
  label = NULL,
  override = NULL
)

Arguments

vis

A ggvis object.

property

The name of a property, such as "x", "y", "fill", "stroke", etc.

domain

The domain of the scale, representing the set of data values. For ordinal scales, a character vector; for quantitative scales, a numeric vector of length two. Either value (but not both) may be NA, in which case domainMin or domainMax is set. For dynamic scales, this can also be a reactive which returns the appropriate type of vector.

range

The range of the scale, representing the set of visual values. For numeric values, the range can take the form of a two-element array with minimum and maximum values. For ordinal data, the range may by an array of desired output values, which are mapped to elements in the specified domain. The following range literals are also available: "width", "height", "shapes", "category10", "category20".

reverse

If true, flips the scale range.

round

If true, rounds numeric output values to integers. This can be helpful for snapping to the pixel grid.

points

If TRUE (default), distributes the ordinal values over a quantitative range at uniformly spaced points. The spacing of the points can be adjusted using the padding property. If FALSE, the ordinal scale will construct evenly-spaced bands, rather than points. Note that if any mark is added with a band() prop, then the scale for that prop will automatically have points set to FALSE.

padding

Applies spacing among ordinal elements in the scale range. The actual effect depends on how the scale is configured. If the points parameter is true, the padding value is interpreted as a multiple of the spacing between points. A reasonable value is 1.0, such that the first and last point will be offset from the minimum and maximum value by half the distance between points. Otherwise, padding is typically in the range [0, 1] and corresponds to the fraction of space in the range interval to allocate to padding. A value of 0.5 means that the range band width will be equal to the padding width. For positional (x and y) scales, the default padding is 0.1. For other scales, the default padding is 0.5.

sort

If TRUE, the values in the scale domain will be sorted according to their natural order. Default is FALSE.

name

Name of the scale, such as "x", "y", "fill", etc. Can also be an arbitrary name like "foo".

label

Label for the scale. Used for axis or legend titles.

override

Should the domain specified by this ggvis_scale object override other ggvis_scale objects for the same scale? Useful when domain is manually specified. For example, by default, the domain of the scale will contain the range of the data, but when this is TRUE, the specified domain will override, and the domain can be smaller than the range of the data. If FALSE, the domain will not behave this way. If left NULL, then it will be treated as TRUE whenever domain is non-NULL.

See Also

scales, scale_numeric, https://vega.github.io/vega/docs/scales/#ordinal.

Other scales: scale_datetime(), scale_numeric()

Examples

p <- PlantGrowth %>% ggvis(~group, ~weight) %>% layer_points()

p
p %>% scale_nominal("x", padding = 0)
p %>% scale_nominal("x", padding = 1)

p %>% scale_nominal("x", reverse = TRUE)

p <- ToothGrowth %>% group_by(supp) %>%
  ggvis(~len, fill = ~supp) %>%
  layer_histograms(width = 4, stack = TRUE)

# Control range of fill scale
p %>% scale_nominal("fill", range = c("pink", "lightblue"))

# There's no default range when the data is categorical but the output range
# is continuous, as in the case of opacity. In these cases, you can
# manually specify the range for the scale.
mtcars %>% ggvis(x = ~wt, y = ~mpg, opacity = ~factor(cyl)) %>%
  layer_points() %>%
  scale_nominal("opacity", range = c(0.2, 1))

ggvis documentation built on May 29, 2024, 1:12 a.m.