Использование plotmath в ggplot2 со знаком процента (%)


Я хотел бы использовать греческие символы, латинские символы и знак процента в метках фасета гистограммы ggplot2. Греческие символы можно сделать с помощью ' facet_grid(.~переменная, labeller=label_parsed)':

    a<-c("Delta~V","VarcoV","Delta~V","VarcoV")
    b<-c(1,2,3,4)
    d<-c("one","one","two","two")
    mydata<-data.frame(cbind(b,a,d))
    ggplot(mydata,aes(x=d,y=b))+facet_grid(.~a, labeller=label_parsed)+geom_bar(stat="identity")

Теперь я также хочу добавить метку фасета, которая включает % и латинский символ:

    a<-c("Delta~V","VarcoV","%V","Delta~V","VarcoV","%V")
    b<-c(1,2,3,4,5,6)
    d<-c("one","one","one","two","two","two")
    mydata<-data.frame(cbind(b,a,d))
    ggplot(mydata,aes(x=d,y=b))+facet_grid(.~a, labeller= label_parsed)+geom_bar(stat="identity")

Это приводит к следующей ошибке:

    Error in parse(text = x) : <text>:1:1: unexpected input
    1: %V
       ^

Есть идеи, как включить знак процента?

1 8

1 ответ:

Латинские символы не нуждаются в какой-либо специальной обработке, и вы можете увидеть это в первом элементе a. Попробуйте это:

a<-c("Delta~V","VarcoV","'%'*V","Delta~V","VarcoV","'%'*V")

Знак "%" является специальным, поэтому его нужно процитировать. Вы могли бы просто сделать '%V', но я вставил " * " (звездочку), чтобы показать, как отделить plotmath токены без отображаемого пространства. (Похоже, вы уже знаете, как разделять маркеры с помощью разделителя интервалов"~".)

Ключевой урок заключается в смешивании типов цитат. Первый тип котировки будет сигнализировать какой тип используется для завершения символьного токена/строки. Вы также можете использовать escape-символ:"\". Это также удается:

a<-c("Delta~V","VarcoV","\"%\"*V","Delta~V","VarcoV","\"%\"*V")