将pdf写入图形文件夹,但删除png

Posted

技术标签:

【中文标题】将pdf写入图形文件夹,但删除png【英文标题】:Write pdf to figure folder, but delete pngs 【发布时间】:2021-12-08 02:16:05 【问题描述】:

这是关于this answer 的后续问题。我已经设置了 knitr 块选项以在文件夹中输出 png 和 pdf 版本的绘图,以及在 knitted 报告中使用 png。

但是,我只想保留该图的 pdf 版本并丢弃 png 文件。编织后是否有与 on.exit() 等效的 knitr 来清理 png?还是我忽略的选项?

使用下面的rmarkdown文档,如何在编织后自动清理png版本的plot? (或者首先不将其作为独立文件生成)

---
title: "Untitled"
author: "Me"
date: "21/10/2021"
output: html_document
---

```r setup, include=FALSE
knitr::opts_chunk$set(
  echo = TRUE,
  dev = c("png", "pdf"),
  fig.path = here::here(
    "figures",
    gsub("\\.Rmd$", "\\\\", basename(knitr::current_input()))
  )
)
```

```r my_plot
library(ggplot2)

ggplot(mpg, aes(displ, hwy)) +
  geom_point()
```

【问题讨论】:

我可能误解了这个问题,但是如果您不想创建png文件,为什么要设置dev = c("png","pdf") 我希望输出文档包含 png 图像,但不包含 pdf 图像。我希望 pdf 文件作为为喜欢它们可用的合作者编织文档的副作用。我希望这是有道理的。 【参考方案1】:

这不是您要查找的内容,但手动从以下块中删除 eval=FALSE 会删除想要的文件:

```r eval=FALSE, include=FALSE
fList <-  dir("figures")
fList <- fList[stringr::str_detect(fList,"\\.png$")]
file.remove(paste0("figures/",fList))
```

【讨论】:

以上是关于将pdf写入图形文件夹,但删除png的主要内容,如果未能解决你的问题,请参考以下文章

在R中将png图写入pdf文件

R语言笔记 创建图形 pdf png

加快(但保持文件大小较小)将多个 PNG 转换为 PDF?

Python机器学习(七十)Matplotlib 保存图形

用CFF Explorer隐藏文件格式

在Google云端存储上将PDF转换为PNG