Sweave、Beamer 和 ggplot2

Sweave、Beamer 和 ggplot2

互联网上几乎没有任何东西可以展示它们如何相互配合。我真的很感激你能提供最简单的 Rnw 文档示例,该示例可以使用 R 中的 Sweave() 运行。

如果您可以提供标题、简单情节、页面居中以及页码。请让我们看看您如何做到。

短暂性脑缺血。

答案1

下面是我厚颜无耻地抄袭的一些例子R 代码来自 Cross-Validated。它可以用多种方式编译,但我个人使用

R CMD Sweave 1.Rnw
pdflatex 1.tex

实际内容如下1.Rnw

\documentclass[a4paper,11pt]{article}

\title{A sample Sweave demo}
\author{Author name}
\date{}

\begin{document}

\SweaveOpts{engine=R,eps=FALSE,pdf=TRUE,strip.white=all}
\SweaveOpts{prefix=TRUE,prefix.string=fig-,include=TRUE}
\setkeys{Gin}{width=0.6\textwidth}

\maketitle

<<echo=false>>=
set.seed(101)
library(ggplot2)
library(ellipse)
@

<<>>=
n <- 1000
x <- rnorm(n, mean=2)
y <- 1.5 + 0.4*x + rnorm(n)
df <- data.frame(x=x, y=y)

# take a bootstrap sample
df <- df[sample(nrow(df), nrow(df), rep=TRUE),]

xc <- with(df, xyTable(x, y))
df2 <- cbind.data.frame(x=xc$x, y=xc$y, n=xc$number)
df.ell <- as.data.frame(with(df, ellipse(cor(x, y), 
                                         scale=c(sd(x),sd(y)), 
                                         centre=c(mean(x),mean(y)))))
p1 <- ggplot(data=df2, aes(x=x, y=y)) + 
  geom_point(aes(size=n), alpha=.6) + 
  stat_smooth(data=df, method="loess", se=FALSE, color="green") + 
  stat_smooth(data=df, method="lm") +
  geom_path(data=df.ell, colour="green", size=1.2)
@

\begin{figure}
  \centering
<<fig=true,echo=false>>=
print(p1)
@
\caption{Here goes the caption.}
\label{fig:p1}
\end{figure}

\end{document}

使用 Beamer,你只需要将第一行替换为

\documentclass[t,ucs,12pt,xcolor=dvipsnames]{beamer}

或者添加任何你想要的自定义,\maketitle用类似 的内容替换\frame{\titlepage},然后用\begin{frame}[fragile] ... \end{frame}语句将每个代码块括起来。编译方式与上述相同。

代码块可以使用以下方式定制:

\DefineVerbatimEnvironment{Sinput}{Verbatim}
{formatcom = {\color{Sinput}},fontsize=\scriptsize} 
\DefineVerbatimEnvironment{Soutput}{Verbatim}
{formatcom = {\color{Soutput}},fontsize=\footnotesize}
\DefineVerbatimEnvironment{Scode}{Verbatim}
{formatcom = {\color{Scode}},fontsize=\small} 

它需要fancyvrb并且需要位于 之后的某个位置\begin{document}。就我个人而言,我将它保存在一个外部配置文件中,其中包括:

\definecolor{Sinput}{rgb}{0.75,0.19,0.19}
\definecolor{Soutput}{rgb}{0,0,0}
\definecolor{Scode}{rgb}{0.75,0.19,0.19}

以下是快照:

在此处输入图片描述

相关内容