我想使用knitr / rmarkdown生成html文档。目前,该文件已超过20MB,我正在尝试找到一种减小文件大小的方法。文件很大,可能是由于我的绘图中包含很多点。
如果将输出类型更改为pdf,则可以将其减小到1.7MB。我想知道是否有一种方法可以减少我的文件,同时保持它为html。
编辑:这是我在RStduio中所做的一个最小的工作示例。
---
title: "Untitled"
author: "My Name"
date: "September 7, 2015"
output: html_document
---
```{r}
library(ggplot2)
knitr::opts_chunk$set(dev='svg')
```
```{r}
set.seed(1)
mydf <- data.frame(x=rnorm(2e4),y=rnorm(2e4))
ggplot(mydf, aes(x,y)) + geom_point(alpha=0.6)
```
我还注意到,如果我有太多观察结果,则根本不会生成该图。我只是在输出中得到一个带问号的空白框。
```{r}
set.seed(2)
mydf <- data.frame(x=rnorm(5e4),y=rnorm(5e4))
ggplot(mydf, aes(x,y)) + geom_point(alpha=0.6)
# ...plot doesn't appear in output
```
根据@daroczig的建议使用“ dpi”编织块选项,我对您的代码进行了如下修改(请参见下文)。
编织代码后,即使绘制5e4数据点,我的HTML输出文件大小也等于653kB。
---
title: "Change size of output HTML file by reducing resolution of plot image"
author: "My Name"
date: "September 7, 2015"
output: html_document
---
```{r}
# load ggplot2 silently
suppressWarnings(library(ggplot2))
# chunk option dev="svg" produces very large vector graphics files
knitr::opts_chunk$set(dev="svg")
# chunk option dev="png" is the default raster graphics format for HTML output
knitr::opts_chunk$set(dev="png")
```
```{r, dpi=36, out.width="600px", out.height="600px"}
# chunk option dpi=72 is the default resolution
set.seed(1)
mydf <- data.frame(x=rnorm(5e4),y=rnorm(5e4))
ggplot(mydf, aes(x,y)) + geom_point(alpha=0.6)
```
[为了防止散点图炸毁矢量图形(以及相应的html输出),您可以使用geom_point_raster()
包中的ggrastr
。吃蛋糕,也吃!