knitr figure
knitr + Rmarkdown + pandocメモ
YAML
---
title: "MyYAML"
author: "Keach Murakami"
date: "2016-10-04 18:57:30"
bibliography: ~/GitHub/BeeLabR/BibTex/Full.bib
header-includes:
- \setmainfont{Helvetica Neue}
- \usepackage{zxjatype} # 日本語を使うためのパッケージ
- \setjamainfont{Hiragino Kaku Gothic Pro} # 日本語フォントの指定
- \usepackage{lscape} # 図を回転するためのパッケージ
- \newcommand{\blandscape}{\begin{landscape}} # 図回転用のbegin command
- \newcommand{\elandscape}{\end{landscape}} # 図回転用のend command
- \usepackage{setspace} # 行間の調節ためのパッケージ
- \newcommand{\bdoublespace}{\begin{spacing}{1.5}} # 行間を広げるbegin command
- \newcommand{\edoublespace}{\end{spacing}{}} # 行間を広げるbegin command
- \usepackage{lineno} # 行番号を追加するためのパッケージ
- \linenumbers # 行番号を追加する
output:
pdf_document:
latex_engine: xelatex
toc: TRUE
toc_depth: 3
fig_caption: TRUE
html_document:
theme: sandstone
self_contained: TRUE
fig_caption: TRUE
---
行番号をつける・ダブルスペースにする
Set double spacing and line numbers when converting from Markdown to PDF with pandoc
Setup chunk
# knitrごとに読み込まれているオブジェクトを全消去
rm(list = ls())
# ggplotの作図用。デフォルトの大きさを指定
base_size_default <- 12
# 数式・図・表にオートで番号付け
devtools::source_url("https://raw.githubusercontent.com/KeachMurakami/Sources/master/TeX_accessory.R")
EqnHead <- "4-"
FigHead <- "Fig. 4-"
TableHead <- "Table 4-"
knitr::opts_chunk$set(echo = FALSE, fig.width = 5, fig.height = 5,
out.width = '500pixel', out.height = '500pixel', dpi = 100,
message = FALSE, warning = FALSE, cache = F, eval = T)
knitr + rmarkdownで図の大きさ調節
- fig.width/height
- 図のプロットのサイズ
- インチ単位
- out.width/height
- 図を出力した際のサイズ
- 拡大/縮小コピー的な
- LaTeX: .8\linewidth, 3in, 8cm, 40% (= 0.4\linewidth)…
- HTML: 300px, 5cm, 3in, 40%…
- out.extra
- out.extra=’angle=90’など
- 任意文字を引数として受け取るので、自由に編集できるらしい
- html images にも使える (extra options will be written into the tag, e.g. out.extra=’style=”display:block;”’)
# {r, fig.width = 5, fig.height = 5, out.width = '50%'}
plot(sin(1:100), type = "l")
# {r, fig.width = 2, fig.height = 2, out.width = '50%'}
# 小さく書いたのを拡大するイメージ
plot(sin(1:100), type = "l")
# {r, fig.width = 7, fig.height = 7, out.width = '50%'}
# 大きく書いたのを縮小するイメージ
plot(sin(1:100), type = "l")
図のキャプションにhtmlタグを直打ちする
図のキャプションに特殊文字、上付き文字、斜体を使う場合など
chunk optionにそのままhtmlタグ入りの文字列を入れると、fig.cap
以下の引数が無視される
caption_html <-
"with html tag <i>test</i><sup>test</sup>."
caption_plain <-
"without html tag testtest."
knitr::opts_chunk$set(fig.width = 5)
htmlタグなしの場合のhtmlのソース
{r, fig.cap = caption_plain}
<img src="略=" alt="without html tag testtest." width="480">
<p class="caption">
without html tag testtest.
</p>
htmlタグありの場合のhtmlのソース
{r, fig.cap = caption_html}
."
のあたりでタグがコンタミしているため、fig.widthに引数が届いていない
<img src="略=" alt="with html tag <i>test</i><sup>test</sup>." width=“480” />
<p class=" caption">
with html tag <i>test</i><sup>test</sup>.
</p>
こういうときのためにknit_hooks
がある
chunkの表示だったり実行だったりを自分好みにする
setup chunkで読み込むのがよい
knitr::knit_hooks$set(html.cap = function(before, options, envir) {
if(!before) {
paste0('<p class="caption">', options$html.cap, "</p>")
}
})
hookしたタグありの場合のhtmlのソース
{r, html.cap = caption_html}
<img src="略=" width="480" />
<p class="caption">
with html tag <i>test</i><sup>test</sup>.
</p>
ローカルの画像を直接貼り付ける
Drawソフトで書いた画像、あるいは写真を貼付ける、といった場合、2つの方法がある
-
html部にmarkdown記法 (直書き)
html部に![図のキャプション](/path/to/image)
と直書きする 図のキャプションをhtml書きしないといけなかったり、変数として扱えなかったり、と面倒が多い -
chunk内にknitr::include_graphics
knitr::include_graphics(path = "path/to/image")
参考ページ
R markdown(knitr)パッケージのchunk optionまとめ
Chunk options and package options
caption in the html output of knitr
How to set size for local image using knitr for markdown?
devtools::session_info()
## Session info --------------------------------------------------------------
## setting value
## version R version 3.3.1 (2016-06-21)
## system x86_64, darwin13.4.0
## ui X11
## language (EN)
## collate en_US.UTF-8
## tz Asia/Tokyo
## date 2016-10-04
## Packages ------------------------------------------------------------------
## package * version date source
## devtools 1.12.0 2016-06-24 CRAN (R 3.3.0)
## digest 0.6.10 2016-08-02 cran (@0.6.10)
## evaluate 0.9 2016-04-29 CRAN (R 3.3.1)
## formatR 1.4 2016-05-09 CRAN (R 3.3.1)
## knitr 1.14 2016-08-13 CRAN (R 3.3.1)
## magrittr 1.5 2014-11-22 CRAN (R 3.3.1)
## memoise 1.0.0 2016-01-29 CRAN (R 3.3.1)
## stringi 1.1.1 2016-05-27 CRAN (R 3.3.1)
## stringr 1.1.0 2016-08-19 cran (@1.1.0)
## withr 1.0.2 2016-06-20 CRAN (R 3.3.1)