【发布时间】:2017-01-27 15:21:27
【问题描述】:
在knitr 文档中,我正在调用一个外部代码块,该代码块生成一个类似于以下内容的ggplot2 对象:
# file.R
# ---- create_plot ----
library(ggplot2)
data(mtcars)
gg <- ggplot(mtcars, aes(mpg, cyl)) + geom_point()
gg
在我的文档中(特别是 Flexdashboard Rmd):
# dashboard.Rmd
```{r setup}
knitr::read_chunk("plot.R")
```
```{r create_plot}
```
我想调用这个块并禁止打印gg 对象,允许我对对象进行一些调整(标题、颜色等)并稍后在我的文档中显示该图。我在调用块时尝试过results='hide',但没有成功。我想要的文件是这样的:
# dashboard.Rmd
```{r setup}
knitr::read_chunk("plot.R")
```
```{r create_plot, results='hide'}
```
```{r display_plot}
gg <- gg + labs(title = "Custom title")
gg
```
如果不编辑外部块以省略最后的gg 调用,这是否可行?
【问题讨论】:
-
你试过
include = FALSE作为一个块选项吗? -
您是否尝试过从块中删除
gg语句,使其创建情节,而不是创建和打印? -
这就是诀窍!谢谢@RyanMorton!请您提交作为答案,以便我接受并信任您吗?
-
如果您创建一个函数来使用 ggplot 定义对象,那么您可以在绘图之前的任何时候在 knitr 文档中创建参数并缓存它们然后将它们作为参数提供给您自己的 ggplotting 函数,然后告诉它用你当前的变量随意绘制创建的对象。
-
@DavidF.Severski,当然!谢谢