在knitr中通过cache = TRUE创建的图不保留指定的边距

时间:2019-01-09 19:19:13

标签: r ggplot2 knitr

我正在使用cache=T chunck选项通过knitr创建图。我正在使用Rstudio。

页边距未显示在输出pdf或文件夹中保存的绘图中。但是,如果我在外边缘添加一个框,它将按预期工作。

有控制此选项的块选项吗?我查看了https://yihui.name/knitr/options上的绘图选项,但没有找到解决办法。

这是一个Rmd文件并创建了2张图像,请注意使用par(mar=c(4,4,4,4)theme(plot.margin=unit(rep(2,4),"cm"))

---
title: "Untitled"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE,cache=T,dev='jpeg',fig.height=5,fig.width=5)
library(ggplot2)
```

```{r base}
par(mar=c(4,4,4,4))
plot(mtcars$cyl,mtcars$mpg)
```

```{r ggplot}
ggplot(data = mtcars) +
  geom_point(aes(x=cyl,y=mpg))+
  theme(plot.margin=unit(rep(2,4),"cm"))
```

```{r base_with_box}
par(mar=c(4,4,4,4))
plot(mtcars$cyl,mtcars$mpg)
box("outer", col='blue')  
```

image created with ggplot

image created with base

image created with base and with a box

1 个答案:

答案 0 :(得分:1)

PDF图默认在pdf_document中裁剪。参见?rmarkdown::pdf_document。要禁用此功能:

output:
  pdf_document:
    fig_crop: false