我想使用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)
```
Run Code Online (Sandbox Code Playgroud)
我还注意到,如果我有太多的观察结果,那么情节根本就不会产生.我只是在输出中得到一个带有问号的空盒子.
```{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
Run Code Online (Sandbox Code Playgroud)
```
我有极坐标的情节.我使用geom_path连接点,但我希望路径是直线.这是我到目前为止所拥有的:
example <- data.frame(c(5,4,3),c(0.9,1.1,0.6))
colnames(example) <- c("r", "theta")
myplot <- ggplot(example, aes(r, theta)) + geom_point(size=3.5) +
coord_polar(theta="y", start = 3/2*pi, direction=-1) +
scale_x_continuous(breaks=seq(0,max(example$r)), lim=c(0, max(example$r))) +
scale_y_continuous(breaks=round(seq(0, 2*pi, by=pi/4),2), expand=c(0,0), lim=c(0,2*pi)) +
geom_text(aes(label=rownames(example)), size=4.4, hjust=0.5, vjust=-1) +
geom_path()
Run Code Online (Sandbox Code Playgroud)
我很感激任何建议.
我的情节有来自原点的两条光线.我想以逆时针方向遮蔽从光线1到光线2的区域.我想我可能不得不使用geom_polygon.我希望能够为任意两条任意射线做到这一点,但我似乎无法弄明白.
*我想坚持使用笛卡尔坐标.
这是我的意思的一个例子:
d <- data.frame()
base <- ggplot(d) + xlim(-5, 5) + ylim(-5, 5) + geom_blank()
ray1 <- geom_segment(aes(x=0,y=0,xend=5,yend=4))
ray2 <- geom_segment(aes(x=0,y=0,xend=0,yend=5))
shading <- geom_polygon(data=data.frame(x=c(0,5,5,0), y=c(0,4,5,5)),
aes(x,y), fill="blue", alpha=0.2)
base + ray1 + ray2 + shading
Run Code Online (Sandbox Code Playgroud)
对于这个例子,我能够通过检查获得多边形的顶点,但是我将生成几个随机的光线对,我不想每次都手动完成这个过程.

有什么建议?