使用ggplot2中的plotmath和百分号(%)

时间:2013-06-08 00:07:32

标签: r ggplot2 bar-chart plotmath

我想在ggplot2条形图的facet标签中使用希腊字符,拉丁字符和百分号。希腊字符可以使用'facet_grid(.~variable,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 个答案:

答案 0 :(得分:12)

拉丁字符不需要任何特殊处理,您可以在a的第一个元素中看到这一点。试试这个:

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

“%”符号是特殊的,因此您需要引用它。你可能刚刚完成了'%V'但是我扔了“*”(星号)来展示如何分隔 plotmath 标记而没有显示空格。 (您似乎已经知道如何使用spacing-separator分隔标记,“〜”。)

关键的教训是混合报价类型。第一个引用类型将指示哪个类型用于终止字符标记/字符串。您还可以使用转义字符:“\”。这也成功了:

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