12

我正在尝试ggplot2使用knitr. 为了快速做到这一点,我想使用内置的examples 来填充内容。

经过一些试验和错误,我已经到了这一点:

\documentclass[a4paper,titlepage]{tufte-handout}
\usepackage{pdflscape}
\usepackage{graphicx}
\usepackage{alltt}

<<setup, include=FALSE, cache=FALSE>>=
options(replace.assign=TRUE,tidy=TRUE)
library(ggplot2)
library(plyr)
library(scales)
geoms <- setdiff(apropos("^geom_"),"geom_blank")
@

\title{ggplot2 Gallery}

\begin{document}
\maketitle

<<examples, echo=FALSE, comment=NA>>=
for(i in geoms){
    writeLines(paste0("\\section{",gsub("_","\\\\_",i),"}"))
    do.call("example",list(i))
}
@

\end{document}

但是仍然有一些我无法解决的问题:

  • 我似乎无法在块中混合markupasis结果选项,以便生成部分标题。(这对于稍后的文档导航至关重要)。有没有其他方法可以在块中生成书写 LaTex?

  • 有一些示例会引发错误(这就是geom_blank排除的原因)。knitr文档指出,如果出现错误,计算会继续进行,但似乎只是 knit 过程在继续;示例循环在此时停止。有没有办法避免示例中的错误部分?

  • 代码输出的example语法未突出显示。(有用但不是必需的)。

4

1 回答 1

13

完整代码参见021-ggplot2-geoms.Rnw。基本思想是在编织之前构建代码块。代码很短,所以可能我不需要过多解释。

理论上你应该能够得到这样的东西(超过 200 页的ggplot2例子):

由 knitr 生成的 ggplot2 几何图形

于 2012-07-25T19:24:48.480 回答