【发布时间】:2016-08-30 00:55:25
【问题描述】:
在将 R Markdown 文档排版为 PDF 时,如果函数绘制多个绘图,这些绘图通常会并排显示,只有第一个绘图完全位于页面边缘。
最小 R Markdown 示例:
---
title: "Example re plotting problem"
author: "Daniel E. Weeks"
date: "May 3, 2016"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Multiple plots within a loop
```{r}
plots <- function() {
plot(rnorm(100))
hist(rnorm(100))
}
for (i in 1:3) {
plots()
}
```
这是生成的PDF第2页的截图
这表明了问题。我在网上搜索过,但还没有找到解决这个问题的方法。
谢谢。
user2554330 提出的剧情钩子解决方案简单,效果不错。因此,此代码在生成的 PDF 的边缘内绘制所有图:
---
title: "Example re plotting problem"
author: "Daniel E. Weeks"
date: "May 3, 2016"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Multiple plots within a loop
```{r}
plots <- function() {
plot(rnorm(100))
hist(rnorm(100))
}
```
## Call plotting function
```{r}
my_plot_hook <- function(x, options)
paste("\n", knitr::hook_plot_tex(x, options), "\n")
knitr::knit_hooks$set(plot = my_plot_hook)
for (i in 1:3) {
plots()
}
```
【问题讨论】:
-
您可以使用
layout函数来定位绘图。par也有许多参数可以帮助操纵绘图区域、边距等。 -
您还可以在每个块中设置选项。
fig.width =和fig.height =是我用来调整绘图的东西。 -
感谢您的建议,但我的问题是关于如何解决这个问题,正如上面的最小示例所示,R Markdown 没有在生成的 PDF。所需的输出是以“正常”宽度和高度结束文档边缘内的所有绘图。请注意,在使用其他人的绘图功能时也会出现此问题(其中一个人没有简单的方法来修改绘图功能)。