Description
Currently, ggplot2::labeller()
silently labels the facets with "NA" if the user supplies unnamed character vectors.
library(ggplot2)
ggplot(ToothGrowth, aes(y = len)) +
geom_boxplot() +
facet_wrap(vars(supp), labeller = labeller(supp = c("orange juice yum", "vitamin C yuck")))
If there is a typo in the name (or if there just isn't a new label defined in the vector), the same thing happens: "NA" is given as a title.
library(ggplot2)
ggplot(ToothGrowth, aes(y = len)) +
geom_boxplot() +
facet_wrap(vars(supp), labeller = labeller(supp = c("OJ" = "orange juice yum", "vC" = "vitamin C yuck")))
I am not sure what would be most appropriate, but I would have expected to get something like this:
Warning: labeller() could not match one or more of the original labels. The facets were titled "NA".
ℹ: did you forget to provide a named character vector, or are some labels missing from the lookup table?
The function allows using lookup tables that include superfluous data, which is probably good for flexibility, but I think that naming a facet with "NA" should throw a warning, or at least a message, when the is not enough data.
Or should the default behaviour change to using the original label if no match is found, allowing the use of partial lookup tables? I can see people wanting to only cherry pick a couple of labels to replace.
Using:
- ggplot2 3.3.5
- R 4.1.1