putting mathematical symbols and subscripts mixed

2019-01-04 09:28发布

I want to plot a label that looks like this in ggplot2: Value is $\sigma$, R^{2} = 0.6 where Value is is ordinary font, $\sigma$ is a Greek lowercase sigma letter and R^{2} = 0.6 appears as an R with a superscript 2 followed by equal sign (=) followed by 0.6. How can this be used in ggplot factors and in arguments to things like xlab,ylab of R? thanks.

2条回答
淡お忘
2楼-- · 2019-01-04 09:41

Somewhat more straightforward than paste() might be:

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))

Generally paste and all those paired-quotes are not needed if you use the proper plotmath connectives. Even if you want the text that would otherwise create a Greek letter, all you need to do is enclose it in quotes with either a * or ~ on each side. One trouble with offering paste to newcomers to plotmath expressions is that they then think it is the same as paste in the rest of the language.

查看更多
Juvenile、少年°
3楼-- · 2019-01-04 09:45

Something like this :

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')))

EDIT

Another option is to use annotate with parse=T:

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

enter image description here

EDIT

The paste solution may be useful if the constant 0.6 is computed during plotting.

r2.value <- 0.90
g+ xlab( expression(paste("Value is ", sigma,",", R^{2},'=',r2.value)))
查看更多
登录 后发表回答