R 图后的 Sweave 中的标题

R 图后的 Sweave 中的标题

我有以下 R 块:

<<echo=FALSE>>=
par(mfrow=c(3,1))

#cas basal: no negra no fumadora sense prematurs ni hipertensi?
lwt.pred<-seq(80,250,1)
prob.pred<-0+model.final$coefficients[3]*lwt.pred
prob.pred.log<-exp(prob.pred)/(1+exp(prob.pred))
plot(lwt.pred,prob.pred.log,type="l",ylim=c(0,1),ylab="Prob. infrapès",xlab="Pes de la mare",main="Ètnia")

#cas negra
prob.pred2<-model.final$coefficients[3]*lwt.pred+model.final$coefficients[5]
prob.pred.log2<-exp(prob.pred2)/(1+exp(prob.pred2))
lines(lwt.pred,prob.pred.log2,type="l",col=3)

plot(lwt.pred,prob.pred.log,type="l",ylim=c(0,1),ylab="Prob. infrapès",xlab="Pes de la mare",main="Parts prematurs")
#cas parts prematurs
prob.pred3<-model.final$coefficients[3]*lwt.pred+model.final$coefficients[2]
prob.pred.log3<-exp(prob.pred3)/(1+exp(prob.pred3))
lines(lwt.pred,prob.pred.log3,type="l",col=2)

plot(lwt.pred,prob.pred.log,type="l",ylim=c(0,1),ylab="Prob. infrapès",xlab="Pes de la mare",main="Hipertensió")
#hipertensos
prob.pred4<-model.final$coefficients[3]*lwt.pred+model.final$coefficients[4]
prob.pred.log4<-exp(prob.pred4)/(1+exp(prob.pred4))
lines(lwt.pred,prob.pred.log4,type="l",col=6)

par=c(1,1)
@

它输出三个图,我想在它下面插入一个图像标题。我不知道是否应该在 R 块中(使用函数xtable(,caption=))或在 LaTeX 中(使用\caption{})执行此操作。但是我认为前者需要一个具有名称的给定元素,而后者必须插入{figure}片段中。我该如何解决这个问题?

答案1

姆韦

使用knitr

\documentclass{article}
\begin{document}
<<test,echo=FALSE,fig.cap="Three plots in one figure",fig.height=3>>=
par(mfrow=c(1,3))
x <- rnorm(100, 3, 1)
y <- rnorm(100, 1, 1)
plot(x,0.05*x^2)
plot(x,log1p(x^3))
plot(log1p(x),log1p(x^2+y))
@
\end{document}

使用Sweave(不推荐):

\documentclass{article}
\begin{document}
\begin{figure}
\centering
<<test,echo=FALSE,fig=T,,height=3>>=
par(mfrow=c(1,3))
x <- rnorm(100, 3, 1)
y <- rnorm(100, 1, 1)
plot(x,0.05*x^2)
plot(x,log1p(x^3))
plot(log1p(x),log1p(x^2+y))
@
\caption{Three plots in one figure}
\end{figure}
\end{document}

相关内容