Hello,
I have found that my ggplots are not behaving as they once had. I often make use of the "drop=FALSE" option inside a scale_X_manual command in order to maintain the same legend across multiple plots. However, with R version 4.3.X, this command appears to not work as intended. Please see a reprex below. The label for the unused factor level appears appropriately, but the corresponding point and color do not (a purple dot is missing from the legend in the below example).
When reverting to R version 4.2.X, the desired purple dot appears as expected. I have confirmed this finding with others in my organization. Are others experiencing the same?
library(ggplot2)
# Dataset contains three species: setosa, versicolor, and virginica
data(iris)
# Suppose we have a factor with one level not represented in the data: unguicularis
iris$Species = factor(iris$Species, levels = c("setosa", "versicolor", "virginica", "unguicularis"))
# We can include unguicularis in a ggplot legends through the drop=false command
myplot = ggplot(data = iris, mapping = aes(x = Petal.Length, y = Petal.Width, color = Species)) +
geom_point() +
scale_color_manual(values = c("setosa" = "black", "versicolor" = "red", "virginica" = "blue", "unguicularis" = "purple"), drop = FALSE)
# However, the legend will only include the factor labels, not a corresponding shape or color
myplot
Created on 2024-03-24 with reprex v2.1.0