Closed dominicroye closed 8 months ago
Thanks for the report! I can confirm this is a bug. More minimal reprex below:
library(ggplot2)
ggplot(mtcars, aes(mpg, drat, colour = cut(disp, c(90, 200, 300, 400, 500)))) +
geom_point() +
scale_colour_viridis_d(guide = guide_colorsteps())
#> Warning: Removed 4 rows containing missing values or values outside the scale range
#> (`geom_point()`).
Created on 2024-03-07 with reprex v2.1.0
It's really strange because I had tried it with a more minimal dataset, and as you can see here, it's correct.
library(ggplot2)
df <- expand.grid(X1 = 1:10, X2 = 1:10)
df$value <- df$X1 * df$X2
p <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = cut(value, c(0, 10, 25, 75, 90, 100))))
p + scale_fill_viridis_d(guide = guide_colorsteps())
Created on 2024-03-07 with reprex v2.1.0
It's because of alphanumeric sorting of the breaks, which shouldn't happen for breaks parsed from cut()
's intervals, but should happen for numeric breaks.
I found a problem with
guide_colorsteps
after installing the last ggplot2 version.I'm not sure why, but the order of classes is not correct. Some of the extreme classes are showing up in the middle. Using the function example data it seems to work, but here it doesn't.
Here is the code to reproduce the bug: