figure チャンクを使って図を挿入するのは記述が面倒くさい。
そこで,以下のような関数を作っておき,results=tex を使って作図した結果を挿入する。
xfigure <- function(src, fn, caption="", label=fn, size=320, width=6, height=6,
mgp=c(1.8, 0.6, 0), mar=c(3, 3, 1, 1))
{
pdf(sprintf("%s.pdf", fn), width=width, height=height)
par(mgp=mgp, mar=mar)
eval(parse(text=src))
dev.off()
header <- "\\begin{figure}[htbp]\\begin{center}"
trailer <- sprintf("\\end{center}\\caption{%s}\\label{%s}\\end{figure}", caption, label)
cat(sprintf("%s\\includegraphics[bb=0 0 %sin %sin, clip, width=%sbp]{%s.pdf}%s",
header, width, height, size, fn, trailer))
}
利用は,以下のように。第一引数は作図プログラムを文字列で与える。
<<echo=false, results=tex>>=
xfigure("
hist(rnorm(1000))
abline(h=1:4*50, col=2, lty=2)
",
"testtest", "テストです", height=4)
@
結果は以下のようになる。いいね。
※コメント投稿者のブログIDはブログ作成者のみに通知されます