在编织Rmd文件时,在同一行中打印2个图,但创建单独的pdf

时间:2015-10-03 02:44:10

标签: r pdf plot rstudio

我在Rmd文件中有两个图,我想在编织输出中并排绘制。我还想将各个图保存为单独的pdf。当我每个设备只有一个绘图时,dev.copy2pdf可以很好地避免重绘,我不惜一切代价这样做。

但是,以下代码产生两个pdf,这两个都不是我想要的输出。第一个pdf是页面左半部分的第一个图;第二个pdf是并排的情节。我明白为什么会这样 - 毕竟,它是直接从当前设备复制,但我不知道如何修改我的代码以达到我想要的结果。

data(cars)
par(mfrow=c(1,2))
plot(cars$Price,cars$Mileage)
dev.copy2pdf(file = "price-mileage.pdf")
plot(cars$Price,cars$Doors)
dev.copy2pdf(file = "price-doors.pdf")

1 个答案:

答案 0 :(得分:3)

我无法一步到位地找到你所要求的方法。但是如果这就是你的意思,你可以在没有重新编织的情况下做到这一点。

```{r}
data(iris)
```

This will create your side by side plots in knitr:

```{r fig.width=7, fig.height=6}
par(mfrow=c(1,2))
plot(iris$Sepal.Length,iris$Sepal.Width)
plot(iris$Sepal.Length,iris$Petal.Length)
```

```{r include=F}
#This will write your plots to the individual files.  
#It will not appear in the knitr because include=F
pdf("plot1.pdf")
plot(iris$Sepal.Length,iris$Sepal.Width)
dev.off()
pdf("plot2.pdf")
plot(iris$Sepal.Length,iris$Petal.Length)
dev.off()
```