Как сделать верхний индекс внутри клея?

Я хотел бы иметь возможность делать надстрочные индексы внутри функции glue() :

   glue::glue("{seq(0, 1500, by = 250)} μg/m^3")

Таким образом, m ^ 3 не оценивается, поэтому я попытался сделать что-то вроде этого:

   glue::glue("{seq(0, 1500, by = 250)} μg/{expression(m^3)}")

Я хочу использовать его в качестве аргумента label в функции scale_x_continuous() в ggplot2.

Всего 1 ответ


Если ваша конечная цель - отформатировать что-то в {ggplot2} вы можете использовать пакет {ggtext} , чтобы применить форматирование уценки к вашим меткам:

library(tibble)
library(ggplot2)

your_sequence <- seq(0, 1500, by = 250)

labels <- glue::glue("{your_sequence} μg/m^3")

data <- tibble(x = your_sequence,
               y = sample(100:120, 7),
               labels = labels)

ggplot(data, aes(x = x, y = y)) +
  geom_point() +
  scale_x_continuous(breaks = your_sequence, labels = labels) +
  theme(axis.text.x = ggtext::element_markdown())

Хитрость заключается в применении ggtext::element_markdown() к параметру axis.text.x вашей theme() .

Делая это таким образом, вам также не нужно добавлять выражение в ваш код glue::glue() .

Надеюсь, это поможет!


Есть идеи?

10000