R ggplot2 аннотировать с нижним индексом и тильдой

Я пытаюсь аннотировать график ggplot2 меткой, в которой указано распределение для X1 ~ N (mu = 10, sigma = 3), где 1 должен быть индексом, например:

label1<-"X[1] ~ N( \U03bc = 10, \U03c3 = 3)"

Когда я использую label1 следующим образом:

library(ggplot2)
label1<-"X[1] ~ N( \U03bc = 10, \U03c3 = 3)"
ggplot() + annotate("text", x=18,y=0.05,label=label1)

Нижний индекс игнорируется, остальное то, что нужно.

Когда я использую label1 следующим образом:

library(ggplot2)
label1<-"X[1] ~ N( \U03bc = 10, \U03c3 = 3)"
ggplot() + annotate("text", x=18,y=0.05,label=label1,parse=TRUE)

нижний индекс нанесен правильно, но тильда превращается в пробел.

Любые советы, как сделать, чтобы нижний индекс и знак тильды происходили? Спасибо!


person MartineJ    schedule 18.09.2017    source источник


Ответы (2)


Вы можете заменить ~ на %~% в методе 2 (т.е. parse = TRUE). Я также заменил юникод для мю и сигмы их греческими буквами:

label1 <- "X[1] %~% N(mu == 10, sigma == 3)"
ggplot() + 
  annotate("text", x=18, y=0.05, label=label1, parse=TRUE)

изображение

person Z.Lin    schedule 18.09.2017

Добавьте % к тильде как таковой:

label1<-"X[1] %~% N( \U03bc = 10, \U03c3 = 3)"
person timfaber    schedule 18.09.2017
comment
подробнее см.: vis.supstat.com/2013/04/ математическая-аннотация-в-r - person timfaber; 18.09.2017
comment
В названии, например. labs(title = parse(text = "X[1] %~% N( \U03bc = 10, \U03c3 = 3)")) - person PatrickT; 04.04.2018