我在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")
答案 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()
```