在R中导出图形,并在knitr中显示

在R中导出图形,并在knitr中显示,r,knitr,R,Knitr,我正在使用knitr,希望我的rmd文件在运行时在figures/文件夹中生成一个eps文件。我发现这个问题: 这符合我的要求,但不会在knitr生成的网页中显示图表,可能是因为postscript命令只是将绘制的任何内容路由到您提供的文件中。我想显示一个图形并将其保存到文件中。目前,我的代码类似于: ```{r} setEPS() postscript("~/File/Path/To/Figures/Folder/Figure.eps") par(mar=c(4, 4, 4, 10)) bar

我正在使用knitr,希望我的rmd文件在运行时在figures/文件夹中生成一个eps文件。我发现这个问题: 这符合我的要求,但不会在knitr生成的网页中显示图表,可能是因为postscript命令只是将绘制的任何内容路由到您提供的文件中。我想显示一个图形并将其保存到文件中。目前,我的代码类似于:

```{r}
setEPS()
postscript("~/File/Path/To/Figures/Folder/Figure.eps")
par(mar=c(4, 4, 4, 10))
barplot(prop.table(t(testtable[2:4]), 2), names=testtable$Group, legend=c(colnames(testtable)[2:4]), args.legend=list(x=7, y=1), xlab="Groups", ylab="Percentage of Answers")
dev.off()
``` 
在knitr中,这会产生

## pdf 
##   2
我必须在dev.off()之后运行相同的条形图命令才能在knitr中生成任何内容

我可以想出两种策略: 1) 将图形路由到文件和刀库。 2) 将r命令另存为变量,并在dev.off()前后运行该变量包含的任何内容

我都不知道该怎么做


结果是,有一个Get knitr将情节保存为eps。 我不喜欢这样做,因为文件被保存为unnamed_chunk_x.png,我希望它们被命名。事实证明,如果你可以通过编辑
{r}->
{r图表名称}

来命名它们,我会这样做

opts_chunk$set(dev=c('png','postscript'))

自动生成每个图形的两个版本(一个png,一个eps)。正如@Tyler所评论的,你也可以在一块一块的基础上,而不是在一个全局选项上进行操作。

谢谢-这到底是做什么的呢?我认为设备名称实际上是eps输出的
postscipt
。注意,如果您不想全局设置选项,也可以为单个块(在其标题行中)设置dev选项。太棒了,这简化了很多事情!注意,许多knit参数是矢量化的;例如,您可以给出
width=c(10,8)
以获得不同大小的png和eps输出。