Как использовать курсив в label_bquote для полосных текстовых меток
Было предложено множество решений для множества немного разных проблем, но ни одно из них не решает мою конкретную проблему.
Я хочу следующее: я хочу смешать обычные метки субфигур (a, b, c, ...) с названиями видов, выделенными курсивом. Пока я хочу сделать это только для четырех видов, так что я могу жить с ручным решением. А вот настраиваемая функция, автоматизирующая процесс, была бы полезной...
Например, полоса текста вида a будет:
а) Род виды
Вот воспроизводимый пример с iris
набор данных:
library(ggplot2)
p <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()
p + facet_grid(. ~ Species)
Итак, я хотел бы, чтобы текст полосы был прочитан (игнорируя отсутствующую радужку...):
а) сетоса
б) разноцветный
в) virginica
Я попытался добавить следующие модификации:
p + facet_grid(. ~ Species, labeller = label_bquote(cols = letters[1:4] ~ .(Species)))
p + facet_grid(. ~ Species, labeller = label_bquote(cols = letters[1:4] ~ italic(Species)))
p + facet_grid(. ~ Species, labeller = label_bquote(cols = letters[1:4] ~ .(italic(Species))))
Добавление letters[1:4]
очевидно не работает. Я тоже не понимаю, почемуitalic(Species)
даст мне "Виды" (буквально означает слово "Виды" курсивом), а.(Species)
фактически вставит числовые уровни Species
(1, 2, 3). А также.(italic(Species))
просто выдает мне сообщение об ошибке could not find function "italic"
.
Как сделать так, чтобы уровни видов были выделены курсивом? И как бы мне тогда добавить к нему буквы?
РЕДАКТИРОВАТЬ:
Я действительно использовал предложенное Axeman решение, то естьlabel_bquote(cols = .(letters[Species]) ~ italic(.(as.character(Species))))
Вот снова пример с кодом, который работал до недавнего времени:
p <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()
p + facet_grid(. ~ Species, labeller = label_bquote(cols = .(letters[Species]) ~ italic(.(as.character(Species)))))
Тем не менее,ggplot2
или какая-то другая зависимость, похоже, изменилась, так что это больше не работает. Теперь это дает мне ошибкуError in letters[Species] : could not find function "["
. Понятия не имею, почему! Есть идеи?