Это немного обходной путь, но у вас не должно возникнуть проблем с его внедрением в вашем случае.Я немного поиграл с этим, и мне повезло, создав реальную переменную fontface прямо в наборе данных и используя цифры вместо c("plain", "bold")
.
library(tidyverse)
library(magrittr)
data("mtcars")
mtcars %<>%
rownames_to_column %>%
mutate(
rowname = rowname %>%
fct_reorder(mpg)
)
mtcars$font_face <- rep(c(1,2,3,4))
p1 <- mtcars %>%
ggplot(aes(mpg, rowname)) +
geom_point() +
theme(axis.text.y = element_text(face = mtcars$font_face)) +
facet_grid(cyl ~ .,
scales = "free_y",
space = "free_y")
p1
Как видите, позиции четырех граней выделены курсивом = 1, жирным шрифтом = 2, простым = 3 и жирным шрифтом.italic = 4.
Итак, чтобы воссоздать пример, который вы представили, вам просто нужно сгенерировать переменную в исходном канале данных и назначить ее любым подходящим способом.Чтобы воссоздать ваш пример явно, я бы пошел со следующим кодом, но я предполагаю, что вы захотите разработать решение dplyr, которое действительно соответствует вашему варианту использования.
mtcars$font_face <- ifelse(mtcars$rowname %in% c("Toyota Corolla", "Fiat 128"), 2, 3)
edit:
Окончательное решение в настоящее время не работает (строка ifelse
).Он распознает значение else
и выбор из 1:4
успешно изменяет эффект, примененный к меткам, но не выбирает изменение меток для значений if
, несмотря на то, что переменная mtcars$font_face
принимаетэти ценности.
Я застрял в данный момент, потому что я не могу понять, почему это работало для меня раньше, но не на новом сеансе.Я все еще работаю над тем, чтобы понять это сам, но, возможно, мое начало поможет кому-то перейти к следующему шагу.