You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It'd be great if it was possible to do this for all of the non-positional scales, especially colour/fill
library(tidyverse)
library(palmerpenguins)
penguins |>
ggplot() +
geom_point(aes(x = flipper_length_mm,
y = body_mass_g,
col = species)) +
scale_colour_manual(values = scales::pal_hue())
penguins |>
ggplot() +
geom_point(aes(x = flipper_length_mm,
y = body_mass_g,
col = bill_depth_mm)) +
scale_colour_gradientn(colours = scales::pal_viridis())
penguins |>
ggplot() +
geom_point(aes(x = flipper_length_mm,
y = body_mass_g,
col = bill_depth_mm)) +
scale_colour_stepsn(colours = scales::pal_viridis())
The text was updated successfully, but these errors were encountered:
davidhodge931
changed the title
Could colour/fill scales support the use of function factories like scales::pal_hue() and scales::pal_viridis()?
Could support the use of function factories like scales::pal_hue() and scales::pal_viridis()?
Apr 15, 2024
This has been on my mind as well to make the interface between scales and palettes somewhat smoother.
Your first example can be replaced with discrete_scale("colour", palette = scales::pal_hue()), but this is not so much the case for the continuous examples.
For this to happen, I think {scales} needs to start describing palette functions more so that some properties are easily queried.
Useful properties to know about palettes are:
Is it continuous, i.e. does it accept values in the (0, 1) range.
Is it discrete, i.e. does it accept n values.
If discrete, what is the maximum n it will accept?
Do they have built-in NA handlers (e.g. via scales::colour_ramp())?
If we know this, we can automatically expand discrete palettes to continuous ones by using e.g. colour_ramp(discrete_pal()(n_max)), or discretise continuous palettes by using continuous_pal()(seq(0, 1, length.out = n).
It'd be great if it was possible to do this for all of the non-positional scales, especially colour/fill
The text was updated successfully, but these errors were encountered: