生成图的代码是否可以从.Rmd文档输出两个版本的同一图形,大小不同?要么通过块选项(我没有看到任何直接在这里工作的东西),或通过自定义knitr钩子?优选地,这将通过该png设备完成.
我的动机:我希望能够输出一个大小的数字,这个数字可以在编译的HTML文档中内嵌,以及用户在点击后可以显示的另一个数字(想想fancybox).我想我将能够处理完成这项工作所需的脚本; 但是,首先我需要说服R/knitr输出该图的两个版本.
虽然我确信有一些解决方法,但最好还是有办法让它在幕后"正常工作",例如通过knitr钩子.这样,我们不必对块中的R代码做任何特殊操作,我们只是修改我们解析/评估该块的方式.
或者,可以使用可以很好地缩放的SVG图形,但是然后我们失去了对于标记标签的良好尺寸的良好推断,并且矢量图形对于具有许多点的图不是很好.
Yih*_*Xie 15
我以为没有解决方案,并且即将对@baptiste说不,但我很快就想到了.以下是R Markdown示例:
```{r test, dev='png', fig.ext=c('png', 'large.png'), fig.height=c(4, 10), fig.width=c(4, 10)}
library(ggplot2)
qplot(speed, dist, data=cars)
```
See the [original plot](figure/test.png) and
a [larger version](figure/test.large.png).
Run Code Online (Sandbox Code Playgroud)
我认为矢量化版本dev不起作用的原因是:for dev=c('png', 'png'),第二个png文件将覆盖第一个png文件,因为图形文件名是相同的.然后我意识到fig.ext也是矢量化的,像文件扩展名large.png并没有真正破坏文件扩展名png; 这就是为什么它是一个黑客.
总之,通过矢量化版本dev,fig.ext,fig.height,和fig.width,你可以保存同样的情节多个版本.如果你对图形文件扩展名使用确定性模式,我想你也可以编写一些JavaScript代码来自动将奇特的盒子附加到图像上.