I'm trying to get my facet_grid()
labels to wrap (using ggplot
). I found the label_wrap_gen()
function to use inside the labeller and actually got it working, and I don't remember changing anything about the code, but now it no longer works (???). I was able to reproduce the issue using the NC shapefile that comes with ggplot2
.
This runs without throwing an error, but the labels aren't wrapped:
nc <- st_read(system.file("shape/nc.shp", package="sf"))
nc$grp <- c(rep('long group name 1', 33),
rep('long group name 2', 33),
rep('long group name 3', 34))
nc$cat <- rep(c('super duper long category name 1',
'super duper long category name 2',
'super duper long category name 3',
'super duper long category name 4'), 25)
nc <- nc %>%
mutate(grp = factor(grp, levels = unique(grp)),
cat = factor(cat, levels = unique(cat)))
nc %>%
ggplot() +
geom_sf(aes(fill = AREA)) +
coord_sf() +
theme(axis.text.x = element_text(angle = 90,
hjust = 1),
panel.background = element_blank(),
panel.border = element_rect(color = "grey80", fill = NA),
legend.title = element_text(),
legend.position = "bottom") +
facet_grid(grp ~ cat)
Changing the facet_grid()
call to the below throws an error:
...
facet_grid(grp ~ cat,
labeller = labeller(cat = label_wrap_gen(8),
grp = label_wrap_gen(10)))
# returns
Error in labeller(cat = label_wrap_gen(8), grp = label_wrap_gen(10)) :
unused arguments (cat = label_wrap_gen(8), grp = label_wrap_gen(10))
I've looked at this post about wrapping facet_grid()
labels and this post about unused arguments in labeller()
, but I haven't yet found anything that addresses what I'm seeing specifically.
What am I missing?