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

时间:2014-03-03 13:04:59

标签: r knitr

我正在使用knitr并希望我的rmd文件在数字/文件夹中生成eps文件。我发现了这个问题: Export a graph to .eps file with R 我做了我想要的,但是没有在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()之前和之后运行变量包含的任何内容。

我不确定如何做其中任何一个。


原来有一个3)得到编织者将情节保存为eps。 我不喜欢这样做,因为文件保存为unnamed_chunk_x.png,我希望它们命名。如果您可以通过修改{r} -> {r name-of-your-chart}来命名它们

1 个答案:

答案 0 :(得分:2)

我会这样做,

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

自动生成每个图形的两个版本(一个png,一个eps)。正如@Tyler评论的那样,你也可以逐块而不是全局选项来做。