Математический (установленный) символ в метке оси ggplot - PullRequest
2 голосов
/ 04 мая 2020

Я пытаюсь включить математические знаки в ggplot метки оси. Рассмотрим следующий код.

library(ggplot2)
df <- data.frame(dose=c("D0.5", "D1", "D2"), len=c(4.2, 10, 29.5))
ggplot(data=df, aes(x=dose, y=len, group=1)) +
  ylab("length")+
  geom_line()+
  geom_point()

Теперь я хотел бы включить диапазон len ("Length") в описание оси Y с пометкой Length ∈ [0, 10], но не могу найти способ получить элемент " "войдите в этикетку.

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

Здесь есть отличный пост здесь , который проходит по-разному, здесь я использую expression

ggplot(data=df, aes(x=dose, y=len, group=1)) +
  ylab("length")+
  geom_line()+
  geom_point() +
  ylab(expression("Length " ~ epsilon ~ " [0, 10]"))

РЕДАКТИРОВАТЬ: Поскольку символ для элемента \in, Код выражения не работает, поскольку in является встроенной функцией. Вероятно, есть обходной путь, но мне пришлось прибегнуть к использованию пакета latex2exp

library(latex2exp)


ggplot(data=df, aes(x=dose, y=len, group=1)) +
  ylab("length")+
  geom_line()+
  geom_point() +
  ylab(TeX(sprintf("Length $\\in$ \\[0, 10\\]")))
0 голосов
/ 04 мая 2020

Для специальных символов вы можете ссылаться на их значение Unicode через escape-символ \U####. ∈ - это Unicode (U + 2208), поэтому для вставки символа ∈ можно использовать \U2208.

Итак:

> 'Length \U2208 [0, 10]'
[1] "Length ∈ [0, 10]"

А затем вы можете просто использовать ylab('Length \U2208 [0, 10]') в код вашего сюжета.

...