Предположим, у нас есть следующий набор данных:
d = data.frame(
y = rnorm(100),
x = rnorm(100),
f1 = sample(c("A", "B"), size=100, replace=T)
)
И я хочу построить данные с использованием фасетов:
require(ggplot2)
plot = ggplot(d, aes(x,y)) +
facet_grid(~f1, labeller = labeller(.cols=label_both))
Теперь давайте предположим, что я хочу использовать все столбцы с заглавной буквы. Это тривиально сделать с переменными x / y:
plot + labs(x="X", y="Y")
Но как мне go использовать заглавные буквы в метках фасетов?
Очевидные решения:
- Просто измените имя переменной (например,
d$F1 = d$f1
), а затем повторно запустите код. - Создайте настраиваемую этикетировочную машину, которая использует имена переменных с заглавной буквы
Однако я не могу сделать ни то, ни другое в моем текущем приложении. Я не могу изменить исходный объект ggplot; Я могу только слой (например, как я делаю с метками оси x / y) или могу напрямую изменять объект ggplot.
Итак, есть ли способ изменить метки фасетов, напрямую изменив объект ggplot или наложив его на слои?