Skip to contents

This function should only be called after all layers that the non-standard aesthetic scales affects have been added to the plot.

Inside a layer, the non-standard aesthetic should be part of the call to aes mapping.

May return a warning that the plot is ignoring unknown aesthetics.

Usage

scale_listed(scalelist, replaces = NULL)

Arguments

scalelist

A list wherein elements are the results of calls to a scale function with a non-standard aesthetic set as the aesthetic argument.

replaces

A character vector of the same length as- and parallel to- scalelist, indicating what standard aesthetic to replace with the non-standard aesthetic. Typically "colour" or "fill".

Value

A list of which the elements are of the class MultiScale.

Details

Distributes a list of non-standard aesthetics scales to the plot, substituting geom and scale settings as necessary to display the non-standard aesthetics. Useful for mapping different geoms to different scales for example.

Examples

# Annotation of heatmap
iriscor <- cor(t(iris[, 1:4]))

df <- data.frame(
  x = as.vector(row(iriscor)),
  y = as.vector(col(iriscor)),
  value = as.vector(iriscor)
)

annotation <- data.frame(
  z = seq_len(nrow(iris)),
  Species = iris$Species,
  Leaves = ifelse(iris$Species == "setosa", "Short", "Long")
)

ggplot(df, aes(x, y)) +
  geom_raster(aes(fill = value)) +
  geom_tile(data = annotation,
            aes(x = z, y = -5, spec = Species), height = 5) +
  geom_tile(data = annotation,
            aes(y = z, x = -5, leav = Leaves), width = 5) +
  scale_listed(
    list(scale_fill_brewer(palette = "Set1", aesthetics = "spec"),
         scale_fill_brewer(palette = "Dark2", aesthetics = "leav")),
    replaces = c("fill", "fill")
  )
#> Warning: Ignoring unknown aesthetics: spec
#> Warning: Ignoring unknown aesthetics: leav