-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Could the scale_*_steps*
functions support applying the full range of colour provided?
#6068
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I've seen some SO posts around this, and I think having the option to do this is probably a good idea. |
OK this is more nuanced than I originally thought. Essentially:
The difference becomes much clearer when you have enevenly distributed breaks: library(ggplot2)
library(patchwork)
p <- ggplot(mpg, aes(displ, hwy, colour = cty)) +
geom_point()
breaks <- c(8, 10, 12, 16, 20, 24)
p1 <- p +
scale_colour_binned(type = "viridis", breaks = breaks) +
labs(title = "binned")
p2 <- p +
scale_colour_stepsn(colours = viridis::viridis(9), breaks = breaks) +
labs(title = "stepsn")
p1 + p2 Created on 2024-09-16 with reprex v2.1.1 In order to take the 'full range' of the continuous scale, one shouldn't rescale the values using the limits, but the most extreme breaks. Unfortunately, the plumbing isn't setup to deal with this, so it is harder to do than anticipated. |
Ah, I see - thanks for the explanation. I think it is a valid and common use-case to want to colour bins of your own custom colours and apply that colour palette in a discrete way like Feel free to close |
Since #6216, library(tidyverse)
palmerpenguins::penguins |>
ggplot() +
geom_point(aes(x = flipper_length_mm, y = body_mass_g, col = flipper_length_mm)) +
scale_colour_binned(palette = viridis::mako(9))
#> Warning: Removed 2 rows containing missing values or values outside the scale range
#> (`geom_point()`). Created on 2025-03-25 with reprex v2.1.1 Considering this fixed. |
The
scale_*_steps*
functions currently do not apply the full range of colours to a plot.See example below of
scale_colour_binned
, which applies the full range of the viridis colour palette compared to adding viridis colours toscale_colour_stepsn
which does not.Generally, you need as big a range of colour as possible when colouring a numeric variable.
Could the
scale_*_steps*
functions apply the full range of colour by default to the plot?Created on 2024-09-01 with reprex v2.1.1
The text was updated successfully, but these errors were encountered: