ggplot 文本中的下标
subscript in ggplot text
我在将下标放入绘图文本时遇到了问题。首先,我对 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])")
但是它在括号中显示为这样而不是下标。
我请求有人澄清如何做到这一点。
谢谢
您可以使用 expression() 作为下标,但因为您也想引用一个变量,我们需要使用 bquote():
Otext=bquote(paste("O-LPBE"[50],"=",.(Ointercept),"+ (", .(Oslope), " x O-SN"[50],")"))
这里我们使用 .(variable) 来引用您的变量,并使用 [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])")
但是它在括号中显示为这样而不是下标。
我请求有人澄清如何做到这一点。 谢谢
您可以使用 expression() 作为下标,但因为您也想引用一个变量,我们需要使用 bquote():
Otext=bquote(paste("O-LPBE"[50],"=",.(Ointercept),"+ (", .(Oslope), " x O-SN"[50],")"))
这里我们使用 .(variable) 来引用您的变量,并使用 [subscript] 作为下标(^ 作为上标)。