ggplot文本中的下标

时间:2016-09-20 07:29:15

标签: r text ggplot2 linear-regression subscript

我在下标情节文本中遇到了问题。首先,我对2个连续变量进行了简单的线性正态回归,并使用ggplot绘制它。

Olm=lm(LPBEO ~ SNTO, LPBESNTR)
Ointercept=signif(coef(Olm)[1], digits=3)
Oslope=signif(coef(Olm)[2], digits=3)
Otext= paste("O-LPBE[50]","=",Ointercept,"+ (", Oslope, "x O-SN[50])")
Opred<- predict(Olm, interval="prediction")
Odataframe=data.frame(cbind(LPBESNTR$SNTO,LPBESNTR$LPBEO,Opred))
colnames(Odataframe)=c("SNTO", "LPBEO", "fit", "lwr", "upr")
O=ggplot(Odataframe, aes(x=SNTO, y=LPBEO))+
  geom_point(shape=20,colour = "red", size = 3)+
  geom_line(aes(y=lwr), color = "red", linetype = 2, size=1)+
  geom_line(aes(y=upr), color = "red", linetype = 2, size=1)+
  geom_smooth(method=lm, fill = "orange",colour="red", size = 1 )+
  ggtitle("SNT O vs LPBE O") + 
  theme(plot.title = element_text(face="bold",size=20)) + 
  xlab(bquote(~"Log"[10]~ "SN"[50]))+ 
  theme(axis.title.x = element_text(face='bold', size=20),axis.text.x = element_text(face='bold', size=20)) +
  ylab(bquote(~"Log"[10]~"LPBE"[50]))+
  theme(axis.title.y = element_text(face='bold', size=20),axis.text.y  = element_text(face='bold', size=20)) + 
  annotate("text", x = 1.5, y = 4.5, label = Otext, color="black", fontface="bold", size = 5, parse=FALSE)
O

我想在文本中添加下标以显示回归方程。为此,我首先使用粘贴命令创建了一个对象Otext,我用它来注释绘图。该命令创建对象但不能在文本中显示下标。我无法指出代码中的问题在哪里 我需要50才能在情节的文本注释中显示为下标,

Otext= paste("O-LPBE[50]","=",Ointercept,"+ (", Oslope, "x O-SN[50])")

然而,它在括号中显示为不是下标。

我请求某人澄清如何做到这一点。 谢谢

1 个答案:

答案 0 :(得分:0)

你可以使用expression()作为下标,但因为你想引用一个变量,我们需要使用bquote():

Otext=bquote(paste("O-LPBE"[50],"=",.(Ointercept),"+ (", .(Oslope), " x O-SN"[50],")"))

这里我们使用。(变量)引用你的变量,使用[subscript]代表下标(^代表上标)。