我创建了一个Rmarkdown文档,我想在文档的开头创建一个绘图,然后在文档的结尾打印它。
我认为实现此目的的最佳方法是将情节保存在环境中,然后稍后再调用它,我将其保存为:
plot(1:5, 1:5) ; plot1 <- recordPlot() # I create a plot and save it as plot1
此图保存在环境中的“数据”下。
如果我在控制台中输入plot 1,我的图将重现,但当我尝试直接在Rmarkdown中显示它时,如下所示,我得到以下错误:
plot(plot1)
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' is a list, but does not have components 'x' and 'y'
如何将保存到Data中的图打印到Rmarkdown文档中的任意位置?
另外,我知道在本文档后面再次重复该图很有诱惑力,但构建该图的参数随后会在我的分析的另一部分中更改。
可重现示例:
x = 1
plot_later <- function() {
plot(x)
}
plot_later()
x = -10
plot_later()
X从1开始,然后在Y轴上变为-10,我希望它保持初始值1。
3条答案
按热度按时间d6kp6zgx1#
基于https://bookdown.org/yihui/rmarkdown-cookbook/reuse-chunks.html的解决方案:
Here we change
x
- but only within the corresponding chunk's scope:... moving on
Here, we evaluate and plot the expression defined earlier; x is taken from that chunk's scope, so it still evaluates to
1
:8wigbo562#
一个选项是使用
ggplotify
中的as.grob
函数将绘图保存为grob对象,然后在其他地方打印。R Markdown
Now we can plot the figure here.
bvjxkvbb3#
在这里,查看以下链接:https://bookdown.org/yihui/rmarkdown-cookbook/fig-chunk.html
它有很多关于如何开始使用rmarkdown的说明。
明确回答你的问题:
我们在此代码块中生成一个图,但不显示它:
![A nice plot.](
r knitr::fig_chunk('cars-plot', 'png')
)