gpt4 book ai didi

r - 从 knitr 中的相同 block /语句生成两个图

转载 作者:行者123 更新时间:2023-12-04 03:21:30 24 4
gpt4 key购买 nike

是否可以让绘图生成代码从 .Rmd 以不同大小输出同一图形的两个版本?文档?通过 block 选项(我没有看到任何直接在这里工作的东西),或者通过自定义 knitr钩?最好使用 png 来完成。设备。

我的动机:我希望能够输出一种尺寸的图形,它可以嵌入到已编译的 HTML 文档中,以及用户可以在单击后显示的另一个图形(想想 fancybox )。我想我将能够处理完成这项工作所需的脚本;但是,首先我需要说服 R/knitr输出图形的两个版本。

虽然我确信有解决方法,但最好有某种方法让它在幕后“正常工作”,例如通过 knitr钩。这样,我们不必对 block 中的 R 代码做任何特别的事情,我们只需修改我们解析/评估该 block 的方式。

或者,可以使用可以很好地缩放的 SVG 图形,但是我们失去了对于绘图标签的良好尺寸的良好推断,并且矢量图对于具有许多点的绘图来说不是很好。

最佳答案

我认为没有解决方案,并且正要对@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).

我认为 dev 的矢量化版本的原因不起作用是:对于 dev=c('png', 'png') ,第二个 png 文件将覆盖第一个,因为图形文件名相同。然后我意识到 fig.ext也被矢量化,文件扩展名如 large.png不会真正破坏文件扩展名 png ;这就是为什么它是一个黑客。

无论如何,通过 dev 的矢量化版本, fig.ext , fig.height , 和 fig.width ,您可以将相同的绘图保存到多个版本。如果您对图形文件扩展名使用确定性模式,我认为您还可以编写一些 JavaScript 代码来自动将精美的框附加到图像上。

关于r - 从 knitr 中的相同 block /语句生成两个图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com