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

53 r ggplot2 mathematical-typesetting

我想绘制一个看起来像这样的标签ggplot2:

Value is $\sigma$, R^{2} = 0.6Value is普通字体在哪里,$\sigma$是一个希腊小写的西格玛字母,R^{2} = 0.6显示为R带有上标2后跟等号(=)后跟的0.6.如何在ggplot factorxlab,ylabR之类的参数中使用它?

ags*_*udy 57

像这样的东西:

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')))
Run Code Online (Sandbox Code Playgroud)

编辑

另一种选择是使用annotate具有parse=T:

g+ annotate('text', x = 0, y = 0, 
        label = "Value~is~sigma~R^{2}==0.6 ",parse = TRUE,size=20) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑

paste如果在绘图期间计算常数0.6,则该解决方案可能是有用的.

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

  • `paste`从来没有打动过我作为plotmath的好选择; 尝试`xlab(bquote(值〜是~sigma~R ^ {2} ==.(r2.value)))`. (14认同)
  • 如果有人不知道这一点,那么巴蒂斯特就是一个真正的情节主义者.如果你想学习很多关于R的绘图系统的知识,只需在SO上提取他的许多答案并从硕士学习. (8认同)
  • 如果你想要sigma尝试使用`\ u03c3` (2认同)

42-*_*42- 40

比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))
Run Code Online (Sandbox Code Playgroud)

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