Метки фасетов ggplot2 - вторая строка не отображается

У меня есть сценарий, который использовался для создания фасетного графика с полосковым текстом на нескольких строках. Но это больше не работает. Ниже приведен MWE, из которого следует анализировать текст полосы, например"bold(A)\nreally~long~extra" кому:


Очень долго экстра

Вторая строка отключена, как вы можете видеть через функцию отладки. Я даже увеличил наценку, но безуспешно...

Есть идеи, в чем проблема?

exmpl = data.frame(a = 1:100,
               b = rep(1:5, 20),
               f = factor(rep(LETTERS[1:5], each = 20))) %>% 
  as_tibble() %>% 
  mutate(f2 = paste0("bold(",f, ")\nreally~long~extra"))

ggplot(exmpl, aes(x = b, y = a)) +
  facet_grid(. ~ f2, labeller = label_parsed) +
  geom_point() +
  theme(strip.text.x = element_text(size = 10, hjust = 0, margin = margin(.5, 0, .5, 0, "cm"), debug = T))

РЕДАКТИРОВАТЬ:

И пока мы занимаемся этим, я придумал этот обходной путь только потому, что мое предыдущее решение использования label_bquote()больше не работает. Пожалуйста, взгляните на этот другой вопрос, может быть, вы тоже можете мне с этим помочь?

1 ответ

Решение

Не уверен, что это сработает для вас. Но одним из способов добиться желаемого результата было бы использованиеggtextпакет, который позволяет вам стилизовать ваши метки фасетов с помощью HTML и CSS. К этому концуggtext вводит новый элемент темы element_markdown. Попробуй это:

library(ggplot2)
library(dplyr)

exmpl = data.frame(a = 1:100,
                   b = rep(1:5, 20),
                   f = factor(rep(LETTERS[1:5], each = 20))) %>% 
  as_tibble() %>% 
  mutate(f2 = paste0("<b>", f, "</b><br>", "really long extra"))


ggplot(exmpl, aes(x = b, y = a)) +
  facet_grid(. ~ f2) +
  geom_point() +
  theme(strip.text.x = ggtext::element_markdown(size = 10, hjust = 0))

А для второго вопроса в вашем предыдущем посте решение может выглядеть так:

mylabel <- function(x) {
  mutate(x, Species = paste0(letters[Species], " <i>", Species, "</i>"))
}

p <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()

p + facet_grid(. ~ Species, labeller = mylabel) +
  theme(strip.text.x = ggtext::element_markdown())

Другие вопросы по тегам