将数学符号和下标与普通字母混合在一起

时间:2013-02-28 01:04:52

标签: r ggplot2 mathematical-typesetting

我想在ggplot2

中绘制一个看起来像这样的标签

Value is $\sigma$, R^{2} = 0.6其中Value is是普通字体,$\sigma$是希腊小写的西格玛字母,R^{2} = 0.6显示为R,带有上标2然后是等号(=),后跟0.6。如何在ggplot factor中以及在诸如R的xlab,ylab之类的参数中使用它?

2 个答案:

答案 0 :(得分:52)

这样的事情:

g <- ggplot(data=data.frame(x=0,y=0))+geom_point(aes(x=x,y=y))
g+ xlab( expression(paste("Value is ", sigma,",", R^{2},'=0.6')))

修改

另一种选择是将annotateparse=T

一起使用
g+ annotate('text', x = 0, y = 0, 
        label = "Value~is~sigma~R^{2}==0.6 ",parse = TRUE,size=20) 

enter image description here

修改

如果在绘图期间计算常数0.6,则paste解决方案可能很有用。

r2.value <- 0.90
g+ xlab( expression(paste("Value is ", sigma,",", R^{2},'=',r2.value)))

答案 1 :(得分:36)

比paste()稍微简单一点:

g <- ggplot(data=data.frame(x=0,y=0))+geom_point(aes(x=x,y=y))
g+ xlab( expression(Value~is~sigma~R^{2}==0.6))

如果使用正确的plotmath连接词,通常paste和所有那些配对引号都不需要。即使您想要原本会创建希腊字母的文本,您只需将其括在引号中,每边都有*~。将paste提供给plotmath表达式的新手的一个问题是他们认为它与其他语言中的paste相同。